Open5
スイッチサイエンスのISP1807搭載MicroボードをBLE snifferにする
tl; dr: Nordicのsniffer が普通に動く 。
↓ コレでBLE snifferを用意する
宿題
- NordicのsnifferはIntel HEXで提供されるが、原理的にはUF2に変換して直接書けるはず。まぁ何枚か追加で買ったらだな。。今回は普通に
openocd
で書いた。
SWD デバッグ環境の準備
これは前書いてた:
書き込み
openocd
でボードに接続したら、ポート 4444
のtelnetに接続し、
-
halt
でデバイスを停止する -
flash
で書き込み
の順で行う。今回のボードは ISP1807 なので、 sniffer_nrf52840dongle_nrf52840_4.1.0.hex
を使う。
> halt
target halted due to debug-request, current mode: Thread
xPSR: 0x61000000 pc: 0x0002c884 psp: 0x20008078
> flash write_image erase sniffer_nrf52840dongle_nrf52840_4.1.0.hex 0 ihex
Adding extra erase range, 0x00011ff4 .. 0x00011fff
auto erase enabled
wrote 69620 bytes from file sniffer_nrf52840dongle_nrf52840_4.1.0.hex in 5.522894s (12.310 KiB/s)
Snifferのセットアップ
これに加え、コマンドプロンプト上で python
が使えるようになっている必要がある。
Python側の依存関係チェックとWiresharkへのインストール
--extcap-interfaces
はUARTで通信しようとするようなので、途中で止まったら一旦ぜんぶ抜いてやりなおす。
キャプチャ
以下の手順に従う必要がある:
- nRF Connect のAndroid版あたりでデバイスの 現在の MACアドレス(Bluetoothアドレス)を調べる -- プライバシ都合でBLEにおけるアドレスはランダムになっている
- Wiresharkでキャプチャを始める
- Deviceから調べたMACアドレスに一致するデバイスを選ぶ
- PCなりなんなりからデバイスに接続する
-
Master_
やSlave_
を宛先にするパケットが来るのを確認する
OpenSSLみたいに鍵のダンプに共通規格があれば楽なんだけどねぇ。。