检测 16 位校验和

detect 16 bit checksum

大家好,我最近正在对一个设备进行逆向工程,但现在经过几周的努力,我遇到了校验和计算问题! 数据是 16 位数据中的 8 位,最后一位是 16 位校验和。 这是数据示例:


0x0400 0x0000 0x0000 0x0001 0x0200 0x0000 0x0000   0x4000
0x0301 0x0000 0x0000 0x0001 0x0200 0x0000 0x0000   0x8100
0x0302 0x0000 0x0000 0x0001 0x0200 0x0000 0x0000   0x8203
0x0303 0x0000 0x0000 0x0001 0x0200 0x0000 0x0000   0x4303
0x0304 0x0000 0x0000 0x0001 0x0200 0x0000 0x0000   0x8405
0x0305 0x0000 0x0000 0x0001 0x0200 0x0000 0x0000   0x4505
0x0306 0x0000 0x0000 0x0001 0x0200 0x0000 0x0000   0x4606
0x0307 0x0000 0x0000 0x0001 0x0200 0x0000 0x0000   0x8706
0x0308 0x0000 0x0000 0x0001 0x0200 0x0000 0x0000   0x8809
0x0309 0x0000 0x0000 0x0001 0x0200 0x0000 0x0000   0x4909
0x030A 0x0000 0x0000 0x0001 0x0200 0x0000 0x0000   0x4A0A

希望大家帮忙检测校验和算法

看起来像CRC-16/MODBUS,至少前三个匹配:

我没有检查其他人,但我想他们也会。