使用 CRC RevEng 进行 CRC 逆向工程
CRC reverse engineering using CRC RevEng
我正在尝试解码具有 3 字节 CRC 的 9 字节 RS-485 数据包,如下所示。使用 SW 串行监视器我已经使用在线计算器解码了参数部分。
我知道可以使用 8 位校验和 8 模 256 来计算 Byte7。我的问题是
我无法确定 CRC 的最后 2 个字节。
我附上了 reveng CRC 解码器的输出,它
找到一个模型但不是一个名字。我提供了 4 个完整的 9 字节数据包。
reveng -w8 -sF 9BYTEPACKET1 9BYTEPACKET2 9BYTEPACKET3 9BYTEPACKET4
如图link那样returns:
width=8,poly=0x01,init=0x00,refin=false,refout=false,xorout=0x00,check=0x31,residue=0x00,name="(none)"
示例数据:
00 32 2a ff ff cd 27 03 f1
00 20 03 ff ff cd ee 02 02
00 13 28 ff ff cd 06 03 f3
00 13 02 ff ff cd e0 02 3e
Byte1 = ID(Can Change)
Byte2 = Parameter(Can Change)
Byte3 = Parameter(Can Change)
Byte4 = 0xFF (Never changes)
Byte5 = 0xFF (Never changes)
Byte6 = 0xCD (Never changes)
Byte7 = Checksum8 Modulo 256 (I can calculate this from Byte1 to Byte6)
Byte8 = CRC (Changes with diff Parameter data)
Byte9 = CRC (Changes with diff Parameter data)
如有任何帮助,我们将不胜感激。
您的 Byte8 和 Byte7 只是前面字节按小端顺序的总和。 Byte9 然后是前面字节的异或。
没有CRC。
我正在尝试解码具有 3 字节 CRC 的 9 字节 RS-485 数据包,如下所示。使用 SW 串行监视器我已经使用在线计算器解码了参数部分。
我知道可以使用 8 位校验和 8 模 256 来计算 Byte7。我的问题是 我无法确定 CRC 的最后 2 个字节。 我附上了 reveng CRC 解码器的输出,它 找到一个模型但不是一个名字。我提供了 4 个完整的 9 字节数据包。
reveng -w8 -sF 9BYTEPACKET1 9BYTEPACKET2 9BYTEPACKET3 9BYTEPACKET4
如图link那样returns:
width=8,poly=0x01,init=0x00,refin=false,refout=false,xorout=0x00,check=0x31,residue=0x00,name="(none)"
示例数据:
00 32 2a ff ff cd 27 03 f1
00 20 03 ff ff cd ee 02 02
00 13 28 ff ff cd 06 03 f3
00 13 02 ff ff cd e0 02 3e
Byte1 = ID(Can Change)
Byte2 = Parameter(Can Change)
Byte3 = Parameter(Can Change)
Byte4 = 0xFF (Never changes)
Byte5 = 0xFF (Never changes)
Byte6 = 0xCD (Never changes)
Byte7 = Checksum8 Modulo 256 (I can calculate this from Byte1 to Byte6)
Byte8 = CRC (Changes with diff Parameter data)
Byte9 = CRC (Changes with diff Parameter data)
如有任何帮助,我们将不胜感激。
您的 Byte8 和 Byte7 只是前面字节按小端顺序的总和。 Byte9 然后是前面字节的异或。
没有CRC。