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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
BTLE — أداة التقاط وإرسال حزم لبلوتوث منخفض الطاقة (BLE) للتنسيقات القياسية وغير القياسية (البت الخام)، استنادًا إلى الراديو المعرَّف بالبرمجيات (SDR). | Kitploit
أدوات/GitHubGitHub/jiaoxianjun/btle
التقاط وتحليل الحزمأمن البلوتوثأمان إنترنت الأشياءأمن الشبكات اللاسلكية
GitHubjiaoxianjun/btle

BTLE

أداة التقاط وإرسال حزم لبلوتوث منخفض الطاقة (BLE) للتنسيقات القياسية وغير القياسية (البت الخام)، استنادًا إلى الراديو المعرَّف بالبرمجيات (SDR).

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

الأكثر شعبية

عرض الكل →

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

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

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

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

BTLE

BTLE هي حزمة برمجيات حرة ومفتوحة المصدر للراديو المعرف بالبرمجيات (SDR) لتقنية البلوتوث منخفض الطاقة (BLE)، إلى جانب تصميم شريحة BTLE مفتوح.

تتضمن:

  • النطاق الأساسي لـ BTLE: وصف الخوارزميات، وتنفيذ Python وVerilog، ونتائج FPGA وSkyWater 130 PDK (سير عمل OpenLane2).
  • تنفيذ Analog Devices AD9361 + Xilinx Zynq FPGA: FPGA Bluetooth
  • btle_rx - أداة التقاط (Sniffer) لحزم BLE. بالإضافة إلى التقاط قناة البث/القناة الثابتة، يمكنها أيضًا تتبّع القفز الترددي لرابط الاتصال.
  • btle_tx - مرسِل حزم BLE شامل. بالإضافة إلى معيار BLE، يدعم أيضًا وضع البتات الخام (raw bit mode) لتوليد حزم GFSK عشوائية. بهذه الطريقة، يمكنك اختبار بروتوكول غير قياسي أو معيار قيد النقاش قبل طرح الشريحة في السوق.

الميزات

  • يتم تنفيذ الطبقة المادية (PHY) والطبقة العليا في البرمجيات (لغة C). مرونة كاملة للراديو المعرف بالبرمجيات.
  • طبقة PHY قياسية لـ BLE بتقنية GFSK بمعدل 1 ميجابت/ثانية.
  • جميع تنسيقات حزم طبقة الارتباط لقنوات ADV وDATA في Core_V4.0 (الفصلان 2 و3، الجزء B، المجلد 6) مدعومة.
  • الأداة قادرة على تحليل وتتبّع نمط القفز الترددي تلقائيًا، وليست مقتصرة على قناة البث أو القناة الثابتة.

العتاد

  • HackRF
  • bladeRF
  • إصدار متوافق من مكتبات HackRF وbladeRF

البناء والاختبار السريع

تأكد من إعداد بيئة عتاد SDR لديك (برنامج التشغيل/المكتبة) بشكل صحيح قبل تشغيل هذا المشروع.

root@kitploit:~
git clone https://github.com/JiaoXianjun/BTLE.git
cd BTLE/host
mkdir build
cd build
cmake ../                   (default. for HackRF)
cmake ../ -DUSE_BLADERF=1   (only for bladeRF)

make
./btle-tools/src/btle_rx

الأمر أعلاه يلتقط على القناة 37. يجب أن ترى حزمًا كثيرة على الشاشة إذا كانت لديك أجهزة BLE (هاتف/جهاز لوحي/كمبيوتر محمول) في الجوار.

root@kitploit:~
./btle-tools/src/btle_tx 37-DISCOVERY-TxAdd-1-RxAdd-0-AdvA-010203040506-LOCAL_NAME09-SDR/Bluetooth/Low/Energy r500 

الأمر أعلاه يرسل حزم الاكتشاف على قناة ADV. يجب أن ترى جهازًا باسم "SDR/Bluetooth/Low/Energy" في تطبيق تقاط BLE آخر (مثل LightBlue).

للحصول على تسلسل تشغيل أسرع على HACKRF، استخدم ما يلي:

root@kitploit:~
#define TRANSFER_COUNT 4
#define TRANSFER_BUFFER_SIZE 4096

في hackrf/host/libhackrf/src/hackrf.c. ثم أعد ترجمة مكتبة HACKRF وأعد تثبيتها. لا تنسَ إعادة ترجمة BTLE لتفعيل تغيير مكتبة HACKRF.

بالإضافة إلى الأدوات، يتضمن دليل matlab تقييم الخوارزميات ونصوصًا برمجية مفيدة أخرى

استخدام btle_rx

root@kitploit:~
-h --help

طباعة جميع الوسائط/طرق الاستخدام.

root@kitploit:~
-c --chan

رقم القناة. القيمة الافتراضية 37 (إحدى قنوات ADV). القيمة الصالحة 0~39 (جميع قنوات ADV وDATA).

root@kitploit:~
-g --gain

كسب الاستقبال بوحدة dB. كسب rxvga الافتراضي لـ HACKRF هو 6، والنطاق الصالح 0 - 62. الافتراضي لـ bladeRF هو أقصى كسب استقبال 66dB (النطاق الصالح 0 - 66). يجب ضبط الكسب بعناية فائقة لضمان أفضل أداء في ظروفك. يُنصح بالاختبار بدءًا من كسب منخفض، لأن الكسب المرتفع يسبب دائمًا تشوهًا شديدًا ولن يفيدك بشيء.

root@kitploit:~
-l --lnaGain

كسب LNA بوحدة dB (خاص بـ HackRF فقط). الافتراضي 32، والنطاق الصالح 0 - 40. يجب ضبط الكسب بعناية فائقة لضمان أفضل أداء في ظروفك.

root@kitploit:~
-b --amp

تفعيل مكبر الإشارة (خاص بـ HackRF فقط). الافتراضي: معطّل.

root@kitploit:~
-a --access

عنوان الوصول. الافتراضي 8e89bed6 لقنوات ADV 37 و38 و39. يجب عليك تحديد القيمة الصحيحة لقناة البيانات وفقًا لإجراء إعداد الاتصال الذي تم التقاطه.

root@kitploit:~
-k --crcinit

الافتراضي 555555 لقناة ADV. يجب عليك تحديد القيمة الصحيحة لقناة البيانات وفقًا لإجراء إعداد الاتصال الذي تم التقاطه.

root@kitploit:~
-v --verbose

الوضع التفصيلي (Verbose). طباعة مزيد من المعلومات عند وجود خطأ.

root@kitploit:~
-r --raw

الوضع الخام. بعد اكتشاف عنوان الوصول، اطبع الـ 42 بايتًا الخام التالية (بدون إزالة التشويش أو التحليل).

root@kitploit:~
-f --freq_hz (need argument)

هذا التردد (بالهرتز) سيتجاوز إعداد القناة (في حال أراد شخص العمل على تردد آخر غير BTLE. لأغراض أكثر عمومية).

root@kitploit:~
-m --access_mask (need argument)

إذا كانت إحدى البتات في هذا القناع تساوي 1، فسيتم تضمين البت المقابل في عنوان الوصول في قرار وجود الحزمة (في حال أراد شخص كلمة فريدة أقصر/أقل كثافة لاكتشاف الحزم. لأغراض أكثر عمومية).

root@kitploit:~
-o --hop

سيؤدي هذا إلى تفعيل تتبّع قناة البيانات (القفز الترددي) بعد التقاط معلومات إعداد الارتباط في حزمة ADV_CONNECT_REQ على قناة ADV.

root@kitploit:~
-s --filename

تخزين الحزم في ملف pcap.

استخدام btle_tx

root@kitploit:~
btle_tx packet1 packet2 ... packetX ...  rN

أو

root@kitploit:~
btle_tx packets.txt

packets.txt هو ملف نصي يحتوي على نص وسائط سطر الأوامر (packet1 packet2 ... rN). كل وسيط في سطر مستقل. يُعتبر السطر الذي يبدأ بـ "#" تعليقًا. انظر مثال packets.txt

root@kitploit:~
packetX 

هو سلسلة نصية واحدة تصف حزمة واحدة. تشكّل جميع الحزم معًا تسلسل حزم.

root@kitploit:~
rN

تعني أن التسلسل سيُكرَّر N مرة. إذا لم تُحدَّد، فسيُرسَل التسلسل مرة واحدة فقط.

تنسيق سلسلة packetX

root@kitploit:~
channel_number-packet_type-field-value-field-value-...-Space-value

تبدأ كل سلسلة وصفية برقم قناة BTLE (0~39)، ثم يليها نوع الحزمة packet_type (RAW/iBeacon/ADV_IND/ADV_DIRECT_IND/إلخ. اطّلع على جميع أمثلة التنسيقات في النهاية: الملحق )، ثم يليها زوج حقل-قيمة خاص بنوع الحزمة، وفي النهاية يوجد زوج Space-قيمة (اختياري) حيث تحدد القيمة عدد الميلي ثانية التي سيُنتظَر بعد إرسال هذه الحزمة.

لا تستخدم حرف المسافة " " في واصف الحزمة داخل سطر الأوامر. يمكنك استخدام المسافة في واصف الحزمة داخل ملف txt.

لا تستخدم "-" داخل أي حقل. "-" هو حرف سحري يُستخدم لفصل الحقول المختلفة في واصف الحزمة.

  • مثال btle_tx: حزم الاكتشاف

افتح تطبيق LightBlue (أو أداة تقاط BLE أخرى) على iPhone/جهازك قبل تنفيذ هذا الأمر:

root@kitploit:~
./btle-tools/src/btle_tx ../btle-tools/src/packets_discovery.txt

سترى جهازًا باسم "SDR Bluetooth Low Energy" في تطبيق LightBlue.

سطر الأوامر المقابل:

root@kitploit:~
./btle-tools/src/btle_tx 37-DISCOVERY-TxAdd-1-RxAdd-0-AdvA-010203040506-LOCAL_NAME09-SDR/Bluetooth/Low/Energy r40

ملاحظة: تم استبدال المسافة " " بـ "/" لأن المسافة " " غير مدعومة في سطر الأوامر.

  • مثال btle_tx: إنشاء الاتصال
root@kitploit:~
btle_tx 37-ADV_IND-TxAdd-0-RxAdd-0-AdvA-90D7EBB19299-AdvData-0201050702031802180418-Space-1      37-CONNECT_REQ-TxAdd-0-RxAdd-0-InitA-001830EA965F-AdvA-90D7EBB19299-AA-60850A1B-CRCInit-A77B22-WinSize-02-WinOffset-000F-Interval-0050-Latency-0000-Timeout-07D0-ChM-1FFFFFFFFF-Hop-9-SCA-5-Space-1     9-LL_DATA-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-DATA-XX-CRCInit-A77B22-Space-1

يحاكي ما سبق إجراء إنشاء اتصال بين الجهاز 1 والجهاز 2. ملف الوصف المقابل: BTLE/host/btle-tools/src/packets.txt.

الحزمة الأولى -- يرسل الجهاز 1 حزمة ADV_IND على القناة 37.

الحزمة الثانية -- بعد أن يستقبل الجهاز 2 (في حالة المسح) حزمة ADV من الجهاز 1، يرسل الجهاز 2 حزمة CONNECT_REQ لطلب إعداد اتصال مع الجهاز 1. تحتوي حزمة الطلب هذه على عنوان MAC للجهاز 2 (InitA)، وعنوان MAC الهدف (عنوان MAC للجهاز 1 AdvA)، وعنوان الوصول (AA) الذي سيستخدمه الجهاز 1 في إرسال الحزم اللاحقة على قناة البيانات، وقيمة تهيئة CRC للحزم اللاحقة للجهاز 1، ومعلومات القناة ذات القفز الترددي (ChM وHop) لقناة البيانات التي يستخدمها الجهاز 1، وغير ذلك.

الحزمة الثالثة -- يرسل الجهاز 1 وحدة بيانات PDU فارغة لطبقة الارتباط على القناة 9 (المحددة وفق مخطط القفز الترددي) وفقًا لمعلومات طلب الاتصال المستلمة من الجهاز 2. ("XX" بعد الحقل "DATA" تعني عدم وجود بيانات لهذا الحقل)

الزمن الفاصل بين الحزم هو 1 ثانية (1000 مللي ثانية). اضبط أداة التقاط حزم TI على القناة 37، وعندها سيتم التقاط إجراء الإنشاء أعلاه.

  • مثال btle_tx: iBeacon
root@kitploit:~
./btle-tools/src/btle_tx 37-iBeacon-AdvA-010203040506-UUID-B9407F30F5F8466EAFF925556B57FE6D-Major-0008-Minor-0009-TxPower-C5-Space-100     r100

يرسل الأمر أعلاه حزمة iBeacon ويكررها 100 مرة بفاصل زمني 100 مللي ثانية. ملف الوصف المقابل: BTLE/host/btle-tools/src/packets_ibeacon.txt. يمكنك استخدام دونجل تقاط BLE لرؤية الحزمة.

سلسلة وصف الحزمة:

root@kitploit:~
37-iBeacon-AdvA-010203040506-UUID-B9407F30F5F8466EAFF925556B57FE6D-Major-0008-Minor-0009-TxPower-C5-Space-100
root@kitploit:~
37

القناة 37 (إحدى قنوات إعلان BTLE: 37 و38 و39)

root@kitploit:~
iBeacon

الكلمة المفتاحية لتنسيق الحزمة وتعني تنسيق iBeacon. (في الواقع هو تنسيق ADV_IND في Core_V4.0.pdf)

root@kitploit:~
AdvA

عنوان الإعلان (عنوان MAC) المضبوط على 010203040506 (انظر Core_V4.0.pdf)

root@kitploit:~
UUID

نحدده هنا كمعرّف UUID الثابت لـ Estimote: B9407F30F5F8466EAFF925556B57FE6D

root@kitploit:~
Major

الرقم الرئيسي (Major) لتنسيق iBeacon. (هنا هو 0008)

root@kitploit:~
Minor

الرقم الثانوي (Minor) لتنسيق iBeacon. (هنا هو 0009)

root@kitploit:~
Txpower

معامل قدرة الإرسال لتنسيق iBeacon (هنا هو C5)

root@kitploit:~
Space

كم مللي ثانية سيُنتظَر بعد إرسال هذه الحزمة. (هنا 100 مللي ثانية)

العروض التوضيحية

شاهد مقارنة مع أداة التقاط حزم TI هنا: http://sdr-x.github.io/BTLE-SNIFFER/

شاهد عرض فيديو لـ btle_rx أو عرض فيديو لـ btle_rx (في الصين) وعرض فيديو 1 لـ btle_tx أو عرض فيديو 2 لـ btle_tx (في الصين)

الملحق: أمثلة واصفات الحزم لـ btle_tx بجميع التنسيقات


حزم RAW: (سيتم إرسال جميع البتات مباشرة إلى مُعدِّل GFSK)

root@kitploit:~
37-RAW-aad6be898e8dc3ce338c4cb1207730144f9474e0e15eedb378c3bc

حزم قنوات الإعلان (القناة 37 مثلًا):

root@kitploit:~
37-IBEACON-AdvA-010203040506-UUID-B9407F30F5F8466EAFF925556B57FE6D-Major-0008-Minor-0009-TxPower-C5
37-ADV_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-AdvData-00112233445566778899AABBCCDDEEFF
37-ADV_DIRECT_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-InitA-0708090A0B0C
37-ADV_NONCONN_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-AdvData-00112233445566778899AABBCCDDEEFF
37-ADV_SCAN_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-AdvData-00112233445566778899AABBCCDDEEFF
37-SCAN_REQ-TxAdd-1-RxAdd-0-ScanA-010203040506-AdvA-0708090A0B0C
37-SCAN_RSP-TxAdd-1-RxAdd-0-AdvA-010203040506-ScanRspData-00112233445566778899AABBCCDDEEFF
37-CONNECT_REQ-TxAdd-1-RxAdd-0-InitA-010203040506-AdvA-0708090A0B0C-AA-01020304-CRCInit-050607-WinSize-08-WinOffset-090A-Interval-0B0C-Latency-0D0E-Timeout-0F00-ChM-0102030405-Hop-3-SCA-4

حزم قنوات البيانات (القناة 9 مثلًا):

root@kitploit:~
9-LL_DATA-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-DATA-XX-CRCInit-A77B22
9-LL_CONNECTION_UPDATE_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-WinSize-02-WinOffset-0e0F-Interval-0450-Latency-0607-Timeout-07D0-Instant-eeff-CRCInit-A77B22
9-LL_CHANNEL_MAP_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-ChM-1FFFFFFFFF-Instant-0201-CRCInit-A77B22
9-LL_TERMINATE_IND-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-ErrorCode-12-CRCInit-A77B22
9-LL_ENC_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-Rand-0102030405060708-EDIV-090A-SKDm-0102030405060708-IVm-090A0B0C-CRCInit-A77B22
9-LL_ENC_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-SKDs-0102030405060708-IVs-01020304-CRCInit-A77B22
9-LL_START_ENC_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-CRCInit-A77B22
9-LL_START_ENC_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-CRCInit-A77B22
9-LL_UNKNOWN_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-UnknownType-01-CRCInit-A77B22
9-LL_FEATURE_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-FeatureSet-0102030405060708-CRCInit-A77B22
9-LL_FEATURE_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-FeatureSet-0102030405060708-CRCInit-A77B22
9-LL_PAUSE_ENC_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-CRCInit-A77B22
9-LL_PAUSE_ENC_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-CRCInit-A77B22
9-LL_VERSION_IND-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-VersNr-01-CompId-0203-SubVersNr-0405-CRCInit-A77B22
9-LL_REJECT_IND-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-ErrorCode-00-CRCInit-A77B22

حزم الاكتشاف: (والتي يمكنها إظهار أي اسم أو خدمات في تطبيق الماسح الضوئي، مثل LightBlue):

root@kitploit:~
37-DISCOVERY-TxAdd-1-RxAdd-0-AdvA-010203040506-FLAGS-02-LOCAL_NAME09-CA-TXPOWER-03-SERVICE03-180D1810-SERVICE_DATA-180D40-MANUF_DATA-0001FF-CONN_INTERVAL-0006 (-SERVICE_SOLI14-1811)

FLAGS: 0x01 وضع الاكتشاف المحدود لـ LE؛ 0x02 وضع الاكتشاف العام لـ LE SERVICE: 0x02 معرّفات UUID للخدمات 16-بت، مزيد من معرّفات UUID 16-بت متاحة 0x03 معرّفات UUID للخدمات 16-بت، القائمة الكاملة لمعرّفات UUID 16-بت المتاحة 0x04 معرّفات UUID للخدمات 32-بت، مزيد من معرّفات UUID 32-بت متاحة 0x05 معرّفات UUID للخدمات 32-بت، القائمة الكاملة لمعرّفات UUID 32-بت المتاحة 0x06 معرّفات UUID للخدمات 128-بت، مزيد من معرّفات UUID 128-بت متاحة 0x07 معرّفات UUID للخدمات 128-بت، القائمة الكاملة لمعرّفات UUID 128-بت المتاحة

تنزيل الأداة