【发布时间】:2015-04-11 01:17:22
【问题描述】:
我有一个设备连接到 PC vie 串行端口 (rs-232)。 该设备从串口接收命令后发送数据,我嗅探数据流经端口,几乎完全找出数据包结构,但至少有两个重要字段我无法确定。
第一个示例数据包(十六进制) - 内部有 2 个有效负载数据包:
0baa00000200039540330137732904020033000005534d6c07a567a73e15040701125600043853048a5c085500000000e940406f00039540330058388900020033000005534d6c07b501b4f01504070113020004fd1d040342155500000000e940406f0002009d0a03004a3030313733353530303830343630303830373131313030323415040701210801001035390000000000000000d3a7226c287472874b2a216a000000000000000000ab04
第二个示例数据包(十六进制) - 内部有 6 个有效负载数据包:
0b6601000600039540330137732904020033000005534d6c07a567a73e15040701125600043853048a5c085500000000e940406f00039540330058388900020033000005534d6c07b501b4f01504070113020004fd1d040342155500000000e940406f00039540330137732904020033000005534d6c07a567a73e15040702174901043853048a5c085500000000e940406f00039540330058388900020033000005534d6c07b501b4f01504070218010104fd1d040342155500000000e940406f00039540330137732904020033000005534d6c07a567a73e15040703301002043853048a5c085500000000e940406f00039540330058388900020033000005534d6c07b501b4f01504070331280204fd1d040342155500000000e940406f000600a10a03004a303031373335353030383034363030383037313131303032341504071152520100103539000000000000000094b5d2c94a11672acaa0abec0000000000000000006a85
我确定的数据包结构(以第一个数据包为例):
文件标记为??? - 我不知道它是什么,需要猜测。 有效载荷数据包的数量可能不同。 如果我从数据包内部编辑任何字节并重新计算最后一个 CRC16,程序将接受数据包,但带有损坏的消息。如果我在没有重新计算 CRC16 的情况下编辑任何字节,程序将拒绝该数据包。
我需要什么?例如,我需要编辑 - 添加或删除一些内部有效负载数据包。
如果能提供任何帮助,我将不胜感激。
更新 1
具有不同请求时间字段的两个相同数据包:
0b6601000600039540330137732904020033000005534d6c07a567a73e15040701125600043853048a5c085500000000e940406f00039540330058388900020033000005534d6c07b501b4f01504070113020004fd1d040342155500000000e940406f00039540330137732904020033000005534d6c07a567a73e15040702174901043853048a5c085500000000e940406f00039540330058388900020033000005534d6c07b501b4f01504070218010104fd1d040342155500000000e940406f00039540330137732904020033000005534d6c07a567a73e15040703301002043853048a5c085500000000e940406f00039540330058388900020033000005534d6c07b501b4f01504070331280204fd1d040342155500000000e940406f000600a10a03004a303031373335353030383034363030383037313131303032341504081008320100103539000000000000000021c3e1c0e04d909a7cf512b20000000000000000008b61
0b6601000600039540330137732904020033000005534d6c07a567a73e15040701125600043853048a5c085500000000e940406f00039540330058388900020033000005534d6c07b501b4f01504070113020004fd1d040342155500000000e940406f00039540330137732904020033000005534d6c07a567a73e15040702174901043853048a5c085500000000e940406f00039540330058388900020033000005534d6c07b501b4f01504070218010104fd1d040342155500000000e940406f00039540330137732904020033000005534d6c07a567a73e15040703301002043853048a5c085500000000e940406f00039540330058388900020033000005534d6c07b501b4f01504070331280204fd1d040342155500000000e940406f000600a10a03004a303031373335353030383034363030383037313131303032341504071152520100103539000000000000000094b5d2c94a11672acaa0abec0000000000000000006a85
【问题讨论】:
-
您寻求帮助的具体内容是什么?你想知道神秘领域是什么吗?您有一个有趣的问题,其中显示了很多工作,但我不确定 Stack Overflow 是否适合在此类事情上寻求帮助。
-
感谢您的回复,我寻求帮助以确定可能是哪些字段:从开始的第二个和第三个字节(例如 aa00; 6601)和最后一个零序列之前的最后 14 个字节。跨度>
标签: serial-port protocols reverse-engineering