我一直在分析一些SPI EEPROM存储器,并试图找出使用了哪种校验和算法;
例如我有数据:14567D9h 和校验和 187h。假设它是正常的 16 位校验和,我有 86h - 不匹配,但在添加 101h 后它神奇地变为 391h
另一个例子:8ADh 和校验和 B5h 与这个是正常的 - 16 位校验和结果与精确数字:B5h(完美匹配)
我已经用我能够拦截的 28 个样本进行了检查。对于某些值,我必须将 101h 添加到校验和,而对于某些值,只需将其求和即可。
奇偶校验不合适——如果你愿意,我可以分享更多数据——所有数据都收集在一个 Excel 文件中,并进行计算。经过几天的头脑风暴与我的朋友我们还没有想出任何东西:/
也许算法中有一些额外的部分,我还没有发现?检查了 CRC 和大量其他算法 - 只有 16 位校验和给出了任何有希望的结果 提前感谢您的帮助!
我抓取的一些数据(更多在电子表格中):
F401 84290145h
B500 08AD0000h
D400 5D310145h
4000 79810145h
B500 08AD0000h
C100 0AB70000h
C100 0AB70000h
3401 F08500BEh
E901 FE2C00BEh
A400 01E400BFh
2A01 0D5D00BFh
7E00 208304D7h
C100 0AB70000h
您可以这样读取:校验和:01F4(始终为 2 个字节)值:01458429(始终为 4 个字节)
如您所见,您必须切换字节的位置才能正确读取数据