逆向工程未知CRC

时间:2014-10-29 22:22:59

标签: checksum crc crc16

我正在尝试对CRC进行逆向工程。 当我为数据计算CRC-16时,它非常类似于带数据的crc发送,但不完全相同。

找出计算此CRC的确切方法的最佳方法是什么? 可以在这里使用另一个多项式或者可能是另一个初始值吗?

以下是一些与CRC-16相比具有自己的CRC的数据包:

Packet           CRC    CRC-16  Difference
118080009A28C0 - 603D   6021    28
918080009A28C0 - A8BD   A8A0    29
518080009A28C0 - A47D   A460    29
D18080009A28C0 - 6CFD   6CE1    28
318080009A28C0 - A27D   A200    125
B18080009A28C0 - 6AFD   6A81    124
718080009A28C0 - 6665   6641    36
F18080009A28C0 - AEE5   AEC0    37
098080009A28C0 - 61BD   61B9    4
898080009A28C0 - A93D   A938    5
C98080009A28C0 - 6D7D   6D79    4
298080009A28C0 - A39D   A398    5
A98080009A28C0 - 6B1D   6B19    4
698080009A28C0 - 67DD   67D9    4
B1808800372880 - BAFD   BAF0    13
E18080009A28F8 - BDDD   BDD0    13  
118080009A28FE - B0BD   B0A0    13
8080D728D72880 - 224C   224C    0   
80803728372880 - 02CC   02CC    0   
80803928392880 - 00C4   00C4    0   
8080B928B92880 - 36C4   36C4    0   
8080D728D72846 - 70CC   70CC    0   
80803728372846 - 504C   504C    0   
718080009A28C0 - 6665   6641    36
718080009A28FC - 7765   7741    36
F18080009A28C0 - AEE5   AEC0    37
F18080009A28FC - BFE5   BFC0    37
098080009A28C0 - 61BD   61B9    4
098080009A28FC - 70BD   70B9    4
898080009A28C0 - A93D   A938    5
898080009A28FC - B83D   B838    5
498080009A28FC - B4FD   B4F8    5
C98080009A28C0 - 6D7D   6D79    4
C98080009A28FC - 7C7D   7D79    4
298080009A28C0 - A39D   A398    5
298080009A28FC - B29D   B298    5
A98080009A28C0 - 7B1D   6B19    4
A98080009A28FC - 7A1D   7A19    4
698080009A28C0 - 67DD   67D9    4   
698080009A28FC - 76DD   76D9    4

似乎CRC-16是正确的算法,但除此之外,de值的变化很小。它似乎基于数据的第一个到十六进制数字,甚至可能是CRC的第一部分。

2 个答案:

答案 0 :(得分:0)

您可能错误地识别了其中一个CRC字节的位置。 CRC的一个字节总是与您的CRC-16一致的事实强烈表明您拥有正确的CRC算法。

答案 1 :(得分:0)

你是否有正确的CRC16实现。存在几种不同版本的CRC16。例如,维基百科列出了CRC16-IBM,CITT,DNP,VÖV和其他一些。它也可能是一个很小的问题,或者CRC正在采样。

相关问题