需要解密帮助

逆向工程 CRC
2021-06-15 16:54:36

作为这个领域的菜鸟,我试图破译两个设备 A 和 B 之间的串行协议。看起来从 B 发送到 A 的帧以某种方式受到了 CRC 或校验和的保护。有趣的是,在不同的上电周期发送的相同数据帧携带不同的 CRC/校验和数据。这让我相信有一种机制可以协商种子(类似)值作为启动程序的一部分。我发现了一个从 A 发送到 B 的数据帧,它似乎包含这些数据。在我收集的数据中,以“A0 07”开头的帧代表这些种子帧(从设备 A 到 B)。种子帧之后的所有帧都是数据帧(以“A0 82”开头,从 B 发送到 A),并且大概是使用前面种子帧中的值进行 CRC 校验/校验和的。

我尝试自己分析数据 bij 并使用 reveng.exe 无济于事。我清楚地看到了模式,但很难定义它们。

// 注 1 从标记为“// 注 1”的记录中可以看出,重新=排序数据字节导致相同的 CRC/校验和。也许一些线性算法?

// Note 2 标记为“// Note 2”的帧显示不同数据字节的相同 CRC/校验和。

我希望能够向自生成的数据帧添加有效的 CRC/校验和,可能使用来自种子帧的数据。

非常感谢您的帮助。

 1     1    A0 07 03 2C 06
 1     2    A0 82 00 01 02 40 00 CF E4
 1     3    A0 82 00 02 02 00 00 CF 62  // Note 2
 1     4    A0 82 00 03 02 00 01 CF 62  // Note 2
 1     5    A0 82 00 04 02 00 01 CF 6C
 1     6    A0 82 00 05 02 00 81 CE 6E
 1     7    A0 82 00 06 02 00 81 CE 68
 1     8    A0 82 00 07 02 02 00 CF 6C
 1     9    A0 82 00 08 02 00 00 CF 76
 1    10    A0 82 00 09 02 40 00 CF F4
 1    11    A0 82 00 0A 02 00 00 CF 72
 1    12    A0 82 00 0B 02 00 01 CF 72
 1    13    A0 82 00 0C 02 01 00 CF 7C
 1    14    A0 82 00 0D 02 00 00 CF 7C
 1    15    A0 82 00 0E 02 00 01 CF 78
 1    16    A0 82 00 0F 02 01 00 CF 7A
 1    17    A0 82 00 10 02 00 00 CF 46
 1    18    A0 82 00 11 02 00 01 CF 46
 1    19    A0 82 00 12 02 01 00 CF 40
 1    20    A0 82 00 13 02 00 00 CF 40
 1    21    A0 82 00 14 02 00 01 CF 4C
 1    22    A0 82 00 15 02 01 00 CF 4E
 1    23    A0 82 00 16 02 00 00 CF 4A
 1    24    A0 82 00 17 02 01 00 CF 4A
 1    25    A0 82 00 18 02 00 00 CF 56
 1    26    A0 82 00 19 02 00 01 CF 56
 1    27    A0 82 00 1A 02 01 00 CF 50
 1    28    A0 82 00 1B 02 00 00 CF 50
 1    29    A0 82 00 1C 02 00 01 CF 5C
 1    30    A0 82 00 1D 02 00 01 CF 5E
 1    31    A0 82 00 1E 02 02 00 CF 5E
 1    32    A0 82 00 1F 02 00 00 CF 58
 1    33    A0 82 00 20 02 00 01 CF 24
 1    34    A0 82 00 21 02 00 01 CF 26
 1    35    A0 82 00 22 02 01 00 CF 20
 1    36    A0 82 00 23 02 00 00 CF 20
 1    37    A0 82 00 24 02 00 01 CF 2C
 1    38    A0 82 00 25 02 00 01 CF 2E
 1    39    A0 82 00 26 02 00 01 CF 28
 1    40    A0 82 00 27 02 00 81 CE 2A
 1    41    A0 82 00 28 02 00 01 CF 34
 1    42    A0 82 00 29 02 01 00 CF 36
 1    43    A0 82 00 2A 02 00 00 CF 32
 1    44    A0 82 00 2B 02 00 01 CF 32
 1    45    A0 82 00 2C 02 00 01 CF 3C
 1    46    A0 82 00 2D 02 00 01 CF 3E
 1    47    A0 82 00 2E 02 00 81 CE 38
 1    48    A0 82 00 2F 02 00 81 CE 3A
 1    49    A0 82 00 30 02 00 81 CE 04
 1    50    A0 82 00 31 02 00 81 CE 06
 1    51    A0 82 00 32 02 00 81 CE 00
 1    52    A0 82 00 33 02 00 81 CE 02
 1    53    A0 82 00 34 02 00 81 CE 0C
 1    54    A0 82 00 35 02 02 00 CF 08
 1    55    A0 82 00 36 02 00 00 CF 0A
 1    56    A0 82 00 37 02 02 00 CF 0C
 1    57    A0 82 00 38 02 00 00 CF 16
 1    58    A0 82 00 39 02 02 00 CF 10
 1    59    A0 82 00 3A 02 00 00 CF 12

 2     1    A0 07 00 15 3A
 2     2    A0 82 00 01 02 40 00 4B E4
 2     3    A0 82 00 02 02 00 00 4A E8
 2     4    A0 82 00 03 02 00 01 4A E8
 2     5    A0 82 00 04 02 00 01 4A F4
 2     6    A0 82 00 05 02 00 81 48 F0
 2     7    A0 82 00 06 02 00 81 48 FC
 2     8    A0 82 00 07 02 00 81 48 F8
 2     9    A0 82 00 08 02 01 00 4A C4
 2    10    A0 82 00 09 02 00 00 4A C4
 2    11    A0 82 00 0A 02 01 00 4A CC
 2    12    A0 82 00 0B 02 00 00 4A CC
 2    13    A0 82 00 0C 02 01 00 4A D4
 2    14    A0 82 00 0D 02 00 00 4A D4
 2    15    A0 82 00 0E 02 00 01 4A DC
 2    16    A0 82 00 0F 02 00 01 4A D8
 2    17    A0 82 00 10 02 00 01 4A A4
 2    18    A0 82 00 11 02 00 01 4A A0
 2    19    A0 82 00 12 02 00 01 4A AC
 2    20    A0 82 00 13 02 01 00 4A A8
 2    21    A0 82 00 14 02 00 00 4A B0
 2    22    A0 82 00 15 02 00 01 4A B0
 2    23    A0 82 00 16 02 01 00 4A BC
 2    24    A0 82 00 17 02 00 00 4A BC
 2    25    A0 82 00 18 02 00 81 48 84
 2    26    A0 82 00 19 02 00 81 48 80
 2    27    A0 82 00 1A 02 00 81 48 8C
 2    28    A0 82 00 1B 02 02 00 4A 84
 2    29    A0 82 00 1C 02 00 00 4A 90
 2    30    A0 82 00 1D 02 00 01 4A 90
 2    31    A0 82 00 1E 02 00 01 4A 9C
 2    32    A0 82 00 1F 02 01 00 4A 98
 2    33    A0 82 00 20 02 00 00 4A 60
 2    34    A0 82 00 21 02 00 01 4A 60
 2    35    A0 82 00 22 02 00 01 4A 6C
 2    36    A0 82 00 23 02 00 01 4A 68
 2    37    A0 82 00 24 02 01 00 4A 74
 2    38    A0 82 00 25 02 00 00 4A 74
 2    39    A0 82 00 26 02 02 00 4A 70
 2    40    A0 82 00 27 02 00 00 4A 7C
 2    41    A0 82 00 28 02 02 00 4A 48
 2    42    A0 82 00 29 02 00 00 4A 44
 2    43    A0 82 00 2A 02 00 01 4A 4C
 2    44    A0 82 00 2B 02 01 00 4A 48
 2    45    A0 82 00 2C 02 00 00 4A 50
 2    46    A0 82 00 2D 02 01 00 4A 50
 2    47    A0 82 00 2E 02 00 00 4A 58
 2    48    A0 82 00 2F 02 00 01 4A 58
 2    49    A0 82 00 30 02 01 00 4A 24
 2    50    A0 82 00 31 02 00 00 4A 24
 2    51    A0 82 00 32 02 01 00 4A 2C
 2    52    A0 82 00 33 02 00 00 4A 2C
 2    53    A0 82 00 34 02 00 01 4A 34
 2    54    A0 82 00 35 02 00 01 4A 30
 2    55    A0 82 00 36 02 00 01 4A 3C
 2    56    A0 82 00 37 02 01 00 4A 38
 2    57    A0 82 00 38 02 00 00 4A 00
 2    58    A0 82 00 39 02 01 00 4A 00
 2    59    A0 82 00 3A 02 00 00 4A 08
 2    60    A0 82 00 3B 02 02 00 4A 04
 2    61    A0 82 00 3C 02 00 00 4A 10
 2    62    A0 82 00 3D 02 02 00 4A 1C
 2    63    A0 82 00 3E 02 00 00 4A 18
 2    64    A0 82 00 3F 02 00 81 48 18
 2    65    A0 82 00 40 02 00 81 49 E4
 2    66    A0 82 00 41 02 00 81 49 E0
 2    67    A0 82 00 42 02 00 81 49 EC
 2    68    A0 82 00 43 02 00 81 49 E8
 2    69    A0 82 00 44 02 00 81 49 F4
 2    70    A0 82 00 45 02 00 81 49 F0
 2    71    A0 82 00 46 02 02 00 4B F0
 2    72    A0 82 00 47 02 00 00 4B FC

 3     1    A0 07 01 06 5B
 3     2    A0 82 00 01 02 40 00 DD 42  // Note 1
 3     3    A0 82 00 02 02 00 00 CD 82
 3     4    A0 82 00 03 02 00 81 ED 82
 3     5    A0 82 00 04 02 00 81 EC 42
 3     6    A0 82 00 05 02 00 81 EC 02
 3     7    A0 82 00 06 02 00 81 EC C2
 3     8    A0 82 00 07 02 00 01 CC 82
 3     9    A0 82 00 08 02 00 01 CF 42
 3    10    A0 82 00 09 02 00 01 CF 02
 3    11    A0 82 00 0A 02 00 01 CF C2
 3    12    A0 82 00 0B 02 00 01 CF 82
 3    13    A0 82 00 0C 02 01 00 CE 42
 3    14    A0 82 00 0D 02 00 00 CE 42
 3    15    A0 82 00 0E 02 01 00 CE C2
 3    16    A0 82 00 0F 02 00 00 CE C2
 3    17    A0 82 00 10 02 00 01 C9 42
 3    18    A0 82 00 11 02 00 01 C9 02
 3    19    A0 82 00 12 02 00 01 C9 C2
 3    20    A0 82 00 13 02 01 00 C9 82
 3    21    A0 82 00 14 02 00 00 C8 02
 3    22    A0 82 00 15 02 01 00 C8 02
 3    23    A0 82 00 16 02 00 00 C8 82
 3    24    A0 82 00 17 02 02 00 C8 42
 3    25    A0 82 00 18 02 00 00 CB 02
 3    26    A0 82 00 19 02 02 00 CB C2
 3    27    A0 82 00 1A 02 00 00 CB 82
 3    28    A0 82 00 1B 02 02 00 CB 42
 3    29    A0 82 00 1C 02 00 00 CA 02
 3    30    A0 82 00 1D 02 40 00 DA 42
 3    31    A0 82 00 1E 02 00 00 CA 82
 3    32    A0 82 00 1F 02 00 01 CA 82
 3    33    A0 82 00 20 02 00 01 C5 42
 3    34    A0 82 00 21 02 00 01 C5 02
 3    35    A0 82 00 22 02 00 01 C5 C2
 3    36    A0 82 00 23 02 01 00 C5 82
 3    37    A0 82 00 24 02 00 00 C4 02
 3    38    A0 82 00 25 02 00 01 C4 02
 3    39    A0 82 00 26 02 00 01 C4 C2
 3    40    A0 82 00 27 02 01 00 C4 82
 3    41    A0 82 00 28 02 00 00 C7 02
 3    42    A0 82 00 29 02 02 00 C7 C2
 3    43    A0 82 00 2A 02 00 00 C7 82
 3    44    A0 82 00 2B 02 02 00 C7 42
 3    45    A0 82 00 2C 02 00 00 C6 02
 3    46    A0 82 00 2D 02 04 00 C7 42
 3    47    A0 82 00 2E 02 00 00 C6 82
 3    48    A0 82 00 2F 02 40 00 D6 C2
 3    49    A0 82 00 30 02 00 00 C1 02
 3    50    A0 82 00 31 02 00 01 C1 02
 3    51    A0 82 00 32 02 00 01 C1 C2
 3    52    A0 82 00 33 02 00 01 C1 82
 3    53    A0 82 00 34 02 00 01 C0 42
 3    54    A0 82 00 35 02 00 01 C0 02
 3    55    A0 82 00 36 02 00 01 C0 C2
 3    56    A0 82 00 37 02 01 00 C0 82
 3    57    A0 82 00 38 02 00 00 C3 02
 3    58    A0 82 00 39 02 40 00 D3 42
 3    59    A0 82 00 3A 02 00 00 C3 82
 3    60    A0 82 00 3B 02 00 01 C3 82
 3    61    A0 82 00 3C 02 00 01 C2 42
 3    62    A0 82 00 3D 02 00 01 C2 02
 3    63    A0 82 00 3E 02 00 01 C2 C2
 3    64    A0 82 00 3F 02 00 01 C2 82
 3    65    A0 82 00 40 02 00 01 DD 42  // Note 1
 3    66    A0 82 00 41 02 00 01 DD 02
 3    67    A0 82 00 42 02 01 00 DD C2
 3    68    A0 82 00 43 02 00 00 DD C2
 3    69    A0 82 00 44 02 00 81 FC 42
 3    70    A0 82 00 45 02 00 81 FC 02
 3    71    A0 82 00 46 02 00 01 DC C2
 3    72    A0 82 00 47 02 00 01 DC 82
 3    73    A0 82 00 48 02 00 01 DF 42
 3    74    A0 82 00 49 02 01 00 DF 02
 3    75    A0 82 00 4A 02 00 00 DF 82
 3    76    A0 82 00 4B 02 00 01 DF 82
 3    77    A0 82 00 4C 02 00 01 DE 42
 3    78    A0 82 00 4D 02 00 01 DE 02
 3    79    A0 82 00 4E 02 00 01 DE C2
 3    80    A0 82 00 4F 02 00 01 DE 82
 3    81    A0 82 00 50 02 00 01 D9 42
 3    82    A0 82 00 51 02 00 01 D9 02
 3    83    A0 82 00 52 02 00 81 F9 C2
 3    84    A0 82 00 53 02 00 81 F9 82
 3    85    A0 82 00 54 02 00 81 F8 42
 3    86    A0 82 00 55 02 02 00 D8 C2
 3    87    A0 82 00 56 02 00 00 D8 82
 3    88    A0 82 00 57 02 02 00 D8 42
 3    89    A0 82 00 58 02 00 00 DB 02
 3    90    A0 82 00 59 02 02 00 DB C2
 3    91    A0 82 00 5A 02 00 00 DB 82

 4     1    A0 07 02 27 58
 4     2    A0 82 00 01 02 40 00 9A A3
 4     3    A0 82 00 02 02 00 00 9A E0
 4     4    A0 82 00 03 02 00 81 9A 60
 4     5    A0 82 00 04 02 00 01 9A E7
 4     6    A0 82 00 05 02 00 81 9A 66
 4     7    A0 82 00 06 02 00 01 9A E5
 4     8    A0 82 00 07 02 00 81 9A 64
 4     9    A0 82 00 08 02 00 01 9A EB
 4    10    A0 82 00 09 02 00 01 9A EA
 4    11    A0 82 00 0A 02 00 01 9A E9
 4    12    A0 82 00 0B 02 00 01 9A E8
 4    13    A0 82 00 0C 02 00 01 9A EF
 4    14    A0 82 00 0D 02 00 01 9A EE
 4    15    A0 82 00 0E 02 00 01 9A ED
 4    16    A0 82 00 0F 02 01 00 9A EC
 4    17    A0 82 00 10 02 00 00 9A F2
 4    18    A0 82 00 11 02 00 01 9A F2
 4    19    A0 82 00 12 02 00 01 9A F1
 4    20    A0 82 00 13 02 00 01 9A F0
 4    21    A0 82 00 14 02 01 00 9A F7
 4    22    A0 82 00 15 02 00 00 9A F7
 4    23    A0 82 00 16 02 00 01 9A F5
 4    24    A0 82 00 17 02 00 01 9A F4
 4    25    A0 82 00 18 02 01 00 9A FB
 4    26    A0 82 00 19 02 00 00 9A FB
 4    27    A0 82 00 1A 02 02 00 9A FA
 4    28    A0 82 00 1B 02 00 00 9A F9
 4    29    A0 82 00 1C 02 02 00 9A FC
 4    30    A0 82 00 1D 02 00 00 9A FF
 4    31    A0 82 00 1E 02 00 81 9A 7D
 4    32    A0 82 00 1F 02 00 81 9A 7C
 4    33    A0 82 00 20 02 00 81 9A 43
 4    34    A0 82 00 21 02 00 81 9A 42
 4    35    A0 82 00 22 02 00 01 9A C1
 4    36    A0 82 00 23 02 00 01 9A C0
 4    37    A0 82 00 24 02 00 01 9A C7
 4    38    A0 82 00 25 02 00 01 9A C6
 4    39    A0 82 00 26 02 02 00 9A C6
 4    40    A0 82 00 27 02 00 00 9A C5
 4    41    A0 82 00 28 02 02 00 9A C8
 4    42    A0 82 00 29 02 00 00 9A CB
 4    43    A0 82 00 2A 02 40 00 9A 88
 4    44    A0 82 00 2B 02 00 00 9A C9
 4    45    A0 82 00 2C 02 00 01 9A CF
 4    46    A0 82 00 2D 02 00 01 9A CE
 4    47    A0 82 00 2E 02 00 01 9A CD
 4    48    A0 82 00 2F 02 00 01 9A CC
 4    49    A0 82 00 30 02 00 01 9A D3
 4    50    A0 82 00 31 02 00 01 9A D2
 4    51    A0 82 00 32 02 00 01 9A D1
 4    52    A0 82 00 33 02 00 01 9A D0
 4    53    A0 82 00 34 02 00 01 9A D7
 4    54    A0 82 00 35 02 00 81 9A 56
 4    55    A0 82 00 36 02 00 81 9A 55
 4    56    A0 82 00 37 02 00 81 9A 54
 4    57    A0 82 00 38 02 00 81 9A 5B
 4    58    A0 82 00 39 02 00 81 9A 5A
 4    59    A0 82 00 3A 02 00 81 9A 59
 4    60    A0 82 00 3B 02 00 81 9A 58
 4    61    A0 82 00 3C 02 00 81 9A 5F
 4    62    A0 82 00 3D 02 00 81 9A 5E
 4    63    A0 82 00 3E 02 00 81 9A 5D
 4    64    A0 82 00 3F 02 02 00 9A DF
 4    65    A0 82 00 40 02 00 00 9A A2

 5     1    A0 07 00 27 1A
 5     2    A0 82 00 01 02 40 00 83 64
 5     3    A0 82 00 02 02 00 00 82 68
 5     4    A0 82 00 03 02 00 01 82 68
 5     5    A0 82 00 04 02 00 01 82 74
 5     6    A0 82 00 05 02 00 01 82 70
 5     7    A0 82 00 06 02 00 01 82 7C
 5     8    A0 82 00 07 02 00 01 82 78
 5     9    A0 82 00 08 02 00 01 82 44
 5    10    A0 82 00 09 02 00 01 82 40
 5    11    A0 82 00 0A 02 00 01 82 4C
 5    12    A0 82 00 0B 02 00 01 82 48
 5    13    A0 82 00 0C 02 00 81 80 54
 5    14    A0 82 00 0D 02 00 81 80 50
 5    15    A0 82 00 0E 02 00 81 80 5C
 5    16    A0 82 00 0F 02 00 81 80 58
 5    17    A0 82 00 10 02 00 81 80 24
 5    18    A0 82 00 11 02 00 81 80 20
 5    19    A0 82 00 12 02 00 81 80 2C
 5    20    A0 82 00 13 02 00 81 80 28
 5    21    A0 82 00 14 02 00 81 80 34
 5    22    A0 82 00 15 02 00 01 82 30
 5    23    A0 82 00 16 02 00 01 82 3C
 5    24    A0 82 00 17 02 00 01 82 38
 5    25    A0 82 00 18 02 00 01 82 04
 5    26    A0 82 00 19 02 00 01 82 00
 5    27    A0 82 00 1A 02 00 01 82 0C
 5    28    A0 82 00 1B 02 00 01 82 08
 5    29    A0 82 00 1C 02 01 00 82 14
 5    30    A0 82 00 1D 02 00 00 82 14
 5    31    A0 82 00 1E 02 01 00 82 1C
 5    32    A0 82 00 1F 02 00 00 82 1C
 5    33    A0 82 00 20 02 01 00 82 E4
 5    34    A0 82 00 21 02 00 00 82 E4
 5    35    A0 82 00 22 02 00 01 82 EC
 5    36    A0 82 00 23 02 00 01 82 E8
 5    37    A0 82 00 24 02 00 01 82 F4
 5    38    A0 82 00 25 02 01 00 82 F0
 5    39    A0 82 00 26 02 00 00 82 F8
 5    40    A0 82 00 27 02 00 01 82 F8
 5    41    A0 82 00 28 02 00 01 82 C4
 5    42    A0 82 00 29 02 00 01 82 C0
 5    43    A0 82 00 2A 02 00 01 82 CC
 5    44    A0 82 00 2B 02 02 00 82 C4
 5    45    A0 82 00 2C 02 00 00 82 D0
 5    46    A0 82 00 2D 02 02 00 82 DC
 5    47    A0 82 00 2E 02 00 00 82 D8
 5    48    A0 82 00 2F 02 00 81 80 D8
 5    49    A0 82 00 30 02 00 01 82 A4
 5    50    A0 82 00 31 02 00 81 80 A0
 5    51    A0 82 00 32 02 00 81 80 AC
 5    52    A0 82 00 33 02 00 81 80 A8
 5    53    A0 82 00 34 02 00 81 80 B4
 5    54    A0 82 00 35 02 00 81 80 B0
 5    55    A0 82 00 36 02 00 81 80 BC
 5    56    A0 82 00 37 02 00 81 80 B8
 5    57    A0 82 00 38 02 00 81 80 84
 5    58    A0 82 00 39 02 02 00 82 8C
 5    59    A0 82 00 3A 02 00 00 82 88

 6     1    A0 07 00 1A 2F
 6     2    A0 82 00 01 02 40 00 F6 0E
 6     3    A0 82 00 02 02 00 00 D7 8E
 6     4    A0 82 00 03 02 00 01 D7 8E
 6     5    A0 82 00 04 02 00 01 D4 0E
 6     6    A0 82 00 05 02 00 01 D4 8E
 6     7    A0 82 00 06 02 00 01 D5 0E
 6     8    A0 82 00 07 02 00 01 D5 8E
 6     9    A0 82 00 08 02 00 01 D2 0E
 6    10    A0 82 00 09 02 00 01 D2 8E
 6    11    A0 82 00 0A 02 00 01 D3 0E
 6    12    A0 82 00 0B 02 00 01 D3 8E
 6    13    A0 82 00 0C 02 00 81 90 0E
 6    14    A0 82 00 0D 02 01 00 D0 8E
 6    15    A0 82 00 0E 02 00 00 D1 8E
 6    16    A0 82 00 0F 02 00 01 D1 8E
 6    17    A0 82 00 10 02 00 01 DE 0E
 6    18    A0 82 00 11 02 00 01 DE 8E
 6    19    A0 82 00 12 02 01 00 DF 0E
 6    20    A0 82 00 13 02 00 00 DF 0E
 6    21    A0 82 00 14 02 00 01 DC 0E
 6    22    A0 82 00 15 02 00 01 DC 8E
 6    23    A0 82 00 16 02 00 01 DD 0E
 6    24    A0 82 00 17 02 00 01 DD 8E
 6    25    A0 82 00 18 02 00 01 DA 0E
 6    26    A0 82 00 19 02 00 01 DA 8E
 6    27    A0 82 00 1A 02 00 01 DB 0E
 6    28    A0 82 00 1B 02 00 01 DB 8E
 6    29    A0 82 00 1C 02 00 81 98 0E
 6    30    A0 82 00 1D 02 00 81 98 8E
 6    31    A0 82 00 1E 02 00 81 99 0E
 6    32    A0 82 00 1F 02 00 81 99 8E
 6    33    A0 82 00 20 02 00 81 86 0E
 6    34    A0 82 00 21 02 00 81 86 8E
 6    35    A0 82 00 22 02 00 81 87 0E
 6    36    A0 82 00 23 02 00 81 87 8E
 6    37    A0 82 00 24 02 02 00 C5 8E
 6    38    A0 82 00 25 02 00 00 C4 0E
 6    39    A0 82 00 26 02 02 00 C4 8E
 6    40    A0 82 00 27 02 00 00 C5 0E
 6    41    A0 82 00 28 02 02 00 C3 8E
 6    42    A0 82 00 29 02 00 00 C2 0E
 6    43    A0 82 00 2A 02 40 00 E3 8E
 6    44    A0 82 00 2B 02 00 00 C3 0E
 6    45    A0 82 00 2C 02 00 01 C0 0E
 6    46    A0 82 00 2D 02 00 01 C0 8E
 6    47    A0 82 00 2E 02 00 01 C1 0E
 6    48    A0 82 00 2F 02 02 00 C0 0E
 6    49    A0 82 00 30 02 00 00 CE 8E

 7     1    A0 07 05 22 40
 7     2    A0 82 00 01 02 40 00 43 43
 7     3    A0 82 00 02 02 00 00 43 00
 7     4    A0 82 00 03 02 00 01 43 00
 7     5    A0 82 00 04 02 00 01 43 07
 7     6    A0 82 00 05 02 00 01 43 06
 7     7    A0 82 00 06 02 00 01 43 05
 7     8    A0 82 00 07 02 00 01 43 04
 7     9    A0 82 00 08 02 00 01 43 0B
 7    10    A0 82 00 09 02 00 01 43 0A
 7    11    A0 82 00 0A 02 01 00 43 09
 7    12    A0 82 00 0B 02 00 00 43 09
 7    13    A0 82 00 0C 02 01 00 43 0F
 7    14    A0 82 00 0D 02 00 00 43 0F
 7    15    A0 82 00 0E 02 01 00 43 0D
 7    16    A0 82 00 0F 02 00 00 43 0D
 7    17    A0 82 00 10 02 00 01 43 13
 7    18    A0 82 00 11 02 00 01 43 12
 7    19    A0 82 00 12 02 00 01 43 11
 7    20    A0 82 00 13 02 01 00 43 10
 7    21    A0 82 00 14 02 00 00 43 16
 7    22    A0 82 00 15 02 00 01 43 16
 7    23    A0 82 00 16 02 00 01 43 15
 7    24    A0 82 00 17 02 00 01 43 14
 7    25    A0 82 00 18 02 00 01 43 1B
 7    26    A0 82 00 19 02 00 01 43 1A
 7    27    A0 82 00 1A 02 00 01 43 19
 7    28    A0 82 00 1B 02 00 81 43 98
 7    29    A0 82 00 1C 02 00 81 43 9F
 7    30    A0 82 00 1D 02 00 81 43 9E
 7    31    A0 82 00 1E 02 00 81 43 9D
 7    32    A0 82 00 1F 02 00 81 43 9C
 7    33    A0 82 00 20 02 01 00 43 23
 7    34    A0 82 00 21 02 00 00 43 23
 7    35    A0 82 00 22 02 00 81 43 A1
 7    36    A0 82 00 23 02 00 01 43 20
 7    37    A0 82 00 24 02 00 01 43 27
 7    38    A0 82 00 25 02 01 00 43 26
 7    39    A0 82 00 26 02 00 00 43 24
 7    40    A0 82 00 27 02 00 81 43 A4
 7    41    A0 82 00 28 02 02 00 43 28
 7    42    A0 82 00 29 02 00 00 43 2B
 7    43    A0 82 00 2A 02 02 00 43 2A
 7    44    A0 82 00 2B 02 00 00 43 29
 7    45    A0 82 00 2C 02 00 81 43 AF
 7    46    A0 82 00 2D 02 00 81 43 AE
 7    47    A0 82 00 2E 02 00 81 43 AD
 7    48    A0 82 00 2F 02 00 81 43 AC
 7    49    A0 82 00 30 02 00 81 43 B3
 7    50    A0 82 00 31 02 00 81 43 B2
 7    51    A0 82 00 32 02 00 81 43 B1
 7    52    A0 82 00 33 02 02 00 43 33
 7    53    A0 82 00 34 02 00 00 43 36

 8     1    A0 07 02 50 34
 8     2    A0 82 00 01 02 40 00 8E 24
 8     3    A0 82 00 02 02 00 00 8E A2
 8     4    A0 82 00 03 02 00 01 8E A2
 8     5    A0 82 00 04 02 00 01 8E AC
 8     6    A0 82 00 05 02 00 01 8E AE
 8     7    A0 82 00 06 02 00 01 8E A8
 8     8    A0 82 00 07 02 00 01 8E AA
 8     9    A0 82 00 08 02 00 01 8E B4
 8    10    A0 82 00 09 02 00 01 8E B6
 8    11    A0 82 00 0A 02 00 01 8E B0
 8    12    A0 82 00 0B 02 00 01 8E B2
 8    13    A0 82 00 0C 02 00 81 8F BC
 8    14    A0 82 00 0D 02 00 81 8F BE
 8    15    A0 82 00 0E 02 00 81 8F B8
 8    16    A0 82 00 0F 02 00 81 8F BA
 8    17    A0 82 00 10 02 00 81 8F 84
 8    18    A0 82 00 11 02 00 81 8F 86
 8    19    A0 82 00 12 02 00 81 8F 80
 8    20    A0 82 00 13 02 00 81 8F 82
 8    21    A0 82 00 14 02 00 81 8F 8C
 8    22    A0 82 00 15 02 00 81 8F 8E
 8    23    A0 82 00 16 02 00 01 8E 88
 8    24    A0 82 00 17 02 00 01 8E 8A
 8    25    A0 82 00 18 02 00 01 8E 94
 8    26    A0 82 00 19 02 00 01 8E 96
 8    27    A0 82 00 1A 02 00 01 8E 90
 8    28    A0 82 00 1B 02 00 01 8E 92
 8    29    A0 82 00 1C 02 00 01 8E 9C
 8    30    A0 82 00 1D 02 01 00 8E 9E
 8    31    A0 82 00 1E 02 00 00 8E 9A
 8    32    A0 82 00 1F 02 00 01 8E 9A
 8    33    A0 82 00 20 02 00 01 8E E4
 8    34    A0 82 00 21 02 00 01 8E E6
 8    35    A0 82 00 22 02 00 01 8E E0
 8    36    A0 82 00 23 02 00 81 8F E2
 8    37    A0 82 00 24 02 00 01 8E EC
 8    38    A0 82 00 25 02 01 00 8E EE
 8    39    A0 82 00 26 02 00 00 8E EA
 8    40    A0 82 00 27 02 02 00 8E EC
 8    41    A0 82 00 28 02 00 00 8E F6
 8    42    A0 82 00 29 02 00 81 8F F6
 8    43    A0 82 00 2A 02 00 81 8F F0
 8    44    A0 82 00 2B 02 00 81 8F F2
 8    45    A0 82 00 2C 02 00 81 8F FC
 8    46    A0 82 00 2D 02 02 00 8E F8
 8    47    A0 82 00 2E 02 00 00 8E FA
 8    48    A0 82 00 2F 02 00 81 8F FA
 8    49    A0 82 00 30 02 00 81 8F C4
 8    50    A0 82 00 31 02 00 81 8F C6
 8    51    A0 82 00 32 02 00 81 8F C0
 8    52    A0 82 00 33 02 00 81 8F C2
 8    53    A0 82 00 34 02 00 81 8F CC
 8    54    A0 82 00 35 02 00 81 8F CE
 8    55    A0 82 00 36 02 00 81 8F C8
 8    56    A0 82 00 37 02 00 81 8F CA
 8    57    A0 82 00 38 02 02 00 8E D2
 8    58    A0 82 00 39 02 00 00 8E D4

 9     1    A0 07 04 3F 0B
 9     2    A0 82 00 01 02 40 00 C6 41
 9     3    A0 82 00 02 02 00 00 C4 59
 9     4    A0 82 00 03 02 00 01 C4 59
 9     5    A0 82 00 04 02 00 01 C4 61
 9     6    A0 82 00 05 02 00 01 C4 69
 9     7    A0 82 00 06 02 00 01 C4 71
 9     8    A0 82 00 07 02 00 01 C4 79
 9     9    A0 82 00 08 02 00 01 C4 01
 9    10    A0 82 00 09 02 00 01 C4 09
 9    11    A0 82 00 0A 02 00 01 C4 11
 9    12    A0 82 00 0B 02 00 01 C4 19
 9    13    A0 82 00 0C 02 00 01 C4 21
 9    14    A0 82 00 0D 02 00 01 C4 29
 9    15    A0 82 00 0E 02 00 01 C4 31
 9    16    A0 82 00 0F 02 00 01 C4 39
 9    17    A0 82 00 10 02 00 01 C4 C1
 9    18    A0 82 00 11 02 00 01 C4 C9
 9    19    A0 82 00 12 02 00 01 C4 D1
 9    20    A0 82 00 13 02 00 01 C4 D9
 9    21    A0 82 00 14 02 00 01 C4 E1
 9    22    A0 82 00 15 02 00 01 C4 E9
 9    23    A0 82 00 16 02 00 01 C4 F1
 9    24    A0 82 00 17 02 00 01 C4 F9
 9    25    A0 82 00 18 02 00 01 C4 81
 9    26    A0 82 00 19 02 00 01 C4 89
 9    27    A0 82 00 1A 02 00 01 C4 91
 9    28    A0 82 00 1B 02 00 01 C4 99
 9    29    A0 82 00 1C 02 00 01 C4 A1
 9    30    A0 82 00 1D 02 00 01 C4 A9
 9    31    A0 82 00 1E 02 00 01 C4 B1
 9    32    A0 82 00 1F 02 00 01 C4 B9
 9    33    A0 82 00 20 02 00 01 C5 41
 9    34    A0 82 00 21 02 00 01 C5 49
 9    35    A0 82 00 22 02 00 01 C5 51
 9    36    A0 82 00 23 02 00 01 C5 59
 9    37    A0 82 00 24 02 00 01 C5 61
 9    38    A0 82 00 25 02 00 01 C5 69
 9    39    A0 82 00 26 02 00 01 C5 71
 9    40    A0 82 00 27 02 00 01 C5 79
 9    41    A0 82 00 28 02 00 01 C5 01
 9    42    A0 82 00 29 02 00 01 C5 09
 9    43    A0 82 00 2A 02 00 01 C5 11
 9    44    A0 82 00 2B 02 00 01 C5 19
 9    45    A0 82 00 2C 02 00 01 C5 21
 9    46    A0 82 00 2D 02 00 01 C5 29
 9    47    A0 82 00 2E 02 00 01 C5 31
 9    48    A0 82 00 2F 02 00 01 C5 39
 9    49    A0 82 00 30 02 00 01 C5 C1
 9    50    A0 82 00 31 02 00 01 C5 C9
 9    51    A0 82 00 32 02 00 01 C5 D1
 9    52    A0 82 00 33 02 00 01 C5 D9
 9    53    A0 82 00 34 02 00 01 C5 E1
 9    54    A0 82 00 35 02 00 01 C5 E9
 9    55    A0 82 00 36 02 00 01 C5 F1
 9    56    A0 82 00 37 02 00 01 C5 F9
 9    57    A0 82 00 38 02 00 01 C5 81
 9    58    A0 82 00 39 02 00 01 C5 89
 9    59    A0 82 00 3A 02 00 01 C5 91
 9    60    A0 82 00 3B 02 00 01 C5 99
 9    61    A0 82 00 3C 02 00 01 C5 A1
 9    62    A0 82 00 3D 02 00 01 C5 A9
 9    63    A0 82 00 3E 02 00 01 C5 B1
 9    64    A0 82 00 3F 02 00 01 C5 B9
 9    65    A0 82 00 40 02 00 01 C6 41
 9    66    A0 82 00 41 02 00 01 C6 49
 9    67    A0 82 00 42 02 00 01 C6 51
 9    68    A0 82 00 43 02 00 01 C6 59
 9    69    A0 82 00 44 02 00 01 C6 61
 9    70    A0 82 00 45 02 00 01 C6 69
 9    71    A0 82 00 46 02 00 01 C6 71
 9    72    A0 82 00 47 02 00 01 C6 79
 9    73    A0 82 00 48 02 00 01 C6 01
 9    74    A0 82 00 49 02 00 01 C6 09
 9    75    A0 82 00 4A 02 00 01 C6 11
 9    76    A0 82 00 4B 02 00 01 C6 19
 9    77    A0 82 00 4C 02 00 01 C6 21
 9    78    A0 82 00 4D 02 00 01 C6 29
 9    79    A0 82 00 4E 02 00 01 C6 31
 9    80    A0 82 00 4F 02 00 01 C6 39
 9    81    A0 82 00 50 02 00 01 C6 C1
 9    82    A0 82 00 51 02 00 01 C6 C9
 9    83    A0 82 00 52 02 00 01 C6 D1
 9    84    A0 82 00 53 02 00 01 C6 D9
 9    85    A0 82 00 54 02 00 01 C6 E1
 9    86    A0 82 00 55 02 00 01 C6 E9
 9    87    A0 82 00 56 02 00 01 C6 F1
 9    88    A0 82 00 57 02 00 01 C6 F9
 9    89    A0 82 00 58 02 00 01 C6 81
 9    90    A0 82 00 59 02 00 01 C6 89
 9    91    A0 82 00 5A 02 00 01 C6 91
 9    92    A0 82 00 5B 02 00 01 C6 99
 9    93    A0 82 00 5C 02 00 01 C6 A1
 9    94    A0 82 00 5D 02 00 01 C6 A9
 9    95    A0 82 00 5E 02 00 01 C6 B1
 9    96    A0 82 00 5F 02 00 01 C6 B9
 9    97    A0 82 00 60 02 00 01 C7 41
 9    98    A0 82 00 61 02 00 01 C7 49
 9    99    A0 82 00 62 02 00 01 C7 51
 9   100    A0 82 00 63 02 00 01 C7 59
 9   101    A0 82 00 64 02 00 01 C7 61
 9   102    A0 82 00 65 02 00 01 C7 69
 9   103    A0 82 00 66 02 00 01 C7 71
 9   104    A0 82 00 67 02 00 01 C7 79
 9   105    A0 82 00 68 02 00 01 C7 01
 9   106    A0 82 00 69 02 00 01 C7 09
 9   107    A0 82 00 6A 02 00 01 C7 11
 9   108    A0 82 00 6B 02 00 01 C7 19
 9   109    A0 82 00 6C 02 00 01 C7 21
 9   110    A0 82 00 6D 02 00 01 C7 29
 9   111    A0 82 00 6E 02 00 01 C7 31
 9   112    A0 82 00 6F 02 00 01 C7 39
 9   113    A0 82 00 70 02 00 01 C7 C1
 9   114    A0 82 00 71 02 00 01 C7 C9
 9   115    A0 82 00 72 02 00 01 C7 D1
 9   116    A0 82 00 73 02 00 01 C7 D9
 9   117    A0 82 00 74 02 00 01 C7 E1
 9   118    A0 82 00 75 02 00 01 C7 E9
 9   119    A0 82 00 76 02 00 01 C7 F1
 9   120    A0 82 00 77 02 00 01 C7 F9
 9   121    A0 82 00 78 02 00 01 C7 81
 9   122    A0 82 00 79 02 00 01 C7 89
 9   123    A0 82 00 7A 02 00 01 C7 91
 9   124    A0 82 00 7B 02 00 01 C7 99
 9   125    A0 82 00 7C 02 00 01 C7 A1
 9   126    A0 82 00 7D 02 00 01 C7 A9
 9   127    A0 82 00 7E 02 00 01 C7 B1
 9   128    A0 82 00 7F 02 00 01 C7 B9
 9   129    A0 82 00 80 02 00 01 C0 41
 9   130    A0 82 00 81 02 00 01 C0 49
 9   131    A0 82 00 82 02 00 01 C0 51
 9   132    A0 82 00 83 02 00 01 C0 59
 9   133    A0 82 00 84 02 00 01 C0 61
 9   134    A0 82 00 85 02 00 01 C0 69
 9   135    A0 82 00 86 02 02 00 C0 69
 9   136    A0 82 00 87 02 00 00 C0 71

10     1    A0 07 00 3F 02
10     2    A0 82 00 40 02 00 01 E3 04 /////
10     3    A0 82 00 01 02 40 00 E3 04 /////


New data with more variation added:
A0 07 01 26 43
A0 82 00 01 02 40 00 D1 52
A0 82 00 02 02 00 00 C1 92
A0 82 00 03 02 00 01 C1 92
A0 82 00 04 02 00 01 C0 52
A0 82 00 05 02 00 81 E0 12
A0 82 00 06 02 00 81 E0 D2
A0 82 00 07 02 00 01 C0 92
A0 82 00 08 02 00 01 C3 52
A0 82 00 09 02 00 01 C3 12
A0 82 00 0A 02 00 01 C3 D2
A0 82 00 0B 02 00 01 C3 92
A0 82 00 0C 02 00 01 C2 52
A0 82 00 0D 02 00 01 C2 12
A0 82 00 0E 02 01 00 C2 D2
A0 82 00 0F 02 00 00 C2 D2
A0 82 00 10 02 00 01 C5 52
A0 82 00 11 02 00 01 C5 12
A0 82 00 12 02 02 00 C5 12
A0 82 00 13 02 00 00 C5 D2
A0 82 00 14 02 01 00 C4 52
A0 82 00 15 02 00 00 C4 52
A0 82 00 16 02 00 81 E4 D2
A0 82 00 17 02 00 01 C4 92
A0 82 00 18 02 01 00 C7 52
A0 82 00 19 02 00 00 C7 52
A0 82 00 1A 02 01 00 C7 D2
A0 82 00 1B 02 00 00 C7 D2
A0 82 00 1C 02 00 01 C6 52
A0 82 00 1D 02 01 00 C6 12
A0 82 00 1E 02 00 00 C6 92
A0 82 00 1F 02 01 00 C6 92
A0 82 00 20 02 00 00 C9 12
A0 82 00 21 02 00 01 C9 12
A0 82 00 22 02 01 00 C9 D2
A0 82 00 23 02 00 00 C9 D2
A0 82 00 24 02 00 01 C8 52
A0 82 00 25 02 00 01 C8 12
A0 82 00 26 02 00 01 C8 D2
A0 82 00 27 02 00 01 C8 92
A0 82 00 28 02 00 01 CB 52
A0 82 00 29 02 00 01 CB 12
A0 82 00 2A 02 00 01 CB D2
A0 82 00 2B 02 00 81 EB 92
A0 82 00 2C 02 00 81 EA 52
A0 82 00 2D 02 00 81 EA 12
A0 82 00 2E 02 01 00 CA D2
A0 82 00 2F 02 00 00 CA D2
A0 82 00 30 02 00 81 ED 52
A0 82 00 31 02 00 81 ED 12
A0 82 00 32 02 01 00 CD D2
A0 82 00 33 02 00 00 CD D2
A0 82 00 34 02 01 00 CC 52
A0 82 00 35 02 00 00 CC 52
A0 82 00 36 02 01 00 CC D2
A0 82 00 37 02 00 00 CC D2
A0 82 00 38 02 00 81 EF 52
A0 82 00 39 02 00 81 EF 12
A0 82 00 3A 02 02 00 CF 12
A0 82 00 3B 02 00 00 CF D2
A0 82 00 3C 02 02 00 CE 92
A0 82 00 3D 02 00 00 CE 52
A0 82 00 3E 02 02 00 CE 12
A0 82 00 3F 02 00 00 CE D2
1个回答

我编辑了您的示例数据以包含块号和行号,以便更轻松地引用它们。不幸的是,这将问题的大小增加到超过 32K,所以最后我不得不扔掉一些东西。这是您的其余数据:

11     1    A0 82 00 01 02 40 00 E3 04 ////
11     2    A0 82 00 02 02 00 00 E2 08
11     3    A0 82 00 03 02 00 01 E2 08
11     4    A0 82 00 04 02 00 01 E2 14
11     5    A0 82 00 05 02 00 01 E2 10
11     6    A0 82 00 06 02 00 01 E2 1C
11     7    A0 82 00 07 02 00 01 E2 18
11     8    A0 82 00 08 02 00 01 E2 24
11     9    A0 82 00 09 02 00 01 E2 20
11    10    A0 82 00 0A 02 00 01 E2 2C
11    11    A0 82 00 0B 02 00 01 E2 28
11    12    A0 82 00 0C 02 00 01 E2 34
11    13    A0 82 00 0D 02 00 01 E2 30
11    14    A0 82 00 0E 02 00 01 E2 3C
11    15    A0 82 00 0F 02 00 01 E2 38
11    16    A0 82 00 10 02 00 01 E2 44
11    17    A0 82 00 11 02 00 01 E2 40
11    18    A0 82 00 12 02 00 01 E2 4C
11    19    A0 82 00 13 02 00 01 E2 48
11    20    A0 82 00 14 02 00 01 E2 54
11    21    A0 82 00 15 02 00 01 E2 50
11    22    A0 82 00 16 02 00 01 E2 5C
11    23    A0 82 00 17 02 00 01 E2 58
11    24    A0 82 00 18 02 00 01 E2 64
11    25    A0 82 00 19 02 00 01 E2 60
11    26    A0 82 00 1A 02 00 01 E2 6C
11    27    A0 82 00 1B 02 00 01 E2 68
11    28    A0 82 00 1C 02 00 01 E2 74
11    29    A0 82 00 1D 02 00 01 E2 70
11    30    A0 82 00 1E 02 00 01 E2 7C
11    31    A0 82 00 1F 02 00 01 E2 78
11    32    A0 82 00 20 02 00 01 E2 84
11    33    A0 82 00 21 02 00 01 E2 80
11    34    A0 82 00 22 02 00 01 E2 8C
11    35    A0 82 00 23 02 00 01 E2 88
11    36    A0 82 00 24 02 00 01 E2 94
11    37    A0 82 00 25 02 00 01 E2 90
11    38    A0 82 00 26 02 00 01 E2 9C
11    39    A0 82 00 27 02 00 01 E2 98
11    40    A0 82 00 28 02 00 01 E2 A4
11    41    A0 82 00 29 02 00 01 E2 A0
11    42    A0 82 00 2A 02 00 01 E2 AC
11    43    A0 82 00 2B 02 00 01 E2 A8
11    44    A0 82 00 2C 02 00 01 E2 B4
11    45    A0 82 00 2D 02 00 01 E2 B0
11    46    A0 82 00 2E 02 00 01 E2 BC
11    47    A0 82 00 2F 02 00 01 E2 B8
11    48    A0 82 00 30 02 00 01 E2 C4
11    49    A0 82 00 31 02 00 01 E2 C0
11    50    A0 82 00 32 02 00 01 E2 CC
11    51    A0 82 00 33 02 00 01 E2 C8
11    52    A0 82 00 34 02 00 01 E2 D4
11    53    A0 82 00 35 02 00 01 E2 D0
11    54    A0 82 00 36 02 00 01 E2 DC
11    55    A0 82 00 37 02 00 01 E2 D8
11    56    A0 82 00 38 02 00 01 E2 E4
11    57    A0 82 00 39 02 00 01 E2 E0
11    58    A0 82 00 3A 02 00 01 E2 EC
11    59    A0 82 00 3B 02 00 01 E2 E8
11    60    A0 82 00 3C 02 00 01 E2 F4
11    61    A0 82 00 3D 02 00 01 E2 F0
11    62    A0 82 00 3E 02 00 01 E2 FC
11    63    A0 82 00 3F 02 00 01 E2 F8
11    64    A0 82 00 40 02 00 01 E3 04  /////
11    65    A0 82 00 41 02 00 01 E3 00
11    66    A0 82 00 42 02 00 01 E3 0C
11    67    A0 82 00 43 02 00 01 E3 08
11    68    A0 82 00 44 02 00 01 E3 14
11    69    A0 82 00 45 02 00 01 E3 10
11    70    A0 82 00 46 02 00 01 E3 1C
11    71    A0 82 00 47 02 00 01 E3 18
11    72    A0 82 00 48 02 00 01 E3 24
11    73    A0 82 00 49 02 00 01 E3 20
11    74    A0 82 00 4A 02 00 01 E3 2C
11    75    A0 82 00 4B 02 00 01 E3 28
11    76    A0 82 00 4C 02 00 01 E3 34
11    77    A0 82 00 4D 02 00 01 E3 30
11    78    A0 82 00 4E 02 00 01 E3 3C
11    79    A0 82 00 4F 02 00 01 E3 38
11    80    A0 82 00 50 02 00 01 E3 44
11    81    A0 82 00 51 02 00 01 E3 40
11    82    A0 82 00 52 02 00 01 E3 4C
11    83    A0 82 00 53 02 00 01 E3 48
11    84    A0 82 00 54 02 00 01 E3 54
11    85    A0 82 00 55 02 00 01 E3 50
11    86    A0 82 00 56 02 00 01 E3 5C
11    87    A0 82 00 57 02 00 01 E3 58
11    88    A0 82 00 58 02 00 01 E3 64
11    89    A0 82 00 59 02 00 01 E3 60
11    90    A0 82 00 5A 02 00 01 E3 6C
11    91    A0 82 00 5B 02 02 00 E3 64
11    92    A0 82 00 5C 02 00 00 E3 70

12     1    A0 07 05 21 41
12     2    A0 82 00 01 02 40 00 15 05
12     3    A0 82 00 02 02 00 00 14 09
12     4    A0 82 00 03 02 00 01 14 09
12     5    A0 82 00 04 02 00 01 14 15
12     6    A0 82 00 05 02 00 01 14 11
12     7    A0 82 00 06 02 00 01 14 1D
12     8    A0 82 00 07 02 00 01 14 19
12     9    A0 82 00 08 02 00 01 14 25
12    10    A0 82 00 09 02 00 01 14 21
12    11    A0 82 00 0A 02 00 01 14 2D
12    12    A0 82 00 0B 02 00 01 14 29
12    13    A0 82 00 0C 02 00 01 14 35
12    14    A0 82 00 0D 02 00 01 14 31
12    15    A0 82 00 0E 02 00 01 14 3D
12    16    A0 82 00 0F 02 00 01 14 39
12    17    A0 82 00 10 02 00 01 14 45
12    18    A0 82 00 11 02 00 01 14 41
12    19    A0 82 00 12 02 00 01 14 4D
12    20    A0 82 00 13 02 00 01 14 49
12    21    A0 82 00 14 02 00 01 14 55
12    22    A0 82 00 15 02 00 01 14 51
12    23    A0 82 00 16 02 00 01 14 5D
12    24    A0 82 00 17 02 00 01 14 59
12    25    A0 82 00 18 02 00 01 14 65
12    26    A0 82 00 19 02 00 01 14 61
12    27    A0 82 00 1A 02 00 01 14 6D
12    28    A0 82 00 1B 02 00 01 14 69
12    29    A0 82 00 1C 02 00 01 14 75
12    30    A0 82 00 1D 02 00 01 14 71
12    31    A0 82 00 1E 02 00 01 14 7D
12    32    A0 82 00 1F 02 00 01 14 79
12    33    A0 82 00 20 02 00 01 14 85
12    34    A0 82 00 21 02 00 01 14 81
12    35    A0 82 00 22 02 00 01 14 8D
12    36    A0 82 00 23 02 00 01 14 89
12    37    A0 82 00 24 02 00 01 14 95
12    38    A0 82 00 25 02 00 01 14 91
12    39    A0 82 00 26 02 00 01 14 9D
12    40    A0 82 00 27 02 00 01 14 99
12    41    A0 82 00 28 02 00 01 14 A5
12    42    A0 82 00 29 02 00 01 14 A1
12    43    A0 82 00 2A 02 00 01 14 AD
12    44    A0 82 00 2B 02 00 01 14 A9
12    45    A0 82 00 2C 02 00 01 14 B5
12    46    A0 82 00 2D 02 00 01 14 B1
12    47    A0 82 00 2E 02 00 01 14 BD
12    48    A0 82 00 2F 02 00 01 14 B9
12    49    A0 82 00 30 02 00 01 14 C5
12    50    A0 82 00 31 02 00 01 14 C1
12    51    A0 82 00 32 02 00 01 14 CD
12    52    A0 82 00 33 02 00 01 14 C9
12    53    A0 82 00 34 02 00 01 14 D5
12    54    A0 82 00 35 02 00 01 14 D1
12    55    A0 82 00 36 02 00 01 14 DD
12    56    A0 82 00 37 02 00 01 14 D9
12    57    A0 82 00 38 02 00 01 14 E5
12    58    A0 82 00 39 02 00 01 14 E1
12    59    A0 82 00 3A 02 00 01 14 ED
12    60    A0 82 00 3B 02 00 01 14 E9
12    61    A0 82 00 3C 02 00 01 14 F5
12    62    A0 82 00 3D 02 00 01 14 F1
12    63    A0 82 00 3E 02 00 01 14 FD
12    64    A0 82 00 3F 02 00 01 14 F9
12    65    A0 82 00 40 02 00 01 15 05
12    66    A0 82 00 41 02 00 01 15 01
12    67    A0 82 00 42 02 00 01 15 0D
12    68    A0 82 00 43 02 00 01 15 09
12    69    A0 82 00 44 02 00 01 15 15
12    70    A0 82 00 45 02 00 01 15 11
12    71    A0 82 00 46 02 02 00 15 11
12    72    A0 82 00 47 02 00 00 15 1D

答案部分

让我们看一些几乎相同的数据包,除了几个比特。正如您可能已经注意到的那样,每条A0 82消息的第 4 个字节每次都增加 1,因此它可能是一个计数器,并且由于第 3 个字节始终为零,因此我假设这是计数器的高字节,因为您没有示例超过 256 行。这意味着这第三个字节每次都会改变,所以让我们寻找除了第三个字节之外的所有内容都相同的示例。

如果检查块 8,第 5-9 行,并将第 4 个和最后一个字节转换为二进制

8  5    04  AC  0000 0100   1010 1100
8  6    05  AE  0000 0101   1010 1110
8  7    06  A8  0000 0110   1010 1000
8  8    07  AA  0000 0111   1010 1010
8  9    08  B4  0000 1000   1011 0100

现在,如你所见,在每一种情况下

  • 翻转输入中的第 8 位翻转输出中的第 7 位(第 5,6 和 7,8 行)
  • 翻转输入中的第 7 位和第 8 位翻转输出中的第 6 位和第 7 位 (6,7)
  • 翻转位 5,6,7,8 翻转位 4,5,6,7

所以这看起来很像一个 XOR,输入向左旋转一位。

让我们用另一个相似的数据块来验证这一点,7-4 到 7-10

7  4    03  00  0000 0011   0000 0000
7  5    04  07  0000 0100   0000 0111
7  6    05  06  0000 0101   0000 0110
7  7    06  05  0000 0110   0000 0101
7  8    07  04  0000 0111   0000 0100
7  9    08  0B  0000 1000   0000 1011
7 10    09  0A  0000 1001   0000 1010

这一次,没有移位,但同样,在输出中的输入翻转中也翻转了相同的位。因此,该A0 07消息似乎包含有关要移动多少位的信息。

接下来,让我们检查一些具有相同“校验和”的案例:

1     3    A0 82 00 02 02 00 00 CF 62  // Note 2
1     4    A0 82 00 03 02 00 01 CF 62  // Note 2

1    13    A0 82 00 0C 02 01 00 CF 7C
1    14    A0 82 00 0D 02 00 00 CF 7C

1    19    A0 82 00 12 02 01 00 CF 40
1    20    A0 82 00 13 02 00 00 CF 40

4    21    A0 82 00 14 02 01 00 9A F7
4    22    A0 82 00 15 02 00 00 9A F7

7    21    A0 82 00 14 02 00 00 43 16
7    22    A0 82 00 15 02 00 01 43 16

如您所见,在所有这些情况下,通过翻转字节 7 或 8 中的相同位来取消翻转计数器中的一位,这意味着这些字节具有相同的移位量。而且,就像在您的所有示例中一样,字节 5 是02,我们无法收集有关此字节的任何信息。

现在,让我们看看是否可以找到A0 07 消息中的移位位数查看它,我们看到第三个字节是03, 00, 01, 02, 00, 00, 05, 02, 04, 00, (missing), and 05由于位移量应该是 0-7,这似乎与它有关。让我们制作一个表格来比较字节 3 和移位的位数;为了使这更容易,我一直在寻找只有最后一位发生变化的行(从偶数增加到奇数),并注意到校验和的 XOR 值:

block   byte 3-5    example (inc 1) xor last byte   bit shift
1       03 2c 06    29,30       02      1
2       00 15 3A    7,8     04      2
3       01 06 5B    5,6     40      6
4       02 27 58    9,10        01      0
5       00 27 1A    5,6     04      2
6       00 1A 2F    7,8     80      7
7       05 22 40    5,6     01      0
8       02 50 34    4,5     02      1
9       04 3F 0B    5,6     08      3
10      00 3F 02    (none)
11      ?? ?? ??    (none)
12      05 21 41    5,6     04      2

好吧,似乎不是第一个字节;相同的第一个字节(块 5、6)产生不同的移位值。

以二进制形式写入字节 3-5,以及以二进制形式进行位移,

1   00000011 00101100 00000110  0001    1
2   00000000 00010101 00111010  0010    2
3   00000001 00000110 01011011  0110    6
4   00000010 00100111 01011000  0000    0
5   00000000 00100111 00011010  0010    2
6   00000000 00011010 00101111  0111    7
7   00000101 00100010 01000000  0000    0
8   00000010 01010000 00110100  0001    1
9   00000100 00111111 00001011  0011    3
12  00000101 00100001 01000001  0010    2

也没有显示出明显的模式。

为了确保我关于将字节移位一定数量的假设是正确的,我编写了一个小的 perl 程序来读取校验和字节,将它们与移位的数据值进行异或,记住第一行的结果,并将其与所有其他线。结果:在你的每个例子中,如果你这样做,结果是一样的,但如果你用不同的例子这样做,结果就会不同。这意味着最初的三个字节可能包含一个移位值和一个初始校验和值,数据字节与该初始校验和进行移位和异或,结果是最后两个字节中返回的结果。示例:在块 1 中,A0 07字节为03 2C 06,并且可能的初始校验和为4AE848E04A60在二进制中,这些是以下表的第一行。

00000011  00101100  00000110    1100111101100010  1100111001100110  1100111100100110  
00000000  00010101  00111010    0100101011101000  0100100011100000  0100101001100000  
00000001  00000110  01011011    1100110110000010  1110110100000010  1100010100000010  
00000010  00100111  01011000    1001101011100000  1001101001100010  1001101011000010  
00000000  00100111  00011010    1000001001101000  1000000001100000  1000001011100000  
00000000  00011010  00101111    1101011110001110  1001011010001110  1100011010001110  
00000101  00100010  01000000    0100001100000000  0100001110000010  0100001100100010  
00000010  01010000  00110100    1000111010100010  1000111110100110  1000111011100110  
00000100  00111111  00001011    1100010001011001  1100000001001001  1100010101001001  
00000101  00100001  01000001    0001010000001001  0001011000000001  0001010010000001  

由于我没有看到任何明显的模式,我编写了另一个程序来检查是否有任何输入位总是 - 或从不 - 匹配相同的输出位,这意味着输出位等于或相反输入位。结果:除了输入的第 0-3、8 和 16 位以及输出的第 3、27、34 和 43 位始终为零,并且输入的第 21 位与输出的第 36 和 45 位匹配之外,什么都没有。

我也尝试了对输入的一些变化;将最后两个字节向左/向右旋转后字节中给定的位数A0 07,但无济于事。

所以,现在,我不知所措。A0 07确定字节算法的移位和初始校验和之后,我仍然非常确定这三个A0 82字节,但我不知道如何。如果您对我的程序感兴趣以进行更多实验,它们是:

https://mega.nz/#!hYwhTIqT!jBhSDnNBRCGhBfhStVmZwXBDo6GrDB5hO3XEfJescR8

12 月 18 日更新

我编写了一个新程序来分析您的新数据,自动计算每个部分的移位,然后尝试找到 3 个字节中的 2 个相同的初始化序列,并输出移位值、校验和值以及不同部分的二进制值字节、移位和校验和。结果如下:

 ==== comparing bytes 1 and 2 ==== 
01,26,1A: shift=4 chksum=b964 00011010 100 1011100101100100
01,26,24: shift=0 chksum=4bea 00100100 000 0100101111101010
01,3F,21: shift=2 chksum=e781 00100001 010 1110011110000001
01,3F,4E: shift=4 chksum=93e7 01001110 100 1001001111100111
02,17,1F: shift=4 chksum=bde5 00011111 100 1011110111100101
02,17,34: shift=0 chksum=5b72 00110100 000 0101101101110010
02,38,17: shift=4 chksum=7fee 00010111 100 0111111111101110
02,38,3A: shift=0 chksum=e74a 00111010 000 1110011101001010
02,38,3A: shift=0 chksum=e74a 00111010 000 1110011101001010
02,38,5E: shift=0 chksum=e6da 01011110 000 1110011011011010
03,36,0F: shift=1 chksum=6fb7 00001111 001 0110111110110111
03,36,25: shift=1 chksum=6d17 00100101 001 0110110100010111
03,41,19: shift=2 chksum=3da0 00011001 010 0011110110100000
03,41,1E: shift=2 chksum=3d40 00011110 010 0011110101000000
05,26,2B: shift=6 chksum=fd12 00101011 110 1111110100010010
05,26,30: shift=0 chksum=4bc2 00110000 000 0100101111000010
 ==== comparing bytes 1 and 3 ==== 
00,22,53: shift=3 chksum=2f89 00100010 011 0010111110001001
00,28,53: shift=3 chksum=7f89 00101000 011 0111111110001001
00,28,53: shift=3 chksum=7f89 00101000 011 0111111110001001
00,13,53: shift=3 chksum=a788 00010011 011 1010011110001000
01,50,4E: shift=4 chksum=73ea 01010000 100 0111001111101010
01,3F,4E: shift=4 chksum=93e7 00111111 100 1001001111100111
01,48,4F: shift=6 chksum=cf25 01001000 110 1100111100100101
01,5C,4F: shift=6 chksum=cf2f 01011100 110 1100111100101111
01,3A,54: shift=0 chksum=730a 00111010 000 0111001100001010
01,39,54: shift=0 chksum=750a 00111001 000 0111010100001010
02,27,0B: shift=4 chksum=b8e9 00100111 100 1011100011101001
02,12,0B: shift=4 chksum=f8e4 00010010 100 1111100011100100
04,4B,24: shift=4 chksum=c864 01001011 100 1100100001100100
04,49,24: shift=4 chksum=e864 01001001 100 1110100001100100
04,37,31: shift=1 chksum=6126 00110111 001 0110000100100110
04,4C,31: shift=1 chksum=9726 01001100 001 1001011100100110
05,39,11: shift=2 chksum=d601 00111001 010 1101011000000001
05,1D,11: shift=2 chksum=f600 00011101 010 1111011000000000
05,5A,1E: shift=4 chksum=39eb 01011010 100 0011100111101011
05,0C,1E: shift=4 chksum=f9e1 00001100 100 1111100111100001
05,26,30: shift=0 chksum=4bc2 00100110 000 0100101111000010
05,51,30: shift=0 chksum=a5c2 01010001 000 1010010111000010
 ==== comparing bytes 2 and 3 ==== 

没有两个 init 序列仅在字节 1 上有所不同,但这是意料之中的,因为其他序列有更多可能的值。

有一个 LibreOffice 版本,在https://mega.nz/#!oAwSSITQ!xWcfLMB5_46iYSlOhm_Uh6g1cz_LRmxhXohZnw3uTQc 上有相关的字节颜色

由此,我们看到当字节 1 和 3 相同时:

  • 移位值也相同
  • 第二个字节中不同的位数等于第三个字节中不同的位数,在 .odt 文档中标记为黄色
  • 在我们有 3 倍相同字节 (00 xx 53) 的情况下,我将与其他两个不同的版本标记为红色,并且字节 2 和校验和之间的模式也匹配
  • 输入字节 2 中的位不等于输出中的相应位,但在字节 1 相同的所有情况下,位以相同的方式翻转,因此字节 1 似乎是异或表的索引
  • 位差模式每次向左/向右移动不同的量。

由此看来,字节 2 似乎被移位并与由字节 1 和 3 确定的某个值进行异或,并且似乎异或值由下表确定:

Byte 1   xor value
00       07
01       03
02       81
03       F8 (see below)
04       07
05       03
06       unknown
07       does not occur

现在,如果我们检查字节 1 和 2 相同的表,将字节 2 与从字节 1 确定的值进行异或,并在校验和位模式中搜索,我们每次都会找到该模式,尽管移位了不同的数量。这些图案用粉红色标记。但是,表格有些不同。字节 0 = [ 01 或 05 ] 似乎在底表的每种情况下都表示异或 03;在某些情况下,这似乎意味着 xor 00。

所以,目前还没有真正的结果,但取得了一些进展,而且它一直很有趣。