校验和识别

Checksum identification

我正在尝试了解一些数据流量。

以下是我捕获的一些短包(十六进制字符串):

Data      Checksum
------    ---------
87          0087
7639        7639
7739        7739
DA423030    A25A
DA423031    A25B
DA423130    A35A
DA424030    D25A
DA423040    A22A
DA423032    A258

任何人都可以确定校验和是如何组成的吗?

(注意:在数据开头添加零字节不会更改校验和,但在末尾添加零字节会更改校验和。)

解决方法是:

  1. 取整个字符串 直到 最后 2 个字节,对其执行 CRC-16/XMODEM.
  2. 对结果进行 XOR,最后剩下 2 个字节。

例如:

Data      Checksum
------    ---------
DA423030    A25A

DA42 >> CRC-16/XMODEM >> 926A
926A >> XOR With 3030 >> A25A