小编mat*_*arn的帖子

从数据+ CRC - 嵌入式应用确定CRC算法.

我有一组受16位校验和保护的数据,我需要纠正.校验和位置是已知的,计算它们的确切区域以及用于计算它们的确切算法不是.16位,LSB优先.我怀疑它是某种16位CRC,但我无法找到实际计算校验和的代码.

例:

00    4E00FFFF26EC14091E00A01830393630  
10    30313131313030393030363030313030  
20    30303131313030393030363030313030  
30    30303131313030393030363030313030  
40    3030FFFF225E363436304D313037**0CE0**  
50    64000000000000008080808080800000  
60    00000000**BE6E**FC01E001EB0013010500  
Run Code Online (Sandbox Code Playgroud)

校验和存储在4E和64.我不知道它们是从每个数据部分开头的第一个字的偏移量开始计算还是从那之后开始计算,或者在整个范围内计算.我已经尝试了许多常见的CRC算法和多项式,没有运气.此应用程序没有可用的参考或规格.

这是另一个具有不同CRC的数据部分,用于比较.

00    4E00FFFF26C014091600A01030393132  
10    30313131313030393030313230313030  
20    30303131313030393030313230313030  
30    30303131313030393030313230313030  
40    3030FFFF225E343231324F313044**8348**  
50    64000000000000008080808080800000  
60    00000000**72F8**E001EB00130105000E01  
Run Code Online (Sandbox Code Playgroud)

我的问题是,任何人都可以识别算法吗?有没有办法从数据和CRC中计算CRC多项式和其他因素?

谢谢!

编辑:

在我的反汇编中搜索公共CRC16多项式0xA001,显示了这个函数:

34F86 ; =============== S U B R O U T I N E =======================================
34F86
34F86
34F86 Possible_Checksum:                    ; CODE XREF: MEM_EXT_4:00034FEEP
34F86                                         ; MEM_EXT_4:0003503AP ...
34F86                 mov     [-r0], r9       ; Move Word
34F88                 mov     r4, r12         ; Move Word
34F8A                 mov     r5, r13 …
Run Code Online (Sandbox Code Playgroud)

checksum crc

5
推荐指数
1
解决办法
8278
查看次数

标签 统计

checksum ×1

crc ×1