我有一个旧的,不再制造的带有串口的电子设备.我正在尝试对此设备中使用的数据包CRC /校验和/散列进行逆向工程.
任何有敏锐眼光,有敏锐数学技能的人都可以破解这个东西?
这是我到目前为止所知道的......
验证我的数据包样本观察到上述网络链接中概述的"叠加原则".这表明它们具有数学XOR关系.
开始感觉很好......但之后又难过了.无法确定CRC-16多项式.这些数据包哈希很可能不与CRC相关,而是一些家庭酿造方案.
通过Ross N. Williams阅读"CRC错误检测算法的无痛指南"
不幸的是,我无法访问任何设备源/二进制代码
还运行测试以查看是否使用了其他哈希,例如Fletcher的校验和
以下是我的数据包的各种样本.
0x47366B2EE00000000000751CEB5F3469543B585E2D
0x47366B2ED00000000000751CEB5F3469543B582A2C
0x47366B2EC80000000000751CEB5F3469543B580B2B
0x47366B2EC40000000000751CEB5F3469543B58BB2A
0x47366B2EC20040000000751CEB5F3469543B58DFE7
0x47366B2EC10000000000751CEB5F3469543B58A328
0x47366B2EC08000000000751CEB5F3469543B584127
0x47366B2EC04000000000751CEB5F3469543B588126
0x47366B2EC02000000000751CEB5F3469543B580525
0x47366B2EC01000000000751CEB5F3469543B580124
请注意以下有关这些数据包的信息......
(0X47)............................................... ......................(0x2D)
我不知道我的系统是大端还是小端,但是确定的字节是LSB优先的
请参阅数据包的0x47366B2E部分之后的数据字节.
只有模式我看到出现的是每个数据包上的最后一个字节递减一(2D,2C,...).(除了第5个数据包,我必须更改2位)
任何帮助表示赞赏!