Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
obike — oBike प्रोटोकॉल संचार (BLE और HTTP) का रिवर्स इंजीनियरिंग | Kitploit
उपकरण/GitHubGitHub/antoinet/obike
ब्लूटूथ सुरक्षाIoT सुरक्षारिवर्स इंजीनियरिंगवायरलेस सुरक्षाक्रिप्टोग्राफीपेपर और शोधAPI सुरक्षा
GitHubantoinet/obike

obike

oBike प्रोटोकॉल संचार (BLE और HTTP) का रिवर्स इंजीनियरिंग

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

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

oBike प्रोटोकॉल विवरण (BLE/HTTP)

यह दस्तावेज़ जनवरी 2018 तक oBike संचार प्रोटोकॉल का विश्लेषण प्रदान करता है।

परिणाम insomni'hack security conference 2019 में प्रस्तुत किए गए हैं:

  • स्लाइड्स
  • रिकॉर्डिंग

साथ ही AREA41 security conference 2018 में:

  • स्लाइड्स
  • रिकॉर्डिंग

सामान्य oBike संचार

oBike लॉक में एक TI CC2541 माइक्रोकंट्रोलर होता है, जो ब्लूटूथ लो एनर्जी (BLE) अनुप्रयोगों के लिए उपयोग किया जाने वाला एक पावर-अनुकूलित सिस्टम ऑन चिप (SoC) है। लॉक में स्वयं कोई IP कनेक्टिविटी नहीं होती; यह oBike बैकएंड के साथ संवाद करने के लिए मोबाइल डिवाइस के 3G/4G कनेक्शन का उपयोग करता है। लॉक मोबाइल डिवाइस पर oBike ऐप के साथ BLE के माध्यम से संवाद करता है। प्रोटोकॉल संदेशों को फिर REST API के माध्यम से oBike बैकएंड पर रिले किया जाता है।

लॉक में अपना स्वयं का GPS मॉड्यूल नहीं होता। इस प्रकार, बैकएंड को रिपोर्ट की गई स्थिति हमेशा मोबाइल डिवाइस की होती है, न कि स्वयं oBike की।``` GPS | +---------+ +---------+ +----------+ | oBike | | Mobile | | oBike | | Lock | +--- BLE ---> | Device | +--- HTTPS ---> | Backend | +---------+ +---------+ +----------+

## अनलॉक अनुक्रम```
 oBike Lock          (BLE)     Mobile Device    (HTTPS)           oBike Backend
------------+------------------------+---------------------------+--------------
            |                        |                           |
            | [1] hello(lat, lng)    |                           |
            | <--------------------- |                           |
Generate    |                        |                           |
32bit       | [2] keySource          |                           |
Challenge   | ---------------------> | [3] unlockPass(keySource) |
            |                        | ========================> | Compute
            |                        |                           | Response
            | [5]                    | [4] encKey, keys          |
            | sendKeys(encKey, keys) | <======================== |
!Unlock     | <--------------------- |                           |
 Bike!      |                        |                           |
            |                        |                           |
Generate    |                        |                           |
Acknowledge | [6] macKey, index      | [7]                       |
Message     | ---------------------> | lockMessage(macKey,index) |
            |                        | ========================> | Register
            |                        |                           | Ride (start
            |                        |                           | billing)

चरण:

  1. BLE से hello संदेश भेजें, लॉक को निर्देशांक पुश करें।
  2. BLE से keySource प्राप्त करें, यह एक 32-बिट मान है जो चिप के चालू होने के बाद से मिलीसेकंड की संख्या दर्शाता है (लिटिल एंडियन)।
  3. HTTPS से unlockPass REST कॉल के माध्यम से keySource को oBike बैकएंड को भेजें।
  4. HTTPS से encKey (कुंजी सूचकांक) और keys में 128-बिट कुंजी मान प्राप्त करें।
  5. BLE से encKey (96 बिट में छोटा करके) और index (जो encKey के अनुरूप है) भेजें। इस बिंदु पर, बाइक अनलॉक हो जाएगी।
  6. BLE से macKey और index प्राप्त करें, यह एक पुष्टि है कि अनलॉकिंग सफल रही।
  7. HTTPS से lockMessage भेजें, संबंधित मानों के साथ (macKey और index)। इस बिंदु पर, oBike बैकएंड यात्रा पंजीकृत करेगा और बिलिंग शुरू करेगा।

BLE प्रोटोकॉल

निम्नलिखित अनुभागों में वर्णित BLE प्रोटोकॉल घटक पायथन मॉड्यूल obike.ble_client में लागू किए गए हैं। इसके अलावा, obike BLE विज्ञापनों का पता लगाने के लिए एक स्कैनर obike.ble_scanner.py में लागू किया गया है।

सामान्य कमांड प्रारूप```

6774 0D 86 59AEB6...3931 FD | | | | | | | | | +-- Check byte | | | +----------------- Payload | | +--------------------- Command type | +------------------------- Length of payload in bytes +------------------------------- Command Signature ('gt')

आने वाले और जाने वाले दोनों संदेश हमेशा सिग्नेचर `\x67\x74`
(ascii `gt`) से शुरू होते हैं।

पेलोड की लंबाई हेडर/ट्रेलर के बिना बाइट्स की संख्या होती है।

प्रोटोकॉल एक बाइट द्वारा पहचाने जाने वाले विभिन्न संदेश प्रकारों का समर्थन करता है। दो सबसे
महत्वपूर्ण बिट्स संदेश की दिशा निर्धारित करते हैं:```
 0x86   1000 0101     mobile -> obike
 0x46   0100 0101     obike  -> mobile

चेक बाइट की गणना कमांड प्रकार और पेलोड बाइट्स के XOR से की जाती है:``` check_byte = cmdtype ^ b[0] ^ b[1] ^ ... ^ b[N-1]

The maximumn PDU size is 19 bytes (header + payload + trailer). Messages
exceeding this size are fragmented.

### BLE getLockRecord/deleteLockRecord

Command type: `6`  
These messages are used to manage the "lock record", a data record persisted by
the chip consisting of information from the last ride, such as memberid,
timestamp, oBike identifier, coordinates, etc.

Called without a payload, the command is used to retrieve the saved lock
record:```
00000000  67 74 00 86 86                                    |gt...|

यदि कोई लॉक रिकॉर्ड उपलब्ध नहीं है, तो लॉक एक खाली पेलोड के साथ प्रतिक्रिया करता है।``` 00000000 67 74 00 46 46 |gt.FF|

अन्यथा, लॉक की प्रतिक्रिया में अंतिम सवारी के कई मान निम्नलिखित प्रारूप में होते हैं:```
00000000  67 74 46 46 00 00 01 23  45 67 59 9d 72 2a 44 31  |gtFF...#d2Y.r*D1|
00000010  39 33 36 42 33 31 37 2a  72 9d 59 00 34 37 2e 33  |936B317*r.Y.47.3|
00000020  37 32 37 36 30 00 00 00  30 38 2e 35 33 30 38 34  |72760...08.53084|
00000030  32 32 00 00 87 76 f3 7a  8c be 90 f8 4b a4 fa 00  |22...v.z....K...|
00000040  2e ae e3 dc 91 00 00 00  a9 01 8b                 |...........|

The input chunk is empty — no Markdown content was provided to translate. Please supply the actual chunk text so I can translate it into Hindi.``` Offset Value Description

0004 000001234567 member-id (explicitly coded in decimal, value is: 1234567)

000a 599d722a UNIX timestamp, 08/23/2017 @ 12:16pm

000e 443139333642333137 obike identifier (D1936B317) this corresponds to the MAC address without the first 3 hex digits, in this case: D4:3D:19:36:B3:17

0017 2a729d59 same UNIX timestamp, little endian

001b 00 transaction type

001c 34372e333732373630000000 latitude (47.372760)

0028 30382e353330383432320000 longitude (08.5308422)

0034 8776f37a8cbe90f84ba4fa002eaee3dc mackey (128 bits)

0044 91 key index

0045 000000 ? 0048 a901 battery voltag level (little endian) e.g. 4.25V

जब किसी पेलोड के साथ उपयोग किया जाता है, तो यह कमांड वर्तमान लॉक रिकॉर्ड को हटा देता है:```
00000000  67 74 0d 86 59 d5 ff a4  36 33 39 38 37 37 31 33  |gt..Y...63987713|
00000010  43 14                                             |C.|

डिलीट कमांड के लिए पेलोड में "Bike Trade Number" शामिल है, जिसे पहले पढ़ा गया था, अर्थात जब बाइक किराए पर दी गई थी उस समय की टाइमस्टैम्प और obike पहचानकर्ता:``` Offset Value Description

0004 59d5ffa4 timestamp (little endian) 000e 3633393837373133 "63987713C" obike identifier

### BLE Push Coords / Get Challenge
टूल डाउनलोड करें