嵌入式通信的逆向校验和计算

逆向工程 解密 串行通讯 CRC
2021-06-21 00:29:25

我需要找到与其他人的最后一个字节的关系。尝试了这些解决方案,但没有奏效。

我的尝试: * 当我将所有数据写入二进制时,1 的计数不相等,但某些数据的最后一个字节相同。* 当我对所有数据求和并除以 3 或 4 时,它等于最后一个字节,但对于未来,可能不稳定。

一组数据:

FC 41 01 30 10 01 21 00 01 00 00 00 00 00 00 00 00 00 00 00 00 5B
FC 41 01 30 10 01 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5C

FC 41 01 30 10 01 24 00 00 00 0F 00 00 00 00 00 00 00 00 00 00 4A
FC 41 01 30 10 01 24 00 00 00 0E 00 00 00 00 00 00 00 00 00 00 4B
FC 41 01 30 10 01 24 00 00 00 0B 00 00 00 00 00 00 00 00 00 00 4E
FC 41 01 30 10 01 24 00 00 00 07 00 00 00 00 00 00 00 00 00 00 52
FC 41 01 30 10 01 24 00 00 00 06 00 00 00 00 00 00 00 00 00 00 53
FC 41 01 30 10 01 24 00 00 00 01 00 00 00 00 00 00 00 00 00 00 58
FC 41 01 30 10 01 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 59

FC 41 01 30 10 01 22 00 00 01 00 00 00 00 00 00 00 00 00 00 00 5A
FC 41 01 30 10 01 22 00 00 03 00 00 00 00 00 00 00 00 00 00 00 58
FC 41 01 30 10 01 22 00 00 07 00 00 00 00 00 00 00 00 00 00 00 54
FC 41 01 30 10 01 22 00 00 02 00 00 00 00 00 00 00 00 00 00 00 59

FC 62 01 30 10 03 00 00 0D 00 00 AF 00 00 00 00 00 00 00 00 00 9E
FC 62 01 30 10 03 00 00 0F 00 00 B2 00 00 00 00 00 00 00 00 00 99
FC 62 01 30 10 03 00 00 10 00 00 B4 00 00 00 00 00 00 00 00 00 96
FC 62 01 30 10 03 00 00 11 00 00 B6 00 00 00 00 00 00 00 00 00 93
FC 62 01 30 10 03 00 00 11 00 00 B7 00 00 00 00 00 00 00 00 00 92
FC 62 01 30 10 03 00 00 12 00 00 B9 00 00 00 00 00 00 00 00 00 8F
FC 62 01 30 10 03 00 00 12 00 00 B8 00 00 00 00 00 00 00 00 00 90
FC 62 01 30 10 03 00 00 13 00 00 BA 00 00 00 00 00 00 00 00 00 8D
FC 62 01 30 10 03 00 00 14 00 00 BD 00 00 00 00 00 00 00 00 00 89
FC 62 01 30 10 03 00 00 15 00 00 BE 00 00 00 00 00 00 00 00 00 87
FC 62 01 30 10 03 00 00 16 00 00 C0 00 00 00 00 00 00 00 00 00 84
FC 62 01 30 10 03 00 00 1C 00 00 D0 00 00 00 00 00 00 00 00 00 6E 

谢谢,

M。

1个回答

如果忽略第一个常量字节 ( FC),则所有其他字节加起来为00,忽略溢出。

换句话说,要计算最后一个字节,从 开始00,减去除第一个FC(显然是最后一个)以外的所有字节忽略下溢。结果是最后一个字节。或者,如果这在您的编程语言中更容易,请从2000(8192 十进制)开始,减去所有字节,AND结果为FF.