Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
USBvalve — Expose USB activity on the fly | Kitploit
أدوات/GitHubGitHub/cecio/usbvalve
Embedded Systems SecurityDynamic Analysis (Sandboxing)ForensicsMalware AnalysisHardware Security
GitHubcecio/usbvalve

USBvalve

Expose USB activity on the fly

عرض المستودع
1.3k43منذ 4 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

شعار، أفقي، نص داكن، خلفية شفافة

[!NOTE] إصدار USBvalve 1.0.0

تمت إعادة كتابة التطبيق بالكامل:

  • تم التحول بعيدًا عن بيئة Arduino IDE، وأصبح الكود الآن مكتوبًا لـ Pi Pico SDK
  • تم تقليل الاعتماد على المكتبات الخارجية بشكل كبير
  • أصبح دعم مضيف USB لأجهزة Low Speed أكثر قوة ومتانة (ATTiny85، EvilCrow، إلخ)
  • العتاد والوظائف لم تتغير تقريبًا، انظر الملاحظات أدناه للتفاصيل

اكشف نشاط USB أثناء حدوثه

النموذجان الساعة 1.2

أنا متأكد من أنه طُلب منك، مثلي، وضع محرك أقراص USB في جهاز غير معروف... ثم راودك الشك:

ماذا حدث لمحرك الأقراص المسكين خاصتي، خلف الكواليس؟ هل سرق ملفاتي؟ هل قام بتشفيرها؟ أم فقط قام بتثبيت برمجية خبيثة؟ باستخدام USBvalve يمكنك اكتشاف ذلك في ثوانٍ: مبني على عتاد جاهز رخيص الثمن، يمكنك بسرعة اختبار أي نشاط لنظام ملفات USB وفهم ما يجري قبل فوات الأوان!

مع USBvalve يمكنك الحصول على تغذية راجعة فورية حول ما يحدث للقرص؛ ستعرض لك الشاشة ما إذا كان نظام الملفات المزوّر المبني على الجهاز قد تم الوصول إليه أو قراءته أو الكتابة عليه:

اختبار ذاتي اقرأني

ومن الإصدار 0.8.0 يمكنك أيضًا استخدامه كمضيف USB لكشف أجهزة BADUSB:

HID

هذا مثال على مصحح أخطاء BADUSB المتاح على المنفذ التسلسلي:

إذا كنت تفضل مقاطع الفيديو، يمكنك أيضًا إلقاء نظرة على عرضي التقديمي في Insomni'hack

ساعة USBvalve

ابتداءً من الإصدار 0.15.0، يتم دعم نسخة جديدة من Pi Pico Watch. لتجميع النسخة الجديدة، يجب إلغاء تعليق السطر #define PIWATCH في بداية الكود. العتاد عبارة عن لوحة ساعة قائمة على RP2040 مع شاشة TFT مقاس 1.28 بوصة. يمكنك العثور على مزيد من المعلومات هنا. وهي أيضًا متوافقة تمامًا مع Waveshare RP2040-LCD-1.28.

بنية المستودع

docs: توثيق حول المشروع، مع عرض تقديمي يمكنك من خلاله إلقاء نظرة على جميع الميزات

firmware: برامج ثابتة مبنية مسبقًا لـ Raspberry Pi Pico. يمكنك فقط استخدامها ووميضها على اللوحة. لدينا عدة إصدارات مختلفة، لشاشات OLED ذات 32 أو 64 سطرًا، ولـ Pico 1 أو Pico2، و Pi Pico Watch، إلخ

PCB: ملفات Gerber إذا كنت تريد طباعة لوحة PCB المخصصة. إنها ليست إلزامية، يمكنك استخدام لوحتك الخاصة أو بناؤها على لوحة تجارب breadboard

src و data: المصادر، إذا كنت تريد تعديل وبناء البرنامج الثابت بنفسك

utils: بعض الأدوات المساعدة التي قد تستخدمها لبناء نظام ملفات مخصص

pictures: الصور والموارد المستخدمة في هذا المستند

STL: ملفات STL للغلاف. في المجلدين 1.1 و 1.2 توجد أغلفة كاملة (بفضل WhistleMaster). في المجلدين 1.2_64 و 1.2_64_simple توجد أغلفة لشاشة 128x64 (بفضل rtmq0227). إذا كنت تريد شيئًا أخف لحماية شاشة LCD، يمكنك استخدام USBvalve_sliding_cover.stl.

بناء USBvalve

قائمة القطع

إذا كنت تريد بناء جهازك الخاص، ستحتاج إلى:

  • Raspberry Pi Pico 1 أو 2 (أو لوحة أخرى تعتمد على RP2040)
  • شاشة OLED I2C مقاس 128x64 أو 128x32 (SSD1306)
  • (اختياري) لوحة USBvalve PCB أو لوحة تجارب breadboard
  • (اختياري) فاصل مطبوع ثلاثي الأبعاد لعزل الشاشة عن اللوحة (https://www.thingiverse.com/thing:4748043)، لكن يمكنك استخدام قطعة من الشريط الكهربائي بدلاً من ذلك

ملاحظات حول BOOTSEL والإصدار >= 1.0.0

في الإصدارات 0.x.x، كان يُستخدم BOOTSEL لإعادة تعيين الجهاز أو طباعة عدد أحداث HID (اضغط > 2 ثوانٍ). كان الاستطلاع الدوري لـ BOOTSEL يسبب بعض المشكلات في اكتشاف BADUSB لذا تمت إزالته من الإصدار 1.0.0 واستُبدل بالخيارين التاليين:

  • لحام زر بين GP0 و GND (الوسادات 1 و 3، انظر الصورة أدناه لمثال) للحصول على نفس الوظائف
  • استخدام الأمرين r (إعادة تعيين) و h (أحداث HID) من المراقب التسلسلي

في PCB ستجد أيضًا نسخة 1.3 من اللوحة، مع بعض الثقوب في الوسادات 1 و 3 لتسهيل تركيب الزر. لكن كما ترى، يمكنك أيضًا استخدام نسختك القديمة.

إذا كنت لا تستخدم وظائف BADUSB أو إذا كنت تفضل تغطية أقل في الكشف مع الإبقاء على استخدام BOOTSEL، فإنني أقدم أيضًا برنامجًا ثابتًا تم إنشاؤه مع تمكين bootsel (انظر المجلد والإصدارات).

تعليمات البناء

بفضل Tz1rf لدينا أيضًا مقطعا فيديو رائعان: أحدهما يشرح عملية البناء خطوة بخطوة، والآخر يوضح كيفية رفع البرنامج الثابت واستخدام الأداة.

تقريبًا كل العمل يتم مباشرة على اللوحة بواسطة البرنامج، لذا كل ما عليك فعله هو ترتيب الاتصال بشاشة OLED للإخراج.

ابتداءً من الإصدار 0.8.0 من البرنامج الثابت، يمكن لـ USBvalve اكتشاف أجهزة HID (المستخدمة لكشف BADUSB). يتطلب هذا منفذ USB إضافيًا يعمل كمضيف. إذا لم تكن مهتمًا بهذا، يمكنك استخدام التعليمات القديمة في مجلد docs واستخدام نسخة PCB 1.1. وإلا فتابع مع نسخة PCB 1.2 (لدينا نسخة لـ USB-A أو USB-B، انظر المجلد).

مع لوحة USBvalve PCB

  • لحام منفذ USB أنثوي في منطقة USBH. هذا للنسخة A، ولكن توجد أيضًا نسخة لـ USB Micro-B إذا كنت تفضل ذلك
  • ضع Raspberry Pi Pico على طبعة الحرير في المقدمة
  • لا تحتاج إلى لحام جميع الدبابيس. فقط ما يلي:
    • D4 و D5 (الجانب الأيسر)
    • D14 و D15 (الجانب الأيسر)
    • GND (الجانب الأيمن، الدبوس الثالث من الأعلى)
    • GND (الجانب الأيمن، الدبوس الثالث من الأسفل)
    • 3v3_OUT (الجانب الأيمن)
    • VBUS (الجانب الأيمن)
    • دبابيس DEBUG الثلاثة في الأسفل: SWCLK و GND و SWDIO
  • ضع الفاصل المطبوع ثلاثي الأبعاد أو قطعة من الشريط على أجزاء OLED التي قد تلامس Raspberry
  • لحام OLED (برأس) في مساحة الدبابيس الأربعة

بعض شاشات OLED لديها دبابيس GND و VCC مبادلة، لذا قمت ببناء PCB ليكون متوافقًا مع كلا النسختين:

على سبيل المثال إذا كانت شاشتك OLED لديها GND على PIN1 و VCC على PIN2 مثل هذا:

يجب عليك وضع بقعة لحام على هاتين الوسادتين في الجزء الخلفي من PCB:

وإلا يجب عليك العكس ووضع اللحام على الوسادات الأخرى:

بدون لوحة USBvalve PCB

Pico Pi

إذا كنت تستخدم لوحة تجارب أو مجرد توصيلات، كل ما عليك فعله هو التأكد من توصيل الدبابيس الصحيحة بشاشة OLED ومنفذ USB المضيف.

التعيين كما يلي:

  • PIN6 من Pi --> SDA الخاص بـ OLED
  • PIN7 من Pi --> SCL الخاص بـ OLED
  • PIN19 من Pi --> D+ الخاص بمضيف USB
  • PIN20 من Pi --> D- الخاص بمضيف USB
  • PIN23 (GND) من Pi --> GND الخاص بمضيف USB
  • PIN38 (GND) من Pi --> GND الخاص بـ OLED
  • PIN36 (3V3OUT) من Pi --> VCC الخاص بـ OLED
  • PIN40 (VBUS) من Pi --> VCC الخاص بمضيف USB

إذا كنت تريد استخدام وظائف DEBUG، يمكنك أيضًا وضع رأس على دبابيس SWD الثلاثة في أسفل اللوحة.

مع لوحة USBpipe PCB

[!CAUTION] هذه اللوحة مخصصة لصناع الإلكترونيات ذوي الخبرة لا تستخدمها إذا لم تكن متأكدًا من قدرتك على التعامل معها!

[!NOTE] R7 و R8 غير متصلين فعليًا بأي شيء. تمت إضافتهما لأغراض تصحيح أخطاء الدائرة. لذلك لا يظهران في قائمة المواد BOM

لوحة USBpipe PCB USBpipe

USBpipe هي لوحة PCB مخصصة لهذا المشروع.

يمكنك العثور على كل ما تحتاجه في مجلد ./PCB/USBpipe/.

الوجه الأمامي الوجه الخلفي

وميض البرنامج الثابت

لوميض البرنامج الثابت، اتبع هذه الخطوات:

  • قم بتوصيل Raspberry Pi Pico بكابل USB، مع الاستمرار في الضغط على زر BOOTSEL (الزر الأبيض الكبير على اللوحة)
  • حرر الزر
  • سترى محرك أقراص جديدًا على النظام باسم RPI-RP2 (في بيئات Linux قد تحتاج إلى تركيبه يدويًا)
  • انسخ ملف البرنامج الثابت المناسب (بامتداد uf2) في المجلد، اعتمادًا على شاشة OLED التي تستخدمها
  • انتظر بضع ثوانٍ حتى يختفي المجلد المثبت

انتهى الأمر!

مضاد الاكتشاف

لا أعرف ما إذا كان سيحدث ذلك يومًا ما، ولكن قد ترغب في تخصيص البرنامج الثابت لتجنب الاكتشاف الذي تقوم به البرمجيات الخبيثة المدركة لـ USBvalve :-)

لقد جمعت معظم المتغيرات التي قد ترغب في تعديلها في هذا القسم من usb_config.h (انظر Dockerfile أدناه لإعادة البناء)

root@kitploit:~
// USB anti-detection settings
//
// Set USB IDs strings and numbers, to avoid possible detections.
// Remember that you can cusotmize FAKE_DISK_BLOCK_NUM as well
// for the same reason. Also DISK_LABEL in ramdisk.h can be changed.
//
// You can see here for inspiration: https://the-sz.com/products/usbid/
//
// Example:
//             0x0951 0x16D5    VENDORID_STR: Kingston   PRODUCTID_STR: DataTraveler
//
#define USB_VENDORID       0x0951
#define USB_PRODUCTID      0x16D5
#define USB_DESCRIPTOR     "DataTraveler"
#define USB_MANUF          "Kingston"
#define USB_SERIAL         "123456789A"
#define USB_VENDORID_STR   "Kingston"        // Up to 8 chars
#define USB_PRODUCTID_STR  "DataTraveler"    // Up to 16 chars
#define USB_VERSION_STR    "1.0"             // Up to 4 chars

بناء البرنامج الثابت الخاص بك

بالطبع يمكنك أيضًا بناء البرنامج الثابت الخاص بك. للبناء تحتاج إلى Raspberry Pi Pico SDK وهذا المستودع.

تعليمات إعادة الترجمة الأساسية:

root@kitploit:~
export PICO_SDK_PATH=</path/to/pico-sdk>

git clone --recursive https://github.com/cecio/USBvalve.git
cd USBvalve
mkdir build && cd build
cmake -DPICO_BOARD=pico ..   # or pico2 for standard build
make -j$(nproc)
# Output: build/src/USBvalve.uf2

إذا كنت تريد إعادة إنشاء نظام ملفات مزور جديد، فقد ترغب في إلقاء نظرة على مجلد utils، حيث وضعت بعض الأدوات المساعدة لبناء نظام جديد.

Dockerfile

إذا كنت تريد بناء البرنامج الثابت الخاص بك، بعد تخصيصه، أوفر لك Dockerfile يبني بيئة بناء كاملة ويجمع البرنامج الثابت.

أدخل الأوامر التالية في المجلد الرئيسي USBvalve للبناء:

root@kitploit:~
# To Build:
#       docker build -t usbvalve-sdk -f Dockerfile.sdk .
#
# To Run (default: pico, SSD1306 OLED 128x32):
#       docker run --rm -v $PWD:/mnt usbvalve-sdk
#
# Options (via environment variables):
#       BOARD=pico|pico2          Board target (default: pico)
#       OLED_HEIGHT=32|64         OLED display height (default: 32)
#       PIWATCH=1                 Use GC9A01 round TFT instead of SSD1306
#       USE_BOOTSEL=1             Enable BOOTSEL button (disrupts Low Speed USB)
#
# Examples:
#       docker run --rm -e BOARD=pico2 -v $PWD:/mnt usbvalve-sdk
#       docker run --rm -e PIWATCH=1 -v $PWD:/mnt usbvalve-sdk
#       docker run --rm -e BOARD=pico2 -e OLED_HEIGHT=64 -v $PWD:/mnt usbvalve-sdk

سيتم وضع البرنامج الثابت بامتداد uf2 في مجلد USBvalve_out.

المساهمة

إذا كانت لديك أفكار أو تحسينات في ذهنك، أشجعك على فتح issue حتى نتمكن من تحسين المشروع معًا! شكرًا!

الدعم

إذا كان لديك سؤال أو تحتاج إلى دعم، يمكنك فتح Issue هنا أو التواصل معي على Twitter/X @red5heep

إصدارات المجتمع

أنشأ المجتمع بعض الفروع (forks) التي تضيف دعمًا للوحات أخرى، أو تعديلات أخرى. شكرًا للجميع الذين ساهموا في تطوير USBvalve. فيما يلي قائمة غير رسمية/غير مكتملة/غير مدعومة:

  • USBvalve-tbfa-Mod

تحذير السلامة

[!WARNING] تلقيت الكثير من الأسئلة حول USBvalve وأجهزة USB killer. USBvalve غير مصمم لاختبار هذه الأجهزة، فهو لا يحتوي على أي نوع من العزل أو الحماية، لذا إذا كنت تشك في أنك تتعامل مع أحد هذه الأجهزة، فاختبره بشيء آخر، وليس باستخدام USBvalve أو قد تتلف الجهاز أو نفسك أو الأشياء القريبة منك.

تنزيل الأداة