wiresharkでイーサネットフレームの16進ダンプデータを解析
先日実機で取得したイーサネットフレームを解析するために、受信した16進ダンプデータをネットワーク層までGUIで解析できるツールをpythonで作成してみました。
トランスポート層以降なんかも解析するのは大変だなと思っていたところ、wiresharkで簡単に確認できることに気が付いたので方法をメモ。
解析方法
事前準備
まずはイーサネットフレームをwiresharkにインポートできる形で用意します。
といってもやることは簡単で、1byteずつスぺ―スを入れてテキストファイルとして保存するだけです。
改行の位置は気にする必要ありません。
以下は保存データの例です。(わざと変な改行にしてます)
ff ff ff ff ff ff 11 22 33 44 55 66 81 00 FF FF 08 00 45 00
01 4a 31 31 00 00 80 11 00 00 00 00 00 00 ff ff
ff ff 00 44 00 43 01 36 e7 04 01 01 06 00 7e a2
14 fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 11 22 33 44 55 66 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 63 82 53 63 35 01 01 3d 07 01
11 22 33 44 55 66 32 04 c0 a8 00 f9 0c 0f 44 45
53 4b 54 4f 50 2d 42 55 51 41 4b 42 51 3c 08 4d
53 46 54 20 35 2e 30 37 0e 01 03 06 0f 1f 21 2b
2c 2e 2f 77 79 f9 fc ff
以下はNGな例。
ffffffffffff1122334455668100FFFF
08004500014a31310000801100000000
0000ffffffff004400430136e7040101
06007ea214fc00000000000000000000
00000000000000000000112233445566
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000638253633501
013d07011122334455663204c0a800f9
0c0f4445534b544f502d425551414b42
513c084d53465420352e30370e010306
0f1f212b2c2e2f7779f9fcff
wiresharkでインポート
ファイルの準備が出来たらwiresharkを起動しインポートしていきます。
wiresharkは極力最新のものを使用するようにしてください。
「ファイル」から「16進数からインポート」をクリック
「参照」から事前に準備したダンプデータのテキストファイルをクリック
「オフセット」は「なし」を選択
右下の「インポート」をクリック
以下のようなwireshark画面が立ち上がる
最後に
事前準備が多少手間がかかるかもしれませんが、それも秀丸でマクロ使えばすぐかな。
これまでは目視で数えたり、エクセルに整理したり、pythonで解析としていたところ、こんなに簡単にwiresharkで見ることが出来るとは。
もっと早く知れていればなにかと楽できたはずなのにと後悔。