CRC 与 OR 但每次协议重启时种子都不同

逆向工程 串行通讯 协议
2021-07-04 15:23:04

有几天我试图了解这个协议是如何工作的,但没有成功。我需要一些帮助。

基本上我正在嗅探一个 UART 信号。115200 8N1 我明白协议背后发生了什么。它基于异或。下面是几个例子:

A0 82 00 01 02 14 81 6A 76 
A0 82 00 02 02 14 81 6A 75 

如您所见,01 到 02 的变化反映到 76 到 75。数据是异或半字节到半字节。

问题来了。在我打开系统后的第二天,我又进行了一次收购。惊喜校验和的变化。显然,crc 的计算方式也不同,因为要更改的位不是最后一个字节的 2 和 3。数据从 D0 => DC 变化,而之前从 76 变为 75。

A0 82 00 01 02 14 81 14 D0 
A0 82 00 02 02 14 81 14 DC 

实际上,我发现在完整传输中,我有一条消息每次都在变化。它是一个 5 字节的消息,格式为:

A0 07 0B 40 44
A0 07 EA 1B 58

刚刚发布的 2 条消息取自之前的 2 条传输。

我认为这两个 A0 消息发送某种类型的 CRC 提要和某种计算它的方法。第二个奇怪的事情,我不明白第一条消息中应用了什么样的CRC。需要修复 CRCc 基本种子的消息是非 CRC 的,这看起来很奇怪。

有人对什么协议可能有一些想法吗?相似的东西?

0个回答
没有发现任何回复~