BLEのsnifferを作成する
仕事でBLE通信を扱うので、こちらも勉強を始めた。
とりあえずこの本を読んでみたが、専門用語が多く正直理解度はまだまだ。
ただ、WiresharkでBLEがパケットキャプチャできるツールが紹介されていたので
それを試してみることにした。
nRF Sniffer for Bluetooth LE - nordicsemi.com
パケットの息吹を感じれば理解も深まるはず
ということでRequired HardwareとなっているnRF52840 DKを入手。
海外から送られてきて1週間ぐらいで届いた。
ラズパイっぽい本体と、よくわからんタグが箱に入ってた。
正直この辺はど素人なので手探り感満載でセットアップしていく。
この英語のドキュメントをたぐればなんとかなると信じて。
Nordic Semiconductor Infocenter
Minimum requirements
この中で準備が必要そうなのはSEGGER J-Link Software
https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack
こちらのここからダウンロード。
今回はmacでやります
インストール開始
特に難しいところはないので割愛
ささった・・・!
といってもこれ、スマホにnRF Toolboxというアプリをインストールするためだけっぽいので正直いらなかったかも(以降も特に出番なし)
a.PCとUSBケーブルでつなぐ→OK
b.SW9をVDDに。最初からVDDっぽい
c.SW8をON!
LEDが光り出した。
PCに認識された。
ここから用途に応じてソフト落としてこいってことかな?
今回はsniffer目的なのでこいつをダウンロード
nRF Sniffer for Bluetooth LE - nordicsemi.com
→nrf_sniffer_for_bluetooth_le_3.0.0_129d2b3.zipを入手。
nRF Connect Programmerというソフトで書き込む。
nRF Connect for Desktop - nordicsemi.com
Programmerを選択
左上のselect deviceで今繋いでいるボードを選択
Readを押すとメモリの中身が見えるらしい。
何か出たけどなるほどわからん。
Add HEX fileでファームを選択。
HEXファイルは先ほどダウンロードした
nrf_sniffer_for_bluetooth_le_3.0.0_129d2b3.zipの中にある
って・・・いっぱいある!どれやねん。
ドキュメントをよくよく探したら書いてあった。
今回52840を使っているので、PCA10056か。
選んだらこうなった。
左がBefore,右がAfter。中身は相変わらずわからんけども
Erase & writeで書き込み。
再度READしたら左と右の図の吹き出しに書いてあることが同じになったので、書き込めたっぽいw
次のステップへ
コマンドウィンドウでhexファイルのあった隣のフォルダ、extcapフォルダに移動
pip3 install -r requirements.txt
を実行。(PCにpythonがインストールされていることが前提。)
するっといくかと思いきや
Xcodeのライセンスに承諾しろと。
長々したライセンス文を読んだら承諾コマンドが最後に書いてあったので実行
って打ったら別の文章を読めとでてきたw
次の文章もハイハイと読んで
最後にagreeと打ってOKになったっぽい。
あらためてpip3 install -r requirements.txt実行。
sudoしてなくて怒られたのはさておき無事インストール完了。
Wiresharkを起動。(←入ってない人は別途インストール要)
Wireshark > About Wireshark(Macの場合)
からfoldersを選択
このURLをクリックして開いたフォルダに、extcapフォルダ内のデータをコピー
コマンドウィンドウで今コピーしてきたフォルダへ移動
nrf_sniffer_ble.sh --exrcap-interfaces
を実行。うまく通らない。
エラー文と中身から、パスの問題かな・・・?
./nrf_sniffer_ble.sh --extcap-interfaces
で動いた。
refresh interfaceをすると
インターフェースがでてきた。あとちょっとや!
プロファイルの設定
ここから開いたフォルダにあるprofiles配下に
Profile_nRF_Sniffer_Bluetooth_LEフォルダをそのままぶちこむ
configuration profileから
さっき追加したやつを選んでOK
これで準備はととのったっぽい
近くにBLE通信するデバイス達(セントラル+ペリフェラル)を置いて・・・
start!
おおおーー見えた!
満足したので中身をがっつり確認するのはまた今度。