藍(lán)牙廣播包格式_第1頁(yè)
藍(lán)牙廣播包格式_第2頁(yè)
藍(lán)牙廣播包格式_第3頁(yè)
藍(lán)牙廣播包格式_第4頁(yè)
藍(lán)牙廣播包格式_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、襄坤在線專(zhuān)注!極致!精進(jìn)!BLE廣播數(shù)據(jù)的抓包解析刖言:報(bào)文由數(shù)據(jù)字節(jié)組成同時(shí)是按比特傳輸?shù)?,這就免不了牽涉到字節(jié)序的問(wèn)題。對(duì)于各個(gè)字節(jié)的傳輸,總是從最低位開(kāi)始傳輸。如0 x80是按00000001發(fā)送 的,0 x01是按10000000發(fā)送的。同時(shí)大多數(shù)字節(jié)域又是從低字節(jié)開(kāi)始發(fā)送的。如0 x010203發(fā)送序列為11000000 01000000 10000000之所以說(shuō)大多數(shù),是因?yàn)椴⒉皇撬械臄?shù)據(jù)都會(huì)從低字節(jié)發(fā)送,從后面的抓取的 廣播報(bào)文中也能看不來(lái)。另外由于抓包軟件可能并不一定能完全知道哪些數(shù)據(jù)時(shí) 從低字節(jié)開(kāi)始發(fā)的,抓取的廣播數(shù)據(jù)可能有一些需要按字節(jié)倒著讀。下面進(jìn)入正題:在鏈路層BLE

2、的廣播報(bào)文分為如下幾個(gè)部分。|前導(dǎo)|接入地址|報(bào)頭|長(zhǎng)度|廣播數(shù)據(jù)|校驗(yàn)|一般抓包工具抓取到廣播數(shù)據(jù)后顯示出來(lái)的都會(huì)分段顯示,所以你很容易看出各 個(gè)段的數(shù)據(jù),本文重要是解析廣播數(shù)據(jù)段中的內(nèi)容。前導(dǎo)(1字節(jié)):不知道的可以理解為同步頭,主要是用來(lái)配置接收機(jī)的自動(dòng) 增益控制。接入地址(4字節(jié)):對(duì)于廣播報(bào)文來(lái)說(shuō)是固定的0 x8e89bed6 (同時(shí)接入地址也 決定前導(dǎo)的序列,在這里并不是重點(diǎn),不做過(guò)多介紹) 報(bào)頭(1字節(jié)):依次為廣播報(bào)文類(lèi)型(4bit),保留位(2bit),發(fā)送數(shù)據(jù)地址類(lèi)型(1bit),接收地址類(lèi)型(1bit)長(zhǎng)度(1字節(jié)):指示廣播數(shù)據(jù)的長(zhǎng)度(廣播地址AdvA+數(shù)據(jù)AdvDat

3、a)廣播數(shù)據(jù):我們需要解析的數(shù)據(jù)段,后面會(huì)詳細(xì)說(shuō)明。校驗(yàn)(3字節(jié)):CRC校驗(yàn)卜面 是Packet Sniffer抓到數(shù)據(jù)P.nb-riTiine (us IChannelAcce-s s AddressAdv PDU TypeAdv P5L HeaderTxAdd RxAdd PDU-LengthAdwA4 |=皿口白0X2ES9BE.D5000330 x060304030201從中可以明顯的看出各個(gè)段的內(nèi)容:紅色字段接入地址就是廣播的固定接入地址0 x8e89bed6。(抓包軟件未轉(zhuǎn)換字 節(jié)序)報(bào)頭字段中:廣播類(lèi)型是通用廣播(Type為0),地址類(lèi)型都是public(TxAdd和RxAdd

4、都為0)。長(zhǎng)度字段指示adv+AdvData長(zhǎng)度廣播設(shè)備地址是我自己設(shè)定的ble_gap_addr_t add=.addr_type=BLE_GAP_ADDR_TYPE_PUBLIC,.addr=0 x01,0 x02,0 x03,0 x04,0 x05,0 x06;因?yàn)榈刂肥?48-bit address, LSB format.所以真實(shí)地址為0 x060504030201.AdvDara中一大堆數(shù)據(jù)就是我們需要解析的。下面是詳細(xì)信息,其中有抓包軟件加的幀頭數(shù)據(jù)。+4I Packet anier zrame headerI+444I ino-lFaclretnbr.IlimeatainpIL

5、ength.IFa eke tdata+H+ I 01I04000000|EB01B902 00 00 00 |2D00I2C:D6HEE9 SE 00 21 01 02 03 04 05 06 0E+1十+ 發(fā)現(xiàn)圖片太小就復(fù)制了一下內(nèi)容+1I Packet sniffer frame headerI+-+linfol Packet nbrI Time stampI LengthI Packet data+ 1111I01 I04 00 00 00 I EB 01 B9 02 00 00 00 00 I 2D 00 I 2C D6 BE 89 8E 00 21 0102 03 04 05 06

6、 0B 09 4E 6F 72 64 69 63 5F 48 52 4D 03 19 34 12 02 01 06 07 03 0D18 0F 18 0A 18 39 FE 57 2A A5卑從 Packet data 開(kāi)始2C為packet data總字節(jié)數(shù)D6 BE 89 8E為接入地址(字節(jié)序問(wèn)題)00為報(bào)頭字段(通用廣播類(lèi)型,public地址)21為長(zhǎng)度字段的值,指示adv+AdvData的總字節(jié)數(shù)01 02 03 04 05 06為廣播設(shè)備地址之后便為重點(diǎn)需要解析的AdvData部分。首先還是需要知道這一部分的數(shù)據(jù)格 式。藍(lán)牙說(shuō)明書(shū)4.1中說(shuō)明數(shù)據(jù)格式為|length|AD type

7、|AD data|AD Structure 1AD Structure 2AD Structure NJ .-! 1 octetLength octetsLengthDatan octets11Length - n octetsAD TypeAD Data即Advdata都是由這種格式的數(shù)據(jù)段組成。Length即為一小段數(shù)據(jù)的長(zhǎng)度AD type指示AD Data數(shù)據(jù)的含義。AD type的定義如下,Macros#de1ireBLE_GAP_A D_TYPE_FLAG S 0 x01#de1ireBLE_GAP_AD_TYPE_1SBnSERVICE_UUID_WORE_ AVAILABLE0

8、x02#defireBLE_GAP_AD_TYPE_16BniSERVICE_UUID_COMRLETE 0 x03#deHreBLE_GAP_AD_TYPE_32BnLSERVICE_UUID_WORE_AVAILABLE0X04#de1ireBLE_GAP_AD_TYPE_32BniSERVICE_UUID_COMPLETE 0 x05#de1ireBLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_MORE_A VAILABLE0 x06#defireBLE_GAP_AD_TYPE_12aBIT_SERVICE_UUID_COMPLETE 0 x07#defireBL

9、E_GAP_AD_TYPE_SHOR1LLOCAL_NAME OxOBBLE_GAP_AD_TYPE_COMFLETE_LOCAL_NAME 0 x09#de1ireBLE_GAP_A D_TYPE_TX_POWER_LEVEL OxOA#defireBLE_GAP_A D_TYPE_CLASS_OF_DEVICE OxOD#defireBLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C OxOE#de1ireBLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R OxOF#deHreBLE_GAP_AD_TYPE_SECURITY_MA

10、NAGER_1K_VALUE 0 x10#defireBLE_GAP_AD_TYPE_SECURITY_MANAGER_OOB_FLAGS 0 x11#de1ireBLE_GAP_AD_TYPE_SLAVE_CONNEC71ON_IN1ERVAL_RANGE0 x12#de1ireBLE_GAP_AD_TYPE_SOLICI7ED_SERVICE_UUIDS_16BIT 0 x14#defireBLE_GAP_AD_TYPE_SOLICI7ED_SERVICE_UUIDS_12BBIT 0 x15#defireBLE_GAP_AD_TYPE_SERVICE_DATA 0 x16#de1ireB

11、LE_GAP_AD_TYPE_PUBLIC_TARGET_ADDRESS 0 x17#de1ireBLE_GAP_AD_TYPE_RANDOM_TARGET_ADDRESS 0 x18#defireBLE_GAP_AD_TYPE_APPEARANCE 0 x19#defireBLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA OxFF下面繼續(xù)分析后面的數(shù)據(jù)0B告訴我們這一小段的數(shù)據(jù)長(zhǎng)度為11字節(jié)即09 4E 6F 72 64 69 63 5F 48 52 4D都屬于這以部分查上面的表09指明AD type為完整的本地名稱(chēng)。我定義的為Nordic_HRM十六進(jìn)制

12、就是 4E 6F 72 64 69 63 5F 48 52 4D接著后面03代表接著的一小段數(shù)據(jù)位三個(gè)字節(jié)那么后面的19 34 12都屬于 這一小段19表示外觀 34 12代表外觀。(外觀特性是SIG定義的一組值,用來(lái)表示 設(shè)備是普通手機(jī),手環(huán)什么的)再后面是02則01 06屬于這段01代表FLAG , flag說(shuō)明了物理連接功能,比如有限發(fā)現(xiàn)模式,不支持經(jīng)典藍(lán) 牙等bit 0: LE有限發(fā)現(xiàn)模式bit 1: LE普通發(fā)現(xiàn)模式bit 2:不支持 BR/EDRbit 3:對(duì) Same Device Capable(Controller)同時(shí)支持 BLE 和 BR/EDRbit 4:對(duì) Same Device Capable(Host)同時(shí)支持 BLE 和 BR/EDRbit 5.7:預(yù)留即06數(shù)據(jù)說(shuō)明了設(shè)備的連接功能為普通發(fā)現(xiàn)模式并且不知道經(jīng)典藍(lán)牙繼續(xù)是07表明03 0D 1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論