在無線通信協(xié)議的開發(fā)過程中,抓包器是工程師們不可或缺的工具。掌握抓包器的使用,就如同擁有了能夠洞察無線電波的“火眼金睛”。這不僅使我們能夠驗(yàn)證發(fā)出的數(shù)據(jù)包是否準(zhǔn)確,檢查流程或時(shí)序的合理性,還能幫助我們更便捷地定位和解決各種技術(shù)難題。對(duì)于藍(lán)牙技術(shù)而言,抓包器的作用同樣不可小覷。它強(qiáng)大的捕獲功能讓我們能夠輕松獲取空中傳輸?shù)陌脑敿?xì)信息,包括頻率、頻率偏差、長(zhǎng)度、信號(hào)強(qiáng)度以及具體傳輸內(nèi)容等。此外,抓包器還具備出色的解析能力,能夠按照協(xié)議層級(jí)對(duì)捕獲的包進(jìn)行分類,從而更有效地分析各個(gè)層面可能出現(xiàn)的問題。
本文將通過使用廣泛認(rèn)可的Ellisys抓包器為例,首先簡(jiǎn)要介紹其基本使用方法,然后結(jié)合實(shí)際案例,展示抓包器在藍(lán)牙開發(fā)中的高效應(yīng)用。我們會(huì)特別針對(duì)Ellisys在分析經(jīng)典藍(lán)牙連接過程、加密數(shù)據(jù)和通信頻率等常用功能上進(jìn)行解析。
ellisys抓包器用法簡(jiǎn)介
市面上眾多品牌的抓包器中,Ellisys因其全面的功能和高效性能成為我們的首選工具。它采用全頻帶并發(fā)通道嗅探技術(shù),能夠?qū)崟r(shí)捕捉所有藍(lán)牙頻點(diǎn),提供便捷的使用體驗(yàn)和豐富的數(shù)據(jù)捕獲。除了捕獲空中數(shù)據(jù)包,Ellisys還能通過USB、UART、SPI等接口獲取HCI信息,進(jìn)一步增強(qiáng)了其分析能力。內(nèi)置的邏輯分析器功能允許我們將邏輯信號(hào)與空中包進(jìn)行對(duì)比,為開發(fā)和調(diào)試過程中的問題定位提供了強(qiáng)有力的支持。
圖1.ellisys抓包器
首先,接通抓包器電源,并使用USB線直接連接至電腦的USB端口,避免使用USB集線器以保證數(shù)據(jù)傳輸?shù)男?。接著,在電腦上打開Ellisys提供的上位機(jī)軟件,按照?qǐng)D2的指示,進(jìn)入菜單欄選擇“Record”->“Recording Options”。在彈出的配置窗口中,根據(jù)您的需求選擇要捕獲的無線或有線協(xié)議、邏輯分析儀的信號(hào)通道等,完成設(shè)置后點(diǎn)擊“OK”保存配置,即可開始高效的數(shù)據(jù)捕獲與分析。
圖2.抓包器上位機(jī)界面
圖3.抓包器配置界面
點(diǎn)擊工具欄中的Record按鈕,抓包器就會(huì)開始抓取空中包,并將獲取到的信息實(shí)時(shí)顯示在下方的各個(gè)窗口中如圖4所示,A區(qū)為抓到的所有空中包的總覽,可以通過該區(qū)域上方的工具欄來篩選出各個(gè)協(xié)議的包或者包含指定數(shù)據(jù)的包;B區(qū)為選中空中包的詳細(xì)信息,這里會(huì)自動(dòng)解析出在A或C區(qū)選中的包的信道、能量以及內(nèi)容等;C區(qū)則以時(shí)間為橫軸,顯示了空中包的時(shí)序,可以直觀地看出空中包發(fā)送的時(shí)間以及長(zhǎng)度;D區(qū)為包的原始信息,通過這里我們可以直接分析空中包的數(shù)據(jù)是否正確等。上位機(jī)的layout可能會(huì)有所不同,如果找不到這些區(qū)域可點(diǎn)擊菜單欄中的layout->reset layout就可以將layout恢復(fù)成原始設(shè)定。
圖4.抓包器上位機(jī)各區(qū)域
我們已經(jīng)概述了抓包器的基本操作,這為您提供了分析問題所需的初步技能?,F(xiàn)在,讓我們通過一些實(shí)際案例來深化對(duì)抓包器的理解,并探索其更高級(jí)的功能。通過這些示例,您將學(xué)習(xí)到如何更有效地利用抓包器,以提升您的分析技巧和效率。
藍(lán)牙抓包解析實(shí)例
在以下實(shí)例中我們使用泰凌B91開發(fā)板作為Central device來連接藍(lán)牙耳機(jī),同時(shí)使用ellisys抓包器來抓取兩者發(fā)送的空中包,并對(duì)連接流程以及數(shù)據(jù)交換等行為進(jìn)行分析。
圖5.B91開發(fā)板
建立連接流程分析
首先,我們需要將抓包器開啟,然后使用我們的開發(fā)板與耳機(jī)進(jìn)行配對(duì),抓包器就會(huì)抓取到建立連接的整個(gè)流程,觀察抓到的空中包我們就會(huì)發(fā)現(xiàn)除了我們的設(shè)備發(fā)出的包還會(huì)有很多其它的包,這是因?yàn)橥覀兩瞽h(huán)境中不只有一兩個(gè)藍(lán)牙設(shè)備,其它藍(lán)牙設(shè)備發(fā)出的包也會(huì)被抓包器抓取到,這將會(huì)對(duì)我們的分析造成一定的困難,這時(shí)我們就可以使用filter來篩選出我們想要的設(shè)備,如圖6所示,我們可以通過設(shè)備名稱和address來選出想要的設(shè)備,然后將其添加到左側(cè),點(diǎn)擊ok返回到主界面我們就可看到只剩下了選中設(shè)備發(fā)出或收到的包。
圖6.通過filter篩選出需要抓取的設(shè)備
接下來從空中包中找到paging連接從這里開始,如圖7所示,我們可以清晰地看到連接建立的全部流程,先通過page獲取到基礎(chǔ)的時(shí)鐘、設(shè)備名等信息,然后通過LMP去交換雙方的版本、特性、名字等,之后Central發(fā)起Host connection,Peripheral回復(fù)表示接受,最后雙方都發(fā)送Setup Complete表示連接正式建立。
圖7.抓包器抓取到的連接流程
加密數(shù)據(jù)包分析
藍(lán)牙協(xié)議為了保證數(shù)據(jù)的安全加入了加密的能力,大部分?jǐn)?shù)據(jù)包都是在加密的情況下發(fā)送的,所以抓包器也為我們提供了解密的能力。找到上位機(jī)中的Security窗口,如果我們已經(jīng)抓到了一些連接的話,這里將會(huì)把它們顯示出來,如圖7所示,可見Key的位置為missing,因?yàn)樗{(lán)牙是通過一個(gè)密鑰來加密的,抓包器作為第三方無法得知密鑰是什么,這就需要我們?cè)陂_發(fā)過程中使用一些debug手段來獲取,這里我們使用Telink開發(fā)板的串口將link key打印出來,然后雙擊missing就會(huì)彈出一個(gè)輸入框,將獲取到的key輸入其中點(diǎn)擊ok就可以發(fā)現(xiàn)原本加密的空中包已經(jīng)可以看到真實(shí)的內(nèi)容了。
圖8.Security窗口
圖9.輸入link key進(jìn)行解密
圖10.解密出來的空中包
通信頻點(diǎn)分析
由于生活中有大量設(shè)備使用著與藍(lán)牙相同的2.4G頻段,這都會(huì)對(duì)藍(lán)牙通信造成干擾,因此藍(lán)牙選擇使用跳頻技術(shù)來對(duì)抗干擾,抓包器也為我們提供了相應(yīng)的功能來讓我們可以直接看到一段時(shí)間內(nèi)空中各個(gè)頻段包的使用情況,這將極大地便利了我們對(duì)此類問題的分析。
同樣我們需要在上位機(jī)中找到對(duì)應(yīng)的窗口,這里使用的是Spectrum和Channels兩個(gè)窗口,前者可以直觀顯示空中所有頻點(diǎn)上的包在時(shí)序上的情況,而后者則是統(tǒng)計(jì)了各個(gè)頻點(diǎn)上的包數(shù)量以及丟包率等。如下圖所示,紅框圈住的地方是環(huán)境中WiFi的信號(hào),而我們的藍(lán)牙為了提高通信質(zhì)量就將這一塊干擾嚴(yán)重的頻段避開了,從圖中可以看到這些頻點(diǎn)中的藍(lán)牙包數(shù)量非常的少。
圖11.Spectrum和Channels窗口
總結(jié)
抓包器的用途遠(yuǎn)不止于此,它在經(jīng)典藍(lán)牙開發(fā)中扮演著至關(guān)重要的角色。精通抓包器的操作,不僅能幫助我們深入理解藍(lán)牙通信的細(xì)節(jié),還能顯著提高開發(fā)效率。因此,熟練掌握抓包器的使用方法對(duì)于藍(lán)牙開發(fā)者來說是非常寶貴的技能。