0

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 値に小さな変化があります。データの最初から16進数、またはCRCの最初の部分に基づいているようです。

4

2 に答える 2

0

CRC バイトの 1 つの位置を誤認した可能性があります。CRC の 1 バイトが常に CRC-16 と一致するという事実は、正しい CRC アルゴリズムを使用していることを強く示唆しています。

于 2014-10-30T04:48:06.070 に答える