BLE抓包分析

trytogo.com發表於2020-12-08

BLE抓包軟體

BLE抓包軟體用得比較多的有Frontline ComProbe Analysis System和Wireshark

Frontline ComProbe Analysis System

Frontline ComProbe Analysis System是Frontline公司開發的抓包軟體,它還可以分析NFC,802.11和USB資料包。

Frontline ComProbe Analysis System需要配合Frontline公司的抓包硬體平臺,一般藍芽晶片公司用得比較多,一臺可以抓經典藍芽和BLE低功耗藍芽的裝置非常昂貴,筆者在工作中有使用過,主要用來抓經典藍芽空中包,藍芽BQB PTS軟體也使用了此軟體。在這裡只介紹一下,分析BLE的話,最經濟的還是使用Wireshark。

Wireshark

Wireshark大家就比較熟悉了,免費開源,用來分析網路資料包比較多,但是也可以用來分析BLE空中包和經典藍芽空中包,下面就重點介紹一下如何用Wireshark分析BLE空中包。
在這裡插入圖片描述
如上圖,是Wireshark開啟的介面,我們可以看到下面有utun3和utun4都是輸入源,可以使用Wireshark抓取它們的包,但是我們現在不關心這個,我們現在關心的如何抓取BLE藍芽的空口包,這肯定我們是需要藍芽的輸入源的,這個時候插上我們的手上有的藍芽抓包器,我這裡使用的是nordic 的sniffer抓包工具,當然也可以使用其它的,這是我花了一個上午畫的板子(當然,還花了一個下午用烙鐵焊接,這裡吐槽一下,0402的封裝真的不好焊,眼睛被搞瞎0.0…)
在這裡插入圖片描述
下面把它插到電腦上,可以看到多出了一個輸入源
在這裡插入圖片描述開啟後就能愉快的抓包啦,它預設是去抓取廣播通道的包37,38,39。這裡我用了另外一塊板去發出一個廣播,為了方便分析講解。
在這裡插入圖片描述在這裡插入圖片描述
這裡可以看到我們發出的廣播型別是ADV_IND,我們的裝置名字是trytogo,對於藍芽廣播資料格式來說,格式都是一樣的,Length+Type+Data,這個在藍芽spec裡都有解釋,但是對於beacon廣播,格式又另有規定。可以看到,這裡全是ADV_IND廣播,為什麼都是這種廣播呢?還有其它廣播嗎?對了,是有的,因為現在沒有藍芽掃描周圍,我們拿手機掃描一下看看會發生什麼神奇的事情。
在這裡插入圖片描述
哇!神奇的時間發生了,你看,除了ADV_IND廣播,我們還看到了什麼,SCAN_REQ和SCAN_RSP,這個就是我的手機掃描請求和我差點焊瞎眼的那塊PCBA板藍芽回覆的資料,這個資料我們可以看到同樣的路子,Length+Type+Data,這個Data是我自定義的資料,可以看到下面的字串還是我的網站名,很有趣對吧(beacon也同樣有趣)。
除了SCAN_REQ和SCAN_RSP,我們還發現了新大陸,CONNECT_REQ,我們可以回憶一下BLE的spec,這個是手機的連線請求對吧。
在這裡插入圖片描述
既然要相互連線的話,他們可以是要知根知底的,對吧,首先就是要告訴對方藍芽的版本號,我們可以看到,這裡我手機的藍芽版本號是5.1,而且還是博通的藍芽晶片,好傢伙,這傢伙可是霸屏藍芽spec目錄業的選手呀
在這裡插入圖片描述
在這裡插入圖片描述
經過一系列的交換後,我們來到了交換MTU的環節,手機直接財大氣粗給出的是293個位元組,而我們這邊的PCBA板顯然是不同意這個數,他說我只能收23個位元組的資料,好吧,大家就按照這個數來。
後面就是一系列的讀取具柄了,具柄和UUID始終貫穿著整個BLE連線的生命週期。下次有空再寫…困了0.0…

相關文章