2014/12/13

[ble]TI Sniffer(BLE)のPSDファイルをpcap形式に変換

TIのBLE Sniffer Dongleを使っている。
解析してくれるので重宝するのだが、フィルタのかけ方がよくわからない・・・。
WireSharkだったら何とかわかるのだが、と思って検索すると、Zigbeeの変換をしているツールがあった。
説明を読むと、どうやらPSDファイルのフォーマットは公開されているようだ。
ならば、BLE版を作らねばならぬのぅ。

swru187g.pdfというのが、そのドキュメント。ユーザーズマニュアルだ。
パケットの種類によってデータ構造が若干異なり、ZigbeeとBLEも異なっていた。
この資料と、pcapのフォーマットを見ながら、ごにょごにょと作成。

cygwinで動いたので、先日インストールしたVisual Studio community 2013でビルドした。
gccとの互換性が高く、#pragma packも含めてまるまるビルドできた。
(tchar解決が面倒だったので、unicode指定は外したが。)

2014/12/13 18:35 GUI版も追加しました(.NET Framework4)
https://sites.google.com/site/hiro99ma/ble/files/psd2pcap.zip?attredirects=0&d=1

第1引数にpsdファイル、第2引数に出力ファイル名を入れるだけ。
WireShark 1.12.2で確認した。
プロトコルはWireSharkに入ったものを使っているだけなので、Link Layerまで。
自分用にやりたければ、ここからLUAでプラグインを書くとよいんじゃなかろうか。
とりあえず変換できたというレベルなので、そこまで調べてない。

チャネルとRSSI値を「Bluetooth Low Energy RF Info」のところで見えるようにしている。
PSDに入っている値をそのまま放り込んでいるだけなので、妥当な値なのかどうかあんまりわかってない。

気が向いたら、C#でGUI版も作ってしまいたいところだ。


気が向いたので、作って同じZIPファイルの中に突っ込んだ。
C#は使い慣れていないので、「構造体にデータを突っ込んで、パディング無しにして全部書込む!」みたいなやり方がわからず、素直に1データずつ書込んでいった。
まあ、データがメモリ上にどう展開されるのかを考えながら実装する方が今では異端なのかもしれんな。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。