我通过与各种设备的串行通信工作很多,因此我经常需要分析日志文件中的十六进制转储.目前,我通过查看转储,查看协议规范以及写下结果来手动执行此操作.但是,这很乏味且容易出错,尤其是whem消息包含数百个字节,并包含big-endian和little-endian数据,ASCII,Unicode,压缩,CRC等的混合....
我编写了一些Python脚本来帮助处理更常见的情况.但是有很多协议要处理,除非我知道我要分析很多转储,否则花时间编写自定义脚本是没有意义的.
我想要的是某种可以自动执行此活动的实用程序.所以,例如,如果我有这样的文本十六进制转储:
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看起来都很有希望; 我会看看那些,并且可以将赏金奖励给任何符合我需求的奖品.但我仍然对其他想法持开放态度.