找出RS232数据的CRC或CHECKSUM
我需要与 RS232 设备通信,我没有可用的规格或信息。
我发送一个 16 字节命令并返回 16 字节结果。最后一个字节看起来像某种 crc 或校验和,我尝试使用这个 http://miscel.dk /MiscEl/miscelCRCandChecksum.html 没有运气。
任何人都可以对 crc/checksum 算法进行逆向工程吗?这里是用 RS-232 监控程序捕获的一些数据:
01 80 42 00 00 00 00 00 00 00 00 00 00 00 01 B3
01 80 42 00 00 00 00 00 00 00 00 00 00 00 02 51
01 80 42 00 00 00 00 00 00 00 00 00 00 00 03 0F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 04 8C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 05 D2
01 80 42 00 00 00 00 00 00 00 00 00 00 00 06 30
01 80 42 00 00 00 00 00 00 00 00 00 00 00 07 6E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 08 2F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 09 71
01 80 42 00 00 00 00 00 00 00 00 00 00 00 0A 93
01 80 42 00 00 00 00 00 00 00 00 00 00 00 0B CD
01 80 42 00 00 00 00 00 00 00 00 00 00 00 0C 4E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 0D 10
01 80 42 00 00 00 00 00 00 00 00 00 00 00 0E F2
01 80 42 00 00 00 00 00 00 00 00 00 00 00 0F AC
01 80 42 00 00 00 00 00 00 00 00 00 00 00 10 70
01 80 42 00 00 00 00 00 00 00 00 00 00 00 11 2E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 12 CC
01 80 42 00 00 00 00 00 00 00 00 00 00 00 13 92
01 80 42 00 00 00 00 00 00 00 00 00 00 00 14 11
01 80 42 00 00 00 00 00 00 00 00 00 00 00 15 4F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 16 AD
01 80 42 00 00 00 00 00 00 00 00 00 00 00 17 F3
01 80 42 00 00 00 00 00 00 00 00 00 00 00 18 B2
01 80 42 00 00 00 00 00 00 00 00 00 00 00 19 EC
01 80 42 00 00 00 00 00 00 00 00 00 00 00 1A 0E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 1B 50
01 80 42 00 00 00 00 00 00 00 00 00 00 00 1C D3
01 80 42 00 00 00 00 00 00 00 00 00 00 00 1D 8D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 1E 6F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 1F 31
01 80 42 00 00 00 00 00 00 00 00 00 00 00 20 CE
01 80 42 00 00 00 00 00 00 00 00 00 00 00 21 90
01 80 42 00 00 00 00 00 00 00 00 00 00 00 22 72
01 80 42 00 00 00 00 00 00 00 00 00 00 00 23 2C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 24 AF
01 80 42 00 00 00 00 00 00 00 00 00 00 00 25 F1
01 80 42 00 00 00 00 00 00 00 00 00 00 00 26 13
01 80 42 00 00 00 00 00 00 00 00 00 00 00 27 4D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 28 0C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 29 52
01 80 42 00 00 00 00 00 00 00 00 00 00 00 2A B0
01 80 42 00 00 00 00 00 00 00 00 00 00 00 2B EE
01 80 42 00 00 00 00 00 00 00 00 00 00 00 2C 6D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 2D 33
01 80 42 00 00 00 00 00 00 00 00 00 00 00 2E D1
01 80 42 00 00 00 00 00 00 00 00 00 00 00 2F 8F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 30 53
01 80 42 00 00 00 00 00 00 00 00 00 00 00 31 0D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 32 EF
01 80 42 00 00 00 00 00 00 00 00 00 00 00 33 B1
01 80 42 00 00 00 00 00 00 00 00 00 00 00 34 32
01 80 42 00 00 00 00 00 00 00 00 00 00 00 35 6C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 36 8E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 37 D0
01 80 42 00 00 00 00 00 00 00 00 00 00 00 38 91
01 80 42 00 00 00 00 00 00 00 00 00 00 00 39 CF
01 80 42 00 00 00 00 00 00 00 00 00 00 00 3A 2D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 3B 73
01 80 42 00 00 00 00 00 00 00 00 00 00 00 3C F0
01 80 42 00 00 00 00 00 00 00 00 00 00 00 3D AE
01 80 42 00 00 00 00 00 00 00 00 00 00 00 3E 4C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 3F 12
01 80 42 00 00 00 00 00 00 00 00 00 00 00 40 AB
01 80 42 00 00 00 00 00 00 00 00 00 00 00 41 F5
01 80 42 00 00 00 00 00 00 00 00 00 00 00 42 17
01 80 42 00 00 00 00 00 00 00 00 00 00 00 43 49
01 80 42 00 00 00 00 00 00 00 00 00 00 00 44 CA
01 80 42 00 00 00 00 00 00 00 00 00 00 00 45 94
01 80 42 00 00 00 00 00 00 00 00 00 00 00 46 76
01 80 42 00 00 00 00 00 00 00 00 00 00 00 47 28
01 80 42 00 00 00 00 00 00 00 00 00 00 00 48 69
01 80 42 00 00 00 00 00 00 00 00 00 00 00 49 37
01 80 42 00 00 00 00 00 00 00 00 00 00 00 4A D5
01 80 42 00 00 00 00 00 00 00 00 00 00 00 4B 8B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 4C 08
01 80 42 00 00 00 00 00 00 00 00 00 00 00 4D 56
01 80 42 00 00 00 00 00 00 00 00 00 00 00 4E B4
01 80 42 00 00 00 00 00 00 00 00 00 00 00 4F EA
01 80 42 00 00 00 00 00 00 00 00 00 00 00 50 36
01 80 42 00 00 00 00 00 00 00 00 00 00 00 51 68
01 80 42 00 00 00 00 00 00 00 00 00 00 00 52 8A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 53 D4
01 80 42 00 00 00 00 00 00 00 00 00 00 00 54 57
01 80 42 00 00 00 00 00 00 00 00 00 00 00 55 09
01 80 42 00 00 00 00 00 00 00 00 00 00 00 56 EB
01 80 42 00 00 00 00 00 00 00 00 00 00 00 57 B5
01 80 42 00 00 00 00 00 00 00 00 00 00 00 58 F4
01 80 42 00 00 00 00 00 00 00 00 00 00 00 59 AA
01 80 42 00 00 00 00 00 00 00 00 00 00 00 5A 48
01 80 42 00 00 00 00 00 00 00 00 00 00 00 5B 16
01 80 42 00 00 00 00 00 00 00 00 00 00 00 5C 95
01 80 42 00 00 00 00 00 00 00 00 00 00 00 5D CB
01 80 42 00 00 00 00 00 00 00 00 00 00 00 5E 29
01 80 42 00 00 00 00 00 00 00 00 00 00 00 5F 77
01 80 42 00 00 00 00 00 00 00 00 00 00 00 60 88
01 80 42 00 00 00 00 00 00 00 00 00 00 00 61 D6
01 80 42 00 00 00 00 00 00 00 00 00 00 00 62 34
01 80 42 00 00 00 00 00 00 00 00 00 00 00 63 6A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 64 E9
01 80 42 00 00 00 00 00 00 00 00 00 00 00 65 B7
01 80 42 00 00 00 00 00 00 00 00 00 00 00 66 55
01 80 42 00 00 00 00 00 00 00 00 00 00 00 67 0B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 68 4A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 69 14
01 80 42 00 00 00 00 00 00 00 00 00 00 00 6A F6
01 80 42 00 00 00 00 00 00 00 00 00 00 00 6B A8
01 80 42 00 00 00 00 00 00 00 00 00 00 00 6C 2B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 6D 75
01 80 42 00 00 00 00 00 00 00 00 00 00 00 6E 97
01 80 42 00 00 00 00 00 00 00 00 00 00 00 6F C9
01 80 42 00 00 00 00 00 00 00 00 00 00 00 70 15
01 80 42 00 00 00 00 00 00 00 00 00 00 00 71 4B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 72 A9
01 80 42 00 00 00 00 00 00 00 00 00 00 00 73 F7
01 80 42 00 00 00 00 00 00 00 00 00 00 00 74 74
01 80 42 00 00 00 00 00 00 00 00 00 00 00 75 2A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 76 C8
01 80 42 00 00 00 00 00 00 00 00 00 00 00 77 96
01 80 42 00 00 00 00 00 00 00 00 00 00 00 78 D7
01 80 42 00 00 00 00 00 00 00 00 00 00 00 79 89
01 80 42 00 00 00 00 00 00 00 00 00 00 00 7A 6B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 7B 35
01 80 42 00 00 00 00 00 00 00 00 00 00 00 7C B6
01 80 42 00 00 00 00 00 00 00 00 00 00 00 7D E8
01 80 42 00 00 00 00 00 00 00 00 00 00 00 7E 0A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 7F 54
01 80 42 00 00 00 00 00 00 00 00 00 00 00 80 61
01 80 42 00 00 00 00 00 00 00 00 00 00 00 81 3F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 82 DD
01 80 42 00 00 00 00 00 00 00 00 00 00 00 83 83
01 80 42 00 00 00 00 00 00 00 00 00 00 00 84 00
01 80 42 00 00 00 00 00 00 00 00 00 00 00 85 5E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 86 BC
01 80 42 00 00 00 00 00 00 00 00 00 00 00 87 E2
01 80 42 00 00 00 00 00 00 00 00 00 00 00 88 A3
01 80 42 00 00 00 00 00 00 00 00 00 00 00 89 FD
01 80 42 00 00 00 00 00 00 00 00 00 00 00 8A 1F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 8B 41
01 80 42 00 00 00 00 00 00 00 00 00 00 00 8C C2
01 80 42 00 00 00 00 00 00 00 00 00 00 00 8D 9C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 8E 7E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 8F 20
01 80 42 00 00 00 00 00 00 00 00 00 00 00 90 FC
01 80 42 00 00 00 00 00 00 00 00 00 00 00 91 A2
01 80 42 00 00 00 00 00 00 00 00 00 00 00 92 40
01 80 42 00 00 00 00 00 00 00 00 00 00 00 93 1E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 94 9D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 95 C3
01 80 42 00 00 00 00 00 00 00 00 00 00 00 96 21
01 80 42 00 00 00 00 00 00 00 00 00 00 00 97 7F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 98 3E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 99 60
01 80 42 00 00 00 00 00 00 00 00 00 00 00 9A 82
01 80 42 00 00 00 00 00 00 00 00 00 00 00 9B DC
01 80 42 00 00 00 00 00 00 00 00 00 00 00 9C 5F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 9D 01
01 80 42 00 00 00 00 00 00 00 00 00 00 00 9E E3
01 80 42 00 00 00 00 00 00 00 00 00 00 00 9F BD
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A0 42
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A1 1C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A2 FE
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A3 A0
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A4 23
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A5 7D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A6 9F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A7 C1
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A8 80
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A9 DE
01 80 42 00 00 00 00 00 00 00 00 00 00 00 AA 3C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 AB 62
01 80 42 00 00 00 00 00 00 00 00 00 00 00 AC E1
01 80 42 00 00 00 00 00 00 00 00 00 00 00 AD BF
01 80 42 00 00 00 00 00 00 00 00 00 00 00 AE 5D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 AF 03
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B0 DF
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B1 81
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B2 63
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B3 3D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B4 BE
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B5 E0
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B6 02
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B7 5C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B8 1D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B9 43
01 80 42 00 00 00 00 00 00 00 00 00 00 00 BA A1
01 80 42 00 00 00 00 00 00 00 00 00 00 00 BB FF
01 80 42 00 00 00 00 00 00 00 00 00 00 00 BC 7C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 BD 22
01 80 42 00 00 00 00 00 00 00 00 00 00 00 BE C0
01 80 42 00 00 00 00 00 00 00 00 00 00 00 BF 9E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C0 27
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C1 79
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C2 9B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C3 C5
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C4 46
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C5 18
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C6 FA
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C7 A4
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C8 E5
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C9 BB
01 80 42 00 00 00 00 00 00 00 00 00 00 00 CA 59
01 80 42 00 00 00 00 00 00 00 00 00 00 00 CB 07
01 80 42 00 00 00 00 00 00 00 00 00 00 00 CC 84
01 80 42 00 00 00 00 00 00 00 00 00 00 00 CD DA
01 80 42 00 00 00 00 00 00 00 00 00 00 00 CE 38
01 80 42 00 00 00 00 00 00 00 00 00 00 00 CF 66
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D0 BA
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D1 E4
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D2 06
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D3 58
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D4 DB
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D5 85
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D6 67
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D7 39
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D8 78
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D9 26
01 80 42 00 00 00 00 00 00 00 00 00 00 00 DA C4
01 80 42 00 00 00 00 00 00 00 00 00 00 00 DB 9A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 DC 19
01 80 42 00 00 00 00 00 00 00 00 00 00 00 DD 47
01 80 42 00 00 00 00 00 00 00 00 00 00 00 DE A5
01 80 42 00 00 00 00 00 00 00 00 00 00 00 DF FB
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E0 04
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E1 5A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E2 B8
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E3 E6
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E4 65
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E5 3B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E6 D9
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E7 87
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E8 C6
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E9 98
01 80 42 00 00 00 00 00 00 00 00 00 00 00 EA 7A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 EB 24
01 80 42 00 00 00 00 00 00 00 00 00 00 00 EC A7
01 80 42 00 00 00 00 00 00 00 00 00 00 00 ED F9
01 80 42 00 00 00 00 00 00 00 00 00 00 00 EE 1B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 EF 45
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F0 99
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F1 C7
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F2 25
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F3 7B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F4 F8
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F5 A6
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F6 44
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F7 1A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F8 5B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F9 05
01 80 42 00 00 00 00 00 00 00 00 00 00 00 FA E7
01 80 42 00 00 00 00 00 00 00 00 00 00 00 FB B9
01 80 42 00 00 00 00 00 00 00 00 00 00 00 FC 3A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 FD 64
01 80 42 00 00 00 00 00 00 00 00 00 00 00 FE 86
01 80 42 00 00 00 00 00 00 00 00 00 00 00 FF D8
倒数第二个字节似乎是一个序列号,当到达 FF 时从 00 开始。我已经包含了从 00 到 FF 的整个范围,以便更容易猜测 crc/checksum 方法。
无法添加注释,所以我将在这里添加信息:
当前面的 15 个字节都相等时,最后一个字节是相同的。 这是设备:http://www.intelektron.com/productos/tya_rei4000.htm
更正 (我想我在软件中发现了一个错误)设备本身在倒数第二个字节到达 FF 后从 00 重新开始,但是向设备发送命令的软件在到达 FF 时从 01 重新开始。无论如何,我认为倒数第二个序列字节与 crc/校验和问题无关。
澄清 列出的数据是软件发送的命令,不列出设备的回复。设备响应上述每个命令,发送一行存储的数据,例如:
80 01 C2 80 85 01 25 65 57 37 19 32 01 04 76 17
这一行包含 4 字节卡号、时间和日期等,我认为与 crc/校验和问题无关。
附加信息:
我一直在研究该软件的 VB6 ocxs 并得到了这个:
Object: clsCRC8
Object: basComunicaciones2
Private sub Proc_1_0_30305330
loc_30305352: var_8 = 30301198h
loc_30305373: call basComunicaciones2.SetPropA(edi, arg_8, ebx)
loc_30305376: var_4 = 0
End Sub
Private sub Proc_1_1_303053A0
loc_303053C2: var_8 = 303011A0h
loc_303053E2: call MSVBVM60.DLL.__vbaBoolVarNull(basComunicaciones2.Caption = %x1, arg_8, ebx)
loc_303053EB: If MSVBVM60.DLL.__vbaBoolVarNull(basComunicaciones2.Caption <> %x1 <> arg_8 Then GoTo loc_303054B8
loc_303053F7: var_24 = FFFFFFFFh
loc_303053FE: var_2C = 11
loc_30305405: ecx = True
loc_3030540D: call MSVBVM60.DLL.__vbaUI1I2
loc_3030541C: edx = edx - 0001h
loc_30305429: If edx-0001h < 0 Then GoTo loc_30305499
loc_3030542B:
loc_30305443: di = di - basComunicaciones2.%x1 = GetIDsOfNames(%x2) 'Ignore this
loc_30305447: If di < Me.GetTypeInfo Then GoTo loc_3030544F
loc_30305449: Err.Raise
loc_3030544F:
loc_30305451: GoTo loc_30305459
loc_30305453: Err.Raise
loc_30305459:
loc_3030546B: eax = "" And 000000FFh
loc_30305478: If ecx+eax xor eax < 257 Then GoTo loc_30305480
loc_3030547A: Err.Raise
loc_30305480:
loc_30305492: var_18 = Var_Ret_1
loc_30305495: If edi <= Me = %x1 Then GoTo loc_3030542B
loc_30305499:
loc_3030549F: not al
loc_303054A1: var_18 = Var_Ret_1
loc_303054A4: var_24 = 0
loc_303054AB: var_2C = 11
loc_303054B2: ecx =
loc_303054B8:
loc_303054DC: Exit Sub
End Sub
Private sub Proc_1_2_30306410
loc_30306432: var_8 = 303011A8h
loc_3030644F: var_38 = &H4011
loc_30306489: If Len(Hex()) >= 2 Then GoTo loc_303064A1
loc_3030649F: var_18 = 808463756 & var_18
loc_303064A1:
loc_303064A6: GoTo loc_303064C1
loc_303064C0: Exit Sub
loc_303064C1:
End Sub
我很确定这会计算数据的 CRC8:
Method Calular(Paquete As , CantidadDeBytes As Integer) As Unsigned Small Integer vbpComunicaciones2 的成员(缓存).clsCRC8 在接口 _clsCRC8 中定义
任何人都可以从中得到一些意义吗?可悲的是,我不能。
I need to communicate with a RS232 device, I have no specs or information available.
I send a 16 byte command and get a 16 byte result back. The last byte looks like some kind of crc or checksum, I have tried using this http://miscel.dk/MiscEl/miscelCRCandChecksum.html with no luck.
Anyone can reverse engineer the crc/checksum algorithm? here is some data captured with an RS-232 monitor program:
01 80 42 00 00 00 00 00 00 00 00 00 00 00 01 B3
01 80 42 00 00 00 00 00 00 00 00 00 00 00 02 51
01 80 42 00 00 00 00 00 00 00 00 00 00 00 03 0F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 04 8C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 05 D2
01 80 42 00 00 00 00 00 00 00 00 00 00 00 06 30
01 80 42 00 00 00 00 00 00 00 00 00 00 00 07 6E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 08 2F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 09 71
01 80 42 00 00 00 00 00 00 00 00 00 00 00 0A 93
01 80 42 00 00 00 00 00 00 00 00 00 00 00 0B CD
01 80 42 00 00 00 00 00 00 00 00 00 00 00 0C 4E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 0D 10
01 80 42 00 00 00 00 00 00 00 00 00 00 00 0E F2
01 80 42 00 00 00 00 00 00 00 00 00 00 00 0F AC
01 80 42 00 00 00 00 00 00 00 00 00 00 00 10 70
01 80 42 00 00 00 00 00 00 00 00 00 00 00 11 2E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 12 CC
01 80 42 00 00 00 00 00 00 00 00 00 00 00 13 92
01 80 42 00 00 00 00 00 00 00 00 00 00 00 14 11
01 80 42 00 00 00 00 00 00 00 00 00 00 00 15 4F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 16 AD
01 80 42 00 00 00 00 00 00 00 00 00 00 00 17 F3
01 80 42 00 00 00 00 00 00 00 00 00 00 00 18 B2
01 80 42 00 00 00 00 00 00 00 00 00 00 00 19 EC
01 80 42 00 00 00 00 00 00 00 00 00 00 00 1A 0E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 1B 50
01 80 42 00 00 00 00 00 00 00 00 00 00 00 1C D3
01 80 42 00 00 00 00 00 00 00 00 00 00 00 1D 8D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 1E 6F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 1F 31
01 80 42 00 00 00 00 00 00 00 00 00 00 00 20 CE
01 80 42 00 00 00 00 00 00 00 00 00 00 00 21 90
01 80 42 00 00 00 00 00 00 00 00 00 00 00 22 72
01 80 42 00 00 00 00 00 00 00 00 00 00 00 23 2C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 24 AF
01 80 42 00 00 00 00 00 00 00 00 00 00 00 25 F1
01 80 42 00 00 00 00 00 00 00 00 00 00 00 26 13
01 80 42 00 00 00 00 00 00 00 00 00 00 00 27 4D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 28 0C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 29 52
01 80 42 00 00 00 00 00 00 00 00 00 00 00 2A B0
01 80 42 00 00 00 00 00 00 00 00 00 00 00 2B EE
01 80 42 00 00 00 00 00 00 00 00 00 00 00 2C 6D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 2D 33
01 80 42 00 00 00 00 00 00 00 00 00 00 00 2E D1
01 80 42 00 00 00 00 00 00 00 00 00 00 00 2F 8F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 30 53
01 80 42 00 00 00 00 00 00 00 00 00 00 00 31 0D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 32 EF
01 80 42 00 00 00 00 00 00 00 00 00 00 00 33 B1
01 80 42 00 00 00 00 00 00 00 00 00 00 00 34 32
01 80 42 00 00 00 00 00 00 00 00 00 00 00 35 6C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 36 8E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 37 D0
01 80 42 00 00 00 00 00 00 00 00 00 00 00 38 91
01 80 42 00 00 00 00 00 00 00 00 00 00 00 39 CF
01 80 42 00 00 00 00 00 00 00 00 00 00 00 3A 2D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 3B 73
01 80 42 00 00 00 00 00 00 00 00 00 00 00 3C F0
01 80 42 00 00 00 00 00 00 00 00 00 00 00 3D AE
01 80 42 00 00 00 00 00 00 00 00 00 00 00 3E 4C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 3F 12
01 80 42 00 00 00 00 00 00 00 00 00 00 00 40 AB
01 80 42 00 00 00 00 00 00 00 00 00 00 00 41 F5
01 80 42 00 00 00 00 00 00 00 00 00 00 00 42 17
01 80 42 00 00 00 00 00 00 00 00 00 00 00 43 49
01 80 42 00 00 00 00 00 00 00 00 00 00 00 44 CA
01 80 42 00 00 00 00 00 00 00 00 00 00 00 45 94
01 80 42 00 00 00 00 00 00 00 00 00 00 00 46 76
01 80 42 00 00 00 00 00 00 00 00 00 00 00 47 28
01 80 42 00 00 00 00 00 00 00 00 00 00 00 48 69
01 80 42 00 00 00 00 00 00 00 00 00 00 00 49 37
01 80 42 00 00 00 00 00 00 00 00 00 00 00 4A D5
01 80 42 00 00 00 00 00 00 00 00 00 00 00 4B 8B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 4C 08
01 80 42 00 00 00 00 00 00 00 00 00 00 00 4D 56
01 80 42 00 00 00 00 00 00 00 00 00 00 00 4E B4
01 80 42 00 00 00 00 00 00 00 00 00 00 00 4F EA
01 80 42 00 00 00 00 00 00 00 00 00 00 00 50 36
01 80 42 00 00 00 00 00 00 00 00 00 00 00 51 68
01 80 42 00 00 00 00 00 00 00 00 00 00 00 52 8A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 53 D4
01 80 42 00 00 00 00 00 00 00 00 00 00 00 54 57
01 80 42 00 00 00 00 00 00 00 00 00 00 00 55 09
01 80 42 00 00 00 00 00 00 00 00 00 00 00 56 EB
01 80 42 00 00 00 00 00 00 00 00 00 00 00 57 B5
01 80 42 00 00 00 00 00 00 00 00 00 00 00 58 F4
01 80 42 00 00 00 00 00 00 00 00 00 00 00 59 AA
01 80 42 00 00 00 00 00 00 00 00 00 00 00 5A 48
01 80 42 00 00 00 00 00 00 00 00 00 00 00 5B 16
01 80 42 00 00 00 00 00 00 00 00 00 00 00 5C 95
01 80 42 00 00 00 00 00 00 00 00 00 00 00 5D CB
01 80 42 00 00 00 00 00 00 00 00 00 00 00 5E 29
01 80 42 00 00 00 00 00 00 00 00 00 00 00 5F 77
01 80 42 00 00 00 00 00 00 00 00 00 00 00 60 88
01 80 42 00 00 00 00 00 00 00 00 00 00 00 61 D6
01 80 42 00 00 00 00 00 00 00 00 00 00 00 62 34
01 80 42 00 00 00 00 00 00 00 00 00 00 00 63 6A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 64 E9
01 80 42 00 00 00 00 00 00 00 00 00 00 00 65 B7
01 80 42 00 00 00 00 00 00 00 00 00 00 00 66 55
01 80 42 00 00 00 00 00 00 00 00 00 00 00 67 0B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 68 4A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 69 14
01 80 42 00 00 00 00 00 00 00 00 00 00 00 6A F6
01 80 42 00 00 00 00 00 00 00 00 00 00 00 6B A8
01 80 42 00 00 00 00 00 00 00 00 00 00 00 6C 2B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 6D 75
01 80 42 00 00 00 00 00 00 00 00 00 00 00 6E 97
01 80 42 00 00 00 00 00 00 00 00 00 00 00 6F C9
01 80 42 00 00 00 00 00 00 00 00 00 00 00 70 15
01 80 42 00 00 00 00 00 00 00 00 00 00 00 71 4B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 72 A9
01 80 42 00 00 00 00 00 00 00 00 00 00 00 73 F7
01 80 42 00 00 00 00 00 00 00 00 00 00 00 74 74
01 80 42 00 00 00 00 00 00 00 00 00 00 00 75 2A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 76 C8
01 80 42 00 00 00 00 00 00 00 00 00 00 00 77 96
01 80 42 00 00 00 00 00 00 00 00 00 00 00 78 D7
01 80 42 00 00 00 00 00 00 00 00 00 00 00 79 89
01 80 42 00 00 00 00 00 00 00 00 00 00 00 7A 6B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 7B 35
01 80 42 00 00 00 00 00 00 00 00 00 00 00 7C B6
01 80 42 00 00 00 00 00 00 00 00 00 00 00 7D E8
01 80 42 00 00 00 00 00 00 00 00 00 00 00 7E 0A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 7F 54
01 80 42 00 00 00 00 00 00 00 00 00 00 00 80 61
01 80 42 00 00 00 00 00 00 00 00 00 00 00 81 3F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 82 DD
01 80 42 00 00 00 00 00 00 00 00 00 00 00 83 83
01 80 42 00 00 00 00 00 00 00 00 00 00 00 84 00
01 80 42 00 00 00 00 00 00 00 00 00 00 00 85 5E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 86 BC
01 80 42 00 00 00 00 00 00 00 00 00 00 00 87 E2
01 80 42 00 00 00 00 00 00 00 00 00 00 00 88 A3
01 80 42 00 00 00 00 00 00 00 00 00 00 00 89 FD
01 80 42 00 00 00 00 00 00 00 00 00 00 00 8A 1F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 8B 41
01 80 42 00 00 00 00 00 00 00 00 00 00 00 8C C2
01 80 42 00 00 00 00 00 00 00 00 00 00 00 8D 9C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 8E 7E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 8F 20
01 80 42 00 00 00 00 00 00 00 00 00 00 00 90 FC
01 80 42 00 00 00 00 00 00 00 00 00 00 00 91 A2
01 80 42 00 00 00 00 00 00 00 00 00 00 00 92 40
01 80 42 00 00 00 00 00 00 00 00 00 00 00 93 1E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 94 9D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 95 C3
01 80 42 00 00 00 00 00 00 00 00 00 00 00 96 21
01 80 42 00 00 00 00 00 00 00 00 00 00 00 97 7F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 98 3E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 99 60
01 80 42 00 00 00 00 00 00 00 00 00 00 00 9A 82
01 80 42 00 00 00 00 00 00 00 00 00 00 00 9B DC
01 80 42 00 00 00 00 00 00 00 00 00 00 00 9C 5F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 9D 01
01 80 42 00 00 00 00 00 00 00 00 00 00 00 9E E3
01 80 42 00 00 00 00 00 00 00 00 00 00 00 9F BD
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A0 42
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A1 1C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A2 FE
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A3 A0
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A4 23
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A5 7D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A6 9F
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A7 C1
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A8 80
01 80 42 00 00 00 00 00 00 00 00 00 00 00 A9 DE
01 80 42 00 00 00 00 00 00 00 00 00 00 00 AA 3C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 AB 62
01 80 42 00 00 00 00 00 00 00 00 00 00 00 AC E1
01 80 42 00 00 00 00 00 00 00 00 00 00 00 AD BF
01 80 42 00 00 00 00 00 00 00 00 00 00 00 AE 5D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 AF 03
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B0 DF
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B1 81
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B2 63
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B3 3D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B4 BE
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B5 E0
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B6 02
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B7 5C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B8 1D
01 80 42 00 00 00 00 00 00 00 00 00 00 00 B9 43
01 80 42 00 00 00 00 00 00 00 00 00 00 00 BA A1
01 80 42 00 00 00 00 00 00 00 00 00 00 00 BB FF
01 80 42 00 00 00 00 00 00 00 00 00 00 00 BC 7C
01 80 42 00 00 00 00 00 00 00 00 00 00 00 BD 22
01 80 42 00 00 00 00 00 00 00 00 00 00 00 BE C0
01 80 42 00 00 00 00 00 00 00 00 00 00 00 BF 9E
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C0 27
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C1 79
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C2 9B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C3 C5
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C4 46
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C5 18
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C6 FA
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C7 A4
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C8 E5
01 80 42 00 00 00 00 00 00 00 00 00 00 00 C9 BB
01 80 42 00 00 00 00 00 00 00 00 00 00 00 CA 59
01 80 42 00 00 00 00 00 00 00 00 00 00 00 CB 07
01 80 42 00 00 00 00 00 00 00 00 00 00 00 CC 84
01 80 42 00 00 00 00 00 00 00 00 00 00 00 CD DA
01 80 42 00 00 00 00 00 00 00 00 00 00 00 CE 38
01 80 42 00 00 00 00 00 00 00 00 00 00 00 CF 66
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D0 BA
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D1 E4
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D2 06
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D3 58
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D4 DB
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D5 85
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D6 67
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D7 39
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D8 78
01 80 42 00 00 00 00 00 00 00 00 00 00 00 D9 26
01 80 42 00 00 00 00 00 00 00 00 00 00 00 DA C4
01 80 42 00 00 00 00 00 00 00 00 00 00 00 DB 9A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 DC 19
01 80 42 00 00 00 00 00 00 00 00 00 00 00 DD 47
01 80 42 00 00 00 00 00 00 00 00 00 00 00 DE A5
01 80 42 00 00 00 00 00 00 00 00 00 00 00 DF FB
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E0 04
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E1 5A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E2 B8
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E3 E6
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E4 65
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E5 3B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E6 D9
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E7 87
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E8 C6
01 80 42 00 00 00 00 00 00 00 00 00 00 00 E9 98
01 80 42 00 00 00 00 00 00 00 00 00 00 00 EA 7A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 EB 24
01 80 42 00 00 00 00 00 00 00 00 00 00 00 EC A7
01 80 42 00 00 00 00 00 00 00 00 00 00 00 ED F9
01 80 42 00 00 00 00 00 00 00 00 00 00 00 EE 1B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 EF 45
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F0 99
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F1 C7
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F2 25
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F3 7B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F4 F8
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F5 A6
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F6 44
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F7 1A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F8 5B
01 80 42 00 00 00 00 00 00 00 00 00 00 00 F9 05
01 80 42 00 00 00 00 00 00 00 00 00 00 00 FA E7
01 80 42 00 00 00 00 00 00 00 00 00 00 00 FB B9
01 80 42 00 00 00 00 00 00 00 00 00 00 00 FC 3A
01 80 42 00 00 00 00 00 00 00 00 00 00 00 FD 64
01 80 42 00 00 00 00 00 00 00 00 00 00 00 FE 86
01 80 42 00 00 00 00 00 00 00 00 00 00 00 FF D8
The second to last byte seems to be a sequential number that starts over at 00 when it reaches FF. I have included the whole range from 00 to FF to make it easier to guess the crc/checksum method.
Cant add a comment, so I will add info here:
The last byte is the same when all the preceding 15 bytes are equal.
This is the device: http://www.intelektron.com/productos/tya_rei4000.htm
CORRECTION
(And I think I found a bug in the software) The device itself starts over at 00 after reaching FF in the second to last byte, but the software that sends commands to the device starts over at 01 when it reaches FF. Anyway I think this second to last sequence byte is not relevant to the crc/checksum problem.
CLARIFICATION
The listed data are commands sent by the software, the replies by the device are not listed. The device responds to each of the above commands sending one row of stored data like:
80 01 C2 80 85 01 25 65 57 37 19 32 01 04 76 17
This line contains a 4 byte card number, a time and date, etc, not relevant I think to the crc/checksum problem.
ADDITIONAL INFO:
I have been poking around the VB6 ocxs of the software and got this:
Object: clsCRC8
Object: basComunicaciones2
Private sub Proc_1_0_30305330
loc_30305352: var_8 = 30301198h
loc_30305373: call basComunicaciones2.SetPropA(edi, arg_8, ebx)
loc_30305376: var_4 = 0
End Sub
Private sub Proc_1_1_303053A0
loc_303053C2: var_8 = 303011A0h
loc_303053E2: call MSVBVM60.DLL.__vbaBoolVarNull(basComunicaciones2.Caption = %x1, arg_8, ebx)
loc_303053EB: If MSVBVM60.DLL.__vbaBoolVarNull(basComunicaciones2.Caption <> %x1 <> arg_8 Then GoTo loc_303054B8
loc_303053F7: var_24 = FFFFFFFFh
loc_303053FE: var_2C = 11
loc_30305405: ecx = True
loc_3030540D: call MSVBVM60.DLL.__vbaUI1I2
loc_3030541C: edx = edx - 0001h
loc_30305429: If edx-0001h < 0 Then GoTo loc_30305499
loc_3030542B:
loc_30305443: di = di - basComunicaciones2.%x1 = GetIDsOfNames(%x2) 'Ignore this
loc_30305447: If di < Me.GetTypeInfo Then GoTo loc_3030544F
loc_30305449: Err.Raise
loc_3030544F:
loc_30305451: GoTo loc_30305459
loc_30305453: Err.Raise
loc_30305459:
loc_3030546B: eax = "" And 000000FFh
loc_30305478: If ecx+eax xor eax < 257 Then GoTo loc_30305480
loc_3030547A: Err.Raise
loc_30305480:
loc_30305492: var_18 = Var_Ret_1
loc_30305495: If edi <= Me = %x1 Then GoTo loc_3030542B
loc_30305499:
loc_3030549F: not al
loc_303054A1: var_18 = Var_Ret_1
loc_303054A4: var_24 = 0
loc_303054AB: var_2C = 11
loc_303054B2: ecx =
loc_303054B8:
loc_303054DC: Exit Sub
End Sub
Private sub Proc_1_2_30306410
loc_30306432: var_8 = 303011A8h
loc_3030644F: var_38 = &H4011
loc_30306489: If Len(Hex()) >= 2 Then GoTo loc_303064A1
loc_3030649F: var_18 = 808463756 & var_18
loc_303064A1:
loc_303064A6: GoTo loc_303064C1
loc_303064C0: Exit Sub
loc_303064C1:
End Sub
I am pretty shure this calculates the CRC8 of the data:
Method Calcular(Paquete As , CantidadDeBytes As Integer) As Unsigned Small Integer
Member of vbpComunicaciones2 (cached).clsCRC8
Defined in interface _clsCRC8
Anyone can get some sense out of this? sadly, I can´t.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
答案在这里:http://blog.sina.com.cn/s/blog_5a1d5bca0100bjvx .html
0xff - 来自上面链接的算法的结果,并且所有内容都匹配。我花了两个下午的时间,得到了这里的帮助,但终于搞定了。
当然,由于格哈德发布的链接,我或多或少理解了该代码的作用。谢谢。
The answer was here: http://blog.sina.com.cn/s/blog_5a1d5bca0100bjvx.html
0xff - result from algorithm from above link and everything matches up. Took me 2 afternoons and the help I got here, but finally nailed it.
Of course I more or less understand what that code is doing thanks to the link posted by Gerhard. Thank you.
它不是校验和或数据异或。
您可以尝试一些 CRC 选项。您提供的数据对于任何简单的 CRC 解决方案都没有给出积极的结果。
常见的8位CRC有:
名称:poly:正向/反向/倒数反向
CRC-8-CCITT:0x8 + x2 + x + 1:0x07 / 0xE0 / 0x83
CRC-8-Dallas/Maxim(1-Wire 总线):x8 + x5 + x4 + 1:0x31 / 0x8C / 0x98
CRC-8:x8 + x7 + x6 + x4 + x2 + 1:0xD5 / 0xAB / 0xEA
CRC-8-SAE:x8 + x4 + x3 + x2 + 1:0x1D / 0xB8 / 0x8E
CRC-8-WCDMA:x8 + x7 + x4 + x3 + x + 1 0x9B / 0xD9 / 0xCD
混合的实现选项是:
正常或反向数据字节、初始值(0xff 或 0x00)、非最终异或以及最终异或之前的反向 CRC 结果。
对于 CRC 来说,它必须是这些选项中的一个,除非他们自己推出。
要了解更多信息,请CRC 错误检测算法轻松指南。
It is not a checksum or data XOR.
There are a few CRC options that you can try. The data you give does not give a positive result on any easy crc solutions.
Commmon 8 bit CRC are:
Name : poly : normal / reversed / reverse of reciprocal
CRC-8-CCITT : 0x8 + x2 + x + 1 : 0x07 / 0xE0 / 0x83
CRC-8-Dallas/Maxim (1-Wire bus) : x8 + x5 + x4 + 1 : 0x31 / 0x8C / 0x98
CRC-8 : x8 + x7 + x6 + x4 + x2 + 1 : 0xD5 / 0xAB / 0xEA
CRC-8-SAE : x8 + x4 + x3 + x2 + 1 : 0x1D / 0xB8 / 0x8E
CRC-8-WCDMA : x8 + x7 + x4 + x3 + x + 1 0x9B / 0xD9 / 0xCD
Implementation options to mix it up would be:
Normal or reverse data bytes, Initial value(0xff or 0x00), Final XOR on not and reverse CRC result before Final XOR.
For a CRC it must be on of these option unless they rolled their own.
To learn more A Painless Guide to CRC Error Detection Algorithms.