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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
jbl-wave-buds2-firmware-research — JBL Wave Buds 2 (BES1306) फर्मवेयर के लिए रिवर्स-इंजीनियरिंग नोट्स और Python टूलिंग: OTA कंटेनर फ़ॉर्मेट, फ़्लैश लेआउट, BLE/GATT प्रोटोकॉल, और CRC-32 ट्रस्ट मॉडल। | Kitploit
उपकरण/GitHubGitHub/c8dhjp4tyv-bit/jbl-wave-buds2-firmware-research
एम्बेडेड सिस्टम सुरक्षाब्लूटूथ सुरक्षाIoT सुरक्षाशोषणरिवर्स इंजीनियरिंगक्रिप्टोग्राफीहार्डवेयर और IoT सुरक्षाबाइनरी विश्लेषणपेपर और शोध

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
फर्मवेयर विश्लेषण
GitHubc8dhjp4tyv-bit/jbl-wave-buds2-firmware-research

jbl-wave-buds2-firmware-research

JBL Wave Buds 2 (BES1306) फर्मवेयर के लिए रिवर्स-इंजीनियरिंग नोट्स और Python टूलिंग: OTA कंटेनर फ़ॉर्मेट, फ़्लैश लेआउट, BLE/GATT प्रोटोकॉल, और CRC-32 ट्रस्ट मॉडल।

रिपॉजिटरी देखें
1332 दिन पहलेअभी तक समीक्षित नहीं

JBL Wave Buds 2 — फ़र्मवेयर और OTA रिवर्स इंजीनियरिंग

Tests

JBL Wave Buds 2 (Bestechnic BES1306, PID 2100) के लिए रिवर्स-इंजीनियरिंग नोट्स और पुनरुत्पादनीय टूलिंग: ऑन-फ़्लैश लेआउट, बाइट-दर-बाइट OTA कंटेनर फ़ॉर्मेट, BLE/GATT कमांड प्रोटोकॉल और BES "TOTA v2" एन्क्रिप्टेड ट्रांसपोर्ट, डिवाइस- और ऐप-साइड ट्रस्ट सीमाएँ, फ़ैक्टरी कंसोल, और आपके स्वयं के यूनिट पर स्व-निर्मित इमेज लोड करने की एक पुनरुत्पादनीय विधि।

यह विश्लेषण दो बिल्ड्स पर फैला है — IDA-विश्लेषित wavebuds.elf (अप्रैल 2025) और वितरण पैकेज 2.9.0 (सितंबर 2026) — एक पूर्णतः निर्दिष्ट 8-स्ट्रीम OTA कंटेनर (बाइट-समान रीपैक द्वारा सत्यापित), ऐप और डिवाइस दोनों पक्षों पर पुष्ट CRC-32 इंटीग्रिटी मॉडल, एक 54/59-प्रविष्टि फ़ैक्टरी कमांड तालिका, 12 OTA RAM स्टेट वेरिएबल्स, एक 7,960-फ़ंक्शन गणना, और एक क्रॉस-बिल्ड डिफ़रेंशियल। OTA/फ़्लैश/CRC/फ़ैक्टरी सबसिस्टम्स के लिए सिमैंटिक रिकवरी गहन है और अन्यत्र केवल गणना-मात्र — देखें completeness audit।

[!WARNING] यह स्वामी द्वारा किया गया हार्डवेयर शोध है, कोई आधिकारिक JBL अपडेट नहीं। संशोधित इमेज फ़्लैश करना अपरिवर्तनीय है: डाउनलोड चरण चरणबद्ध और ब्रिक-सुरक्षित है, लेकिन CRC-वैध-परंतु-क्षतिग्रस्त इमेज के सक्रियण का कोई प्रदर्शित रिकवरी पथ नहीं है। कुछ भी पुनरुत्पादित करने से पहले SAFETY.md पढ़ें।

तुर्की संस्करण: README.tr.md

साथी ऐप में परीक्षित JBL Wave Buds 2: दोनों ईयरबड्स 100% पर कनेक्टेड, सभी नियंत्रण सक्रिय

परीक्षित यूनिट पर हार्डवेयर परिणाम: ऐप + उपयोगकर्ता-CA MITM OTA पाइपलाइन के सत्यापित होने के बाद, दोनों ईयरबड्स कनेक्ट होते हैं, 100% रिपोर्ट करते हैं, और ऐप का प्रत्येक नियंत्रण (ANC/Ambient, जेस्चर, EQ) काम करता है। एक-बाइट-संशोधित इमेज को भी उसी तरह स्वीकार किया गया और डिवाइस पूरी तरह कार्यात्मक बना रहा।

पुष्ट निष्कर्ष

पते विश्लेषित बिल्ड (wavebuds.elf) से हैं; देखें address ledger और provenance।

  • OTA इमेज क्रिप्टोग्राफ़िक रूप से हस्ताक्षरित नहीं है। डिवाइस-साइड इंटीग्रिटी केवल CRC-32 है — हैंडलर 0x2C0918BC कॉन्फ़िग, प्रत्येक सेगमेंट, और पूरी इमेज को CRC-32 रूटीन 0x2C0CE944 (तालिका 0x2C0F5218) के साथ जाँचता है, साथ ही एक "BEST" मैजिक। एक संशोधित बाइट वाली CRC-वैध इमेज स्वीकार की गई और बूट हुई।
  • ऐप का RSA-2048 सत्यापक (com.jbl.counterfeit.Rsa2048DynamicVerifier) काउंटरफ़िट-विरोधी (डिवाइस प्रामाणिकता) है, फ़र्मवेयर हस्ताक्षर नहीं।
  • ऐप अपने OTA एंडपॉइंट्स को पिन नहीं करता; OTA कॉन्फ़िग को इंटरसेप्ट और पुनर्लेखित करने के लिए उपयोगकर्ता-स्थापित CA पर्याप्त है।
  • OTA चरणबद्ध है: नई इमेज फ़्लैश बेस 0x28120000 पर कॉपी की जाती है जबकि चल रहा एप्लिकेशन अछूता रहता है, इसलिए डाउनलोड चरण ब्रिक-सुरक्षित है।
  • एक बाहरी BLE सेंट्रल OTA को संचालित नहीं कर सकता: हैंडलर आंतरिक TWS/कनेक्शन स्टेट पर गेटेड हैं (0x2C0905E4: MEMORY[0x20026BA0] ∈ {2,4})।
  • BES TOTA v2 ट्रांसपोर्ट अपनी AES-128 सत्र कुंजी पूरी तरह क्लाइंट-साइड से प्राप्त करता है; कोई सर्वर/डिवाइस रहस्य नहीं है।
  • एक फ़ैक्टरी/इंजीनियरिंग कंसोल (विश्लेषित बिल्ड में 59 कमांड, 2.9.0 में 54) डिवाइस पहचान (MAC/BLE पता), क्रिस्टल ट्रिम, और BT लिंक कुंजी को पढ़/लिख सकता है। इसकी ओवर-द-एयर पहुँच UNRESOLVED है।
  • दोनों बिल्ड्स अलग-अलग संकलित और स्थानांतरित हैं: समान उत्पाद, स्थानांतरित पते, 59 → 54 फ़ैक्टरी प्रविष्टियाँ। देखें differential।

परीक्षित संशोधन

संशोधन जानबूझकर न्यूनतम है — डीकंप्रेस्ड इमेज का एक बाइट। यह डीकंप्रेस्ड ऑफ़सेट 64096 पर RTX कर्नेल स्ट्रिंग RTX V5.5.1 → V5.5.2 बदलता है, और कंटेनर CRC-32 की पुनर्गणना की जाती है। यह डिज़ाइन से कॉस्मेटिक है: उद्देश्य यह सिद्ध करना है कि डिवाइस संशोधित-परंतु-CRC-वैध इमेज स्वीकार करता है, व्यवहार बदलना नहीं।

Base (owner-supplied; not redistributed)
  official 2.9.0 package   549,558 bytes   SHA-256 836cb251f9fb2261dde14f39ba18d358c48018817f3c3d1b527e1ac5f3ab7ba2
  decompressed image       955,596 bytes   SHA-256 489663e80b76f20f4c94671064908569fac5f4e3df10ab6d7369baffe094f67d
  container CRC-32          A0C7CCEC (valid), input range [0x0, 0x862AD)

रिपॉज़िटरी में जानबूझकर कोई JBL फ़र्मवेयर नहीं है। अपना स्वयं का वैध रूप से प्राप्त पैकेज प्रदान करें और पुनः उत्पन्न करें:

python3 tools/ota_unpack.py  <official_2.9.0_package.bin> --extract image.bin
python3 tools/ota_repack.py  make-test <official_2.9.0_package.bin> test.bin
python3 tools/ota_unpack.py  test.bin      # exactly one decompressed byte differs; CRC valid

रिपैक किए गए कंटेनर के सटीक बाइट्स LZMA एनकोडर पर निर्भर करते हैं; डिवाइस CRC-32 सत्यापित करता है, पैकेज हैश नहीं (देखें docs/04), और एक-बाइट डीकंप्रेस्ड अंतर नियतात्मक (deterministic) है। ऐप के माध्यम से डिलीवरी docs/08 में है।

आरेख

फ्लैश मैप2 MB NOR विभाजन
OTA कमांड प्रवाहअनुक्रम और उसके CRC-32 चेकपॉइंट
ट्रस्ट सीमाएँप्रत्येक चरण क्या सत्यापित करता है, और इमेज ट्रस्ट कहाँ निहित है

दस्तावेज़ीकरण

टूल डाउनलोड करें