Open5

スイッチサイエンスのISP1807搭載MicroボードをBLE snifferにする

okuokuokuoku

書き込み

openocd でボードに接続したら、ポート 4444 のtelnetに接続し、

  1. halt でデバイスを停止する
  2. 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)
okuokuokuoku

Snifferのセットアップ

https://www.nordicsemi.com/Products/Development-tools/nRF-Sniffer-for-Bluetooth-LE

これに加え、コマンドプロンプト上で python が使えるようになっている必要がある。

Python側の依存関係チェックとWiresharkへのインストール

https://infocenter.nordicsemi.com/topic/ug_sniffer_ble/UG/sniffer_ble/installing_sniffer_plugin.html

--extcap-interfaces はUARTで通信しようとするようなので、途中で止まったら一旦ぜんぶ抜いてやりなおす。

okuokuokuoku

キャプチャ

以下の手順に従う必要がある:

  1. nRF Connect のAndroid版あたりでデバイスの 現在の MACアドレス(Bluetoothアドレス)を調べる -- プライバシ都合でBLEにおけるアドレスはランダムになっている
  2. Wiresharkでキャプチャを始める
  3. Deviceから調べたMACアドレスに一致するデバイスを選ぶ
  4. PCなりなんなりからデバイスに接続する
  5. Master_Slave_ を宛先にするパケットが来るのを確認する

OpenSSLみたいに鍵のダンプに共通規格があれば楽なんだけどねぇ。。