CAN总线应用层CRC/校验和算法逆向工程技术求助
CAN总线设备应用层CRC逆向工程求助
我有一台在CAN总线上交换消息的设备,正在对其协议进行逆向工程。目前已解码协议大部分内容,但卡在了应用层CRC/校验和算法上——缺少该校验的话,设备不认可消息有效。此处的CRC属于应用层,和CAN本身自带的CRC无关,指的是CAN传输的17帧8字节(共136字节)payload中的校验值。
示例消息
07 55 AA AA 00 AA 12 94 37 5A 00 00 2E 02 5C 03 3A 02 0A 78 00 60 22 26 02 00 00 00 00 DC 00 50 4B 64 B8 0B E0 2E 70 17 84 25 08 78 1E 0A 78 00 8C AF B4 69 00 54 24 D4 24 0A 70 10 19 00 00 06 CC 0C E8 03 B0 04 51 44 14 2C 01 88 13 28 00 0A 00 C0 00 C0 80 C8 0B C0 25 C0 11 C3 00 C0 00 58 00 00 C0 0F C0 8A C0 09 C2 10 C1 07 C2 00 C0 92 CB 00 3A C7 0F DF 52 14 00 00 00 00 51 00 D2 05 00 00 00 ED 6D 00 00 00
我还有更多同格式的消息样本。目前疑似CRC为最后8字节中的ED 6D,但不确定校验覆盖范围:前8字节是可变前导,第16行是可变尾头,校验可能仅覆盖消息的部分区域。
已尝试的工具及操作
- delsum:尝试了所有算法、宽度、初始值(0-255)及起止偏移(0-16)的组合
- find_CRC
- crcbeagle
以上工具均未给出有效结果。
最新进展
我制作了两条新消息,分别修改了已知可改动的最早(第14字节)和最晚(第119字节)字节。将CRC反转成6DED后,用delsum尝试算法0x1021、不同起止字节及初始值,得到了部分看似可行的结果,但这些结果无法验证其他消息的CRC。
恳请提供逆向该CRC算法的思路或解决方案。
内容的提问来源于stack exchange,提问作者user2770532
相关产品推荐
相关产品推荐

