1

我有大约 750 字节长的数据,受 CRC 保护。我想更改数据但不知道 CRC 方案意味着我做不到。但我有幸观察样本数据的 CRC 值。我使用了这里描述的这种非常酷的数学技术

我将 CRC 识别为数据块的最后两个字节,因为当我仅更改数据的 1 位并对其进行异或运算时,结果除该位和最后两个字节外全为零。

我能够为这样的差异消息生成 C1、C2:

byte 222 = 0x01; CRC = 0x6D10
byte 222 = 0x02; CRC = 0xEA6D
byte 222 = 0x04; CRC = 0xA494
byte 222 = 0x08; CRC = 0x3966

由于消息是上述链接中描述的“差异消息”,我们可以放心地忽略 CRC 的 XorIn 和 XorOut 值。但是 reflectIn 和 ReflectOut 参数仍然会影响这个过程。对于所有四种组合,当 C2 的 MSB 为零时,我检查了 (C2<<1) XOR C1 是否为零。但这种情况并非如此。我想知道我哪里出错了。

4

0 回答 0