私はさまざまなデバイスとのシリアル通信を頻繁に使用するため、ログ ファイルの 16 進ダンプを分析する必要がよくあります。現在、ダンプを見て、プロトコル仕様を見て、結果を書き留めることで、これを手動で行っています。ただし、これは面倒でエラーが発生しやすく、特にメッセージに数百バイトが含まれ、ビッグエンディアンとリトルエンディアンのデータ、ASCII、Unicode、圧縮、CRC、. . . .
より一般的なケースを支援するために、いくつかの Python スクリプトを作成しました。しかし、処理するプロトコルはたくさんあります。また、分析するダンプがたくさんあることがわかっていない限り、カスタム スクリプトの作成に時間を費やすのは意味がありません。
私が望むのは、このアクティビティを自動化できるある種のユーティリティです。たとえば、次のようなテキスト 16 進ダンプがあるとします。
7e ff 00 7b 00 13 86 04
00 41 42 43 44 56 ef 7e
そして、次のようなメッセージ形式のある種の説明:
# Field Size Byte Order Output Format
Flag 1 hex
Address 1 hex
Control 1 hex
DataType 1 decimal
LineIndex 1 decimal
PollAddress 2 msb hex
DataSize 2 lsb decimal
Data (DataSize) ascii
CRC 2 lsb hex
Flag 1 hex
次のような出力が得られます。
Flag 0x7e
Address 0xff
Control 0x00
DataType 123
LineIndex 0
PollAddress 0x1386
DataSize 4
Data "ABCD"
CRC 0xef56
Flag 0x7e
多くの場合、ハードウェア ベースのプロトコル アナライザーには、このようなことを行うための優れた機能が備わっていますが、テキスト ログ ファイルを操作する必要があります。
そのようなユーティリティまたはライブラリは存在しますか?
報奨金を設定してから、いくつかの良い答えが出てきました。報奨金が効くと思います!
Wireshark と HexEdit はどちらも有望に見えます。私はそれらを見て、おそらく私のニーズに合った方に報奨金を授与します. しかし、私はまだ他のアイデアに対してオープンです。