Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
BTLE — ब्लूटूथ लो एनर्जी (BLE) पैकेट स्निफर और ट्रांसमीटर, सॉफ्टवेयर डिफाइंड रेडियो (SDR) पर आधारित, मानक और गैर-मानक (रॉ बिट) दोनों प्रकार के लिए। | Kitploit
उपकरण/GitHubGitHub/jiaoxianjun/btle
पैकेट स्निफिंग और विश्लेषणब्लूटूथ सुरक्षाIoT सुरक्षावायरलेस सुरक्षा
GitHubjiaoxianjun/btle

BTLE

ब्लूटूथ लो एनर्जी (BLE) पैकेट स्निफर और ट्रांसमीटर, सॉफ्टवेयर डिफाइंड रेडियो (SDR) पर आधारित, मानक और गैर-मानक (रॉ बिट) दोनों प्रकार के लिए।

रिपॉजिटरी देखें
9271712 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट

BTLE

BTLE एक मुफ़्त और ओपन-सोर्स ब्लूटूथ लो एनर्जी (BLE) सॉफ्टवेयर डिफ़ाइंड रेडियो सॉफ्टवेयर सूट और ओपन BTLE चिप डिज़ाइन है।

इसमें शामिल है:

  • BTLE बेसबैंड एल्गोरिदम विवरण, Python और Verilog कार्यान्वयन, FPGA और SkyWater 130 PDK (OpenLane2 workflow) परिणाम।
  • Analog Devices AD9361 + Xilinx Zynq FPGA कार्यान्वयन: FPGA Bluetooth
  • btle_rx - BLE स्निफ़र। प्रसारण/निश्चित चैनल सूँघने के अलावा, यह किसी संचार लिंक के चैनल होपिंग को भी ट्रैक कर सकता है।
  • btle_tx - यूनिवर्सल BLE पैकेट ट्रांसमीटर। BLE मानक के अलावा, यह मनमाना GFSK पैकेट उत्पन्न करने के लिए रॉ बिट मोड का भी समर्थन करता है। इस तरह, आप बाज़ार में चिप आने से पहले गैर-मानक प्रोटोकॉल या विचाराधीन मानक का परीक्षण कर सकते हैं।

विशेषताएँ

  • PHY और ऊपरी परत सॉफ्टवेयर (C भाषा) में लागू की गई हैं। पूर्ण सॉफ्टवेयर डिफ़ाइंड रेडियो लचीलापन।
  • BLE मानक 1Mbps GFSK PHY।
  • Core_V4.0 (अध्याय 2 और 3, PartB, Volume 6) में सभी ADV और DATA चैनल लिंक लेयर पैकेट प्रारूप समर्थित हैं।
  • स्निफ़र चैनल होपिंग पैटर्न को स्वचालित रूप से पार्स और ट्रैक करने में सक्षम है, न कि केवल प्रसारण चैनल या निश्चित चैनल तक सीमित।

हार्डवेयर

  • HackRF
  • bladeRF
  • HackRF और bladeRF लाइब्रेरी का संगत संस्करण

निर्माण और त्वरित परीक्षण

इस प्रोजेक्ट को चलाने से पहले सुनिश्चित करें कि आपका SDR हार्डवेयर वातावरण (driver/lib) सही ढंग से सेट किया गया है।

root@kitploit:~
git clone https://github.com/JiaoXianjun/BTLE.git
cd BTLE/host
mkdir build
cd build
cmake ../                   (डिफ़ॉल्ट। HackRF के लिए)
cmake ../ -DUSE_BLADERF=1   (केवल 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 चैनल पर डिस्कवरी पैकेट प्रसारित करता है। आपको किसी अन्य BLE स्निफ़र ऐप (जैसे LightBlue) में "SDR/Bluetooth/Low/Energy" नाम का डिवाइस दिखाई देना चाहिए।

HACKRF पर तेज़ ऑपरेशन अनुक्रम के लिए, निम्न का उपयोग करें:

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

hackrf/host/libhackrf/src/hackrf.c में। फिर HACKRF लिब को पुनः संकलित करें और इसे पुनः स्थापित करें। HACKRF लिब परिवर्तन को लागू करने के लिए BTLE को पुनः संकलित करना न भूलें।

टूल के अलावा, matlab निर्देशिका में एल्गोरिदम मूल्यांकन और अन्य उपयोगी स्क्रिप्ट शामिल हैं

btle_rx उपयोग

root@kitploit:~
-h --help

सभी तर्क/उपयोग प्रिंट करें।

root@kitploit:~
-c --chan

चैनल नंबर। डिफ़ॉल्ट मान 37 (ADV चैनलों में से एक)। मान्य मान 0~39 (सभी ADV और DATA चैनल)।

root@kitploit:~
-g --gain

Rx लाभ dB में। HACKRF rxvga डिफ़ॉल्ट 6, मान्य 0 - 62। bladeRF डिफ़ॉल्ट अधिकतम rx लाभ 66dB है (मान्य 0 - 66)। आपके परिवेश में सर्वोत्तम प्रदर्शन सुनिश्चित करने के लिए लाभ को बहुत सावधानी से समायोजित किया जाना चाहिए। कम लाभ से परीक्षण शुरू करने का सुझाव दिया जाता है, क्योंकि उच्च लाभ हमेशा गंभीर विरूपण का कारण बनता है और आपको कुछ नहीं देता।

root@kitploit:~
-l --lnaGain

LNA लाभ dB में (केवल HackRF)। डिफ़ॉल्ट 32, मान्य 0 - 40। आपके परिवेश में सर्वोत्तम प्रदर्शन सुनिश्चित करने के लिए लाभ को बहुत सावधानी से समायोजित किया जाना चाहिए।

root@kitploit:~
-b --amp

एम्प सक्षम करें (केवल HackRF)। डिफ़ॉल्ट बंद।

root@kitploit:~
-a --access

एक्सेस एड्रेस। ADV चैनल 37 38 39 के लिए डिफ़ॉल्ट 8e89bed6। कैप्चर की गई कनेक्शन सेटअप प्रक्रिया के अनुसार डेटा चैनल के लिए सही मान निर्दिष्ट करें।

root@kitploit:~
-k --crcinit

ADV चैनल के लिए डिफ़ॉल्ट 555555। कैप्चर की गई कनेक्शन सेटअप प्रक्रिया के अनुसार डेटा चैनल के लिए सही मान निर्दिष्ट करें।

root@kitploit:~
-v --verbose

वर्बोज़ मोड। त्रुटि होने पर अधिक जानकारी प्रिंट करता है

root@kitploit:~
-r --raw

रॉ मोड। एक्सेस एड्रेस का पता लगाने के बाद, अगले 42 रॉ बाइट्स प्रिंट करें (डिस्क्रैम्बलिंग, पार्सिंग के बिना)

root@kitploit:~
-f --freq_hz (तर्क की आवश्यकता है)

यह आवृत्ति (Hz) चैनल सेटिंग को ओवरराइड करेगी (यदि कोई BTLE के अलावा अन्य आवृत्ति पर काम करना चाहता है। अधिक सामान्य उद्देश्य)।

root@kitploit:~
-m --access_mask (तर्क की आवश्यकता है)

यदि इस मास्क में कोई बिट 1 है, तो एक्सेस एड्रेस में संबंधित बिट को पैकेट मौजूद होने के निर्णय में लिया जाएगा (यदि कोई पैकेट का पता लगाने के लिए छोटा/विरल अद्वितीय शब्द चाहता है। अधिक सामान्य उद्देश्य)।

root@kitploit:~
-o --hop

यह ADV चैनल पर ADV_CONNECT_REQ पैकेट में लिंक सेटअप जानकारी कैप्चर होने के बाद डेटा चैनल ट्रैकिंग (आवृत्ति होपिंग) चालू करेगा।

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/आदि। सभी प्रारूप उदाहरण अंत में: परिशिष्ट देखें), फिर field-value जोड़ी जो packet_type विशिष्ट है, अंत में Space-value जोड़ी (वैकल्पिक) होती है जहां मान निर्दिष्ट करता है कि इस पैकेट के भेजे जाने के बाद कितने मिलीसेकंड प्रतीक्षा की जाएगी।

कमांड लाइन पैकेट डिस्क्रिप्टर में स्पेस वर्ण " " का उपयोग न करें। आप txt फ़ाइल पैकेट डिस्क्रिप्टर में स्पेस का उपयोग कर सकते हैं।

प्रत्येक फ़ील्ड के अंदर "-" का उपयोग न करें। "-" जादुई वर्ण है जिसका उपयोग पैकेट डिस्क्रिप्टर में विभिन्न फ़ील्ड को अलग करने के लिए किया जाता है।

  • btle_tx उदाहरण: Discovery पैकेट

इस कमांड से पहले अपने iPhone/डिवाइस में LightBlue ऐप (या अन्य BLE स्निफ़र) खोलें:

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

आप अपने LightBlue ऐप में "SDR Bluetooth Low Energy" नाम का डिवाइस देखेंगे।

संबंधित कमांड लाइन:

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 चैनल 37 में ADV_IND पैकेट भेजता है।

दूसरा पैकेट -- डिवाइस 2 (स्कैनिंग स्थिति में) डिवाइस 1 से ADV पैकेट प्राप्त करने के बाद, डिवाइस 2 डिवाइस 1 के साथ कनेक्शन सेटअप का अनुरोध करने के लिए CONNECT_REQ पैकेट भेजता है। इस अनुरोध पैकेट में, डिवाइस 2 का MAC पता (InitA), लक्ष्य MAC पता (डिवाइस 1 का MAC पता AdvA), एक्सेस पता (AA) जो डिवाइस 1 द्वारा डेटा चैनल में निम्नलिखित पैकेट भेजने में उपयोग किया जाएगा, डिवाइस 1 द्वारा अगले पैकेट भेजने के लिए CRC आरंभिकरण मान, डिवाइस 1 द्वारा उपयोग किए जाने वाले डेटा चैनल के लिए होपिंग चैनल जानकारी (ChM और Hop), आदि शामिल हैं।

तीसरा पैकेट -- डिवाइस 1 डिवाइस 2 से प्राप्त कनेक्शन अनुरोध जानकारी के अनुसार चैनल 9 (होपिंग योजना द्वारा तय) में एक खाली लिंक लेयर डेटा PDU भेजता है। ("DATA" फ़ील्ड के बाद "XX" का अर्थ है कि इस फ़ील्ड के लिए कोई डेटा नहीं है)

पैकेटों के बीच समय स्थान 1s (1000ms) है। 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 पैकेट भेजता है और इसे 100ms समय अंतराल के साथ 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 प्रारूप। (वास्तव में यह Core_V4.0.pdf में ADV_IND प्रारूप है)

root@kitploit:~
AdvA

विज्ञापन पता (MAC पता) जो 010203040506 पर सेट है (Core_V4.0.pdf देखें)

root@kitploit:~
UUID

यहां हम इसे Estimote के निश्चित UUID के रूप में निर्दिष्ट करते हैं: B9407F30F5F8466EAFF925556B57FE6D

root@kitploit:~
Major

iBeacon प्रारूप की प्रमुख संख्या। (यहां यह 0008 है)

root@kitploit:~
Minor

iBeacon प्रारूप की गौण संख्या। (यहां यह 0009 है)

root@kitploit:~
Txpower

iBeacon प्रारूप का ट्रांसमिट पावर पैरामीटर (यहां यह C5 है)

root@kitploit:~
Space

इस पैकेट के भेजे जाने के बाद कितने मिलीसेकंड प्रतीक्षा की जाएगी। (यहां यह 100ms है)

डेमो

TI के पैकेट स्निफ़र के साथ तुलना देखें: http://sdr-x.github.io/BTLE-SNIFFER/

btle_rx वीडियो डेमो या btle_rx वीडियो डेमो (चीन में) और btle_tx वीडियो डेमो 1 या btle_tx वीडियो डेमो 2 (चीन में) देखें।

परिशिष्ट: सभी प्रारूपों के लिए 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

Discovery पैकेट: (जो स्कैनर ऐप में कोई भी नाम या सेवाएं दिखा सकते हैं, जैसे 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 16-बिट सेवा UUID अधिक 16-बिट UUID उपलब्ध
0x03 16-बिट सेवा UUID उपलब्ध 16-बिट UUID की पूरी सूची
0x04 32-बिट सेवा UUID अधिक 32-बिट UUID उपलब्ध
0x05 32-बिट सेवा UUID उपलब्ध 32-बिट UUID की पूरी सूची
0x06 128-बिट सेवा UUID अधिक 128-बिट UUID उपलब्ध
0x07 128-बिट सेवा UUID उपलब्ध 128-बिट UUID की पूरी सूची
टूल डाउनलोड करें