Prüfsummen berechnung herausfinden

Gast #2805131
Lesenswert?

Hallo,
ich untersuche gerade ein Protokoll, welches zwei Parteien über eine 
RS232 Verbindung miteinander sprechen. Der Aufbau ist nicht sonderlich 
kompliziert. Das Einzige was mir Kopfzerbrechen bereitet ist das 
Verfahren mit dem die Prüfsumme berechnet wird. Ich hab schon alles 
Mögliche ausprobiert wie Aufsummieren (mit modulo 256 etc), XOR, CRC-8, 
das alles über die gesamte Nachricht oder nur die Nutzdaten...
Vielleicht sieht ja jemand sofort wie das Verfahren funktioniert oder 
ich hab irgendwas triviales übersehen.

Das Protokoll ist folgendermaßen aufgebaut:
Start der Nachricht - 10 02 (ascii stx)
Danach kommt Nachrichtentyp, Parameterkennung und Parameterwert
Ende der Nachricht - 10 03 (ascii etx)
und das letzte Byte ist die Prüfsumme.

Hier also ein paar Nachrichten aus dem Protokoll:

10 02 A0 0B 62 02 DC 00 1E 10 03 35
10 02 A0 0B 62 02 DC 75 30 10 03 40

10 02 A0 0B 62 02 DB 00 1E 10 03 4F
10 02 A0 0B 62 02 DB 13 37 10 03 49

10 02 A0 0B 62 02 D2 00 5A 10 03 E6
10 02 A0 0B 62 02 D2 00 8C 10 03 6C

10 02 A0 0B 62 02 A3 00 FE 10 03 6C
10 02 A0 0B 62 02 A3 02 B2 10 03 18

10 02 A0 0B 62 81 70 00 10 03 C4
10 02 A0 0B 62 81 70 01 10 03 9A

Jedes Nachrichtenpaar setzt den gleichen Parameter, nur der Wert ist 
jeweils unterschiedlich.

Vielen Dank für jeden Tipp
Dave
#2805164
Lesenswert?

dave schrieb:

> Jedes Nachrichtenpaar setzt den gleichen Parameter, nur der Wert ist
> jeweils unterschiedlich.

Kannst du versuchen ein paar Nachrichtenpärchen zu forcieren, die sich 
nur in 1 Bit unterschieden (Wert um 1 höher).

Wenn sich die Proüfsumme dann auch nur um 1 Bit oder 1 Wert 
unterscheidet, schätze ich mal, dass es eher was einfaches auf Bitebene 
sein könnte. Wenn da aber heftige Sprünge entstehen, dann wirds wohl 
eine etwas komplexere Verrechnung der Einzelbytes sein.
#2805236
Lesenswert?

Dave schrieb:
> Karl Heinz Buchegger schrieb:
>> Kannst du versuchen ein paar Nachrichtenpärchen zu forcieren, die sich
>> nur in 1 Bit unterschieden (Wert um 1 höher).
>
> 10 02 A0 0B 62 82 9F 03 E8 10 03 C5
> 10 02 A0 0B 62 82 9F 03 E9 10 03 9B
> 10 02 A0 0B 62 82 9F 03 EA 10 03 79
> 10 02 A0 0B 62 82 9F 03 EB 10 03 27

Ach du Schande. Ich würde mal sagen, damit sind alle Systeme die einfach 
nur auf einfachen Bitoperationen der Einzelbytes beruhen (egal ob 
invertiert oder Nibble getauscht oder sonstwie) draussen.
Gast #2805308
Lesenswert?

Hm. Kannst du mal 256 Einträge posten, wobei ein Byte im Paket von 0-255 
durchiteriert wird und alle anderen gleich bleiben?

Was sind das für Geräte die da miteinander sprechen?

Evtl. ist es auch irgendein XOR oder MD5 or sonstwas mit speziellem 
"Key" oder Seed der da angewendet wird, d.h. eine Zusatzinfo die man 
braucht, die aus dem Stream nicht (ohne weiteres) ersichtlich ist.
Gast #2805564
Lesenswert?

asdf schrieb:
> Kannst du mal 256 Einträge posten, wobei ein Byte im Paket von 0-255
> durchiteriert wird und alle anderen gleich bleiben?

10 02 A0 0B 62 81 73 00 00 10 03 4F
10 02 A0 0B 62 81 73 00 01 10 03 11
10 02 A0 0B 62 81 73 00 02 10 03 F3
10 02 A0 0B 62 81 73 00 03 10 03 AD
10 02 A0 0B 62 81 73 00 04 10 03 2E
10 02 A0 0B 62 81 73 00 05 10 03 70
10 02 A0 0B 62 81 73 00 06 10 03 92
10 02 A0 0B 62 81 73 00 07 10 03 CC
10 02 A0 0B 62 81 73 00 08 10 03 8D
10 02 A0 0B 62 81 73 00 09 10 03 D3
10 02 A0 0B 62 81 73 00 0A 10 03 31
10 02 A0 0B 62 81 73 00 0B 10 03 6F
10 02 A0 0B 62 81 73 00 0C 10 03 EC
10 02 A0 0B 62 81 73 00 0D 10 03 B2
10 02 A0 0B 62 81 73 00 0E 10 03 50
10 02 A0 0B 62 81 73 00 0F 10 03 0E
10 02 A0 0B 62 81 73 00 10 10 10 03 D2 (10 maskiert)
10 02 A0 0B 62 81 73 00 11 10 03 8C
10 02 A0 0B 62 81 73 00 12 10 03 6E
10 02 A0 0B 62 81 73 00 13 10 03 30
10 02 A0 0B 62 81 73 00 14 10 03 B3
10 02 A0 0B 62 81 73 00 15 10 03 ED
10 02 A0 0B 62 81 73 00 16 10 03 0F
10 02 A0 0B 62 81 73 00 17 10 03 51
10 02 A0 0B 62 81 73 00 18 10 03 10
10 02 A0 0B 62 81 73 00 19 10 03 4E
10 02 A0 0B 62 81 73 00 1A 10 03 AC
10 02 A0 0B 62 81 73 00 1B 10 03 F2
10 02 A0 0B 62 81 73 00 1C 10 03 71
10 02 A0 0B 62 81 73 00 1D 10 03 2F
10 02 A0 0B 62 81 73 00 1E 10 03 CD
10 02 A0 0B 62 81 73 00 1F 10 03 93
10 02 A0 0B 62 81 73 00 20 10 03 6C
10 02 A0 0B 62 81 73 00 21 10 03 32
10 02 A0 0B 62 81 73 00 22 10 03 D0
10 02 A0 0B 62 81 73 00 23 10 03 8E
10 02 A0 0B 62 81 73 00 24 10 03 0D
10 02 A0 0B 62 81 73 00 25 10 03 53
10 02 A0 0B 62 81 73 00 26 10 03 B1
10 02 A0 0B 62 81 73 00 27 10 03 EF
10 02 A0 0B 62 81 73 00 28 10 03 AE
10 02 A0 0B 62 81 73 00 29 10 03 F0
10 02 A0 0B 62 81 73 00 2A 10 03 12
10 02 A0 0B 62 81 73 00 2B 10 03 4C
10 02 A0 0B 62 81 73 00 2C 10 03 CF
10 02 A0 0B 62 81 73 00 2D 10 03 91
10 02 A0 0B 62 81 73 00 2E 10 03 73
10 02 A0 0B 62 81 73 00 2F 10 03 2D
10 02 A0 0B 62 81 73 00 30 10 03 F1
10 02 A0 0B 62 81 73 00 31 10 03 AF
10 02 A0 0B 62 81 73 00 32 10 03 4D
10 02 A0 0B 62 81 73 00 33 10 03 13
10 02 A0 0B 62 81 73 00 34 10 03 90
10 02 A0 0B 62 81 73 00 35 10 03 CE
10 02 A0 0B 62 81 73 00 36 10 03 2C
10 02 A0 0B 62 81 73 00 37 10 03 72
10 02 A0 0B 62 81 73 00 38 10 03 33
10 02 A0 0B 62 81 73 00 39 10 03 6D
10 02 A0 0B 62 81 73 00 3A 10 03 8F
10 02 A0 0B 62 81 73 00 3B 10 03 D1
10 02 A0 0B 62 81 73 00 3C 10 03 52
10 02 A0 0B 62 81 73 00 3D 10 03 0C
10 02 A0 0B 62 81 73 00 3E 10 03 EE
10 02 A0 0B 62 81 73 00 3F 10 03 B0
10 02 A0 0B 62 81 73 00 40 10 03 09
10 02 A0 0B 62 81 73 00 41 10 03 57
10 02 A0 0B 62 81 73 00 42 10 03 B5
10 02 A0 0B 62 81 73 00 43 10 03 EB
10 02 A0 0B 62 81 73 00 44 10 03 68
10 02 A0 0B 62 81 73 00 45 10 03 36
10 02 A0 0B 62 81 73 00 46 10 03 D4
10 02 A0 0B 62 81 73 00 47 10 03 8A
10 02 A0 0B 62 81 73 00 48 10 03 CB
10 02 A0 0B 62 81 73 00 49 10 03 95
10 02 A0 0B 62 81 73 00 4A 10 03 77
10 02 A0 0B 62 81 73 00 4B 10 03 29
10 02 A0 0B 62 81 73 00 4C 10 03 AA
10 02 A0 0B 62 81 73 00 4D 10 03 F4
10 02 A0 0B 62 81 73 00 4E 10 03 16
10 02 A0 0B 62 81 73 00 4F 10 03 48
10 02 A0 0B 62 81 73 00 50 10 03 94
10 02 A0 0B 62 81 73 00 51 10 03 CA
10 02 A0 0B 62 81 73 00 52 10 03 28
10 02 A0 0B 62 81 73 00 53 10 03 76
10 02 A0 0B 62 81 73 00 54 10 03 F5
10 02 A0 0B 62 81 73 00 55 10 03 AB
10 02 A0 0B 62 81 73 00 56 10 03 49
10 02 A0 0B 62 81 73 00 57 10 03 17
10 02 A0 0B 62 81 73 00 58 10 03 56
10 02 A0 0B 62 81 73 00 59 10 03 08
10 02 A0 0B 62 81 73 00 5A 10 03 EA
10 02 A0 0B 62 81 73 00 5B 10 03 B4
10 02 A0 0B 62 81 73 00 5C 10 03 37
10 02 A0 0B 62 81 73 00 5D 10 03 69
10 02 A0 0B 62 81 73 00 5E 10 03 8B
10 02 A0 0B 62 81 73 00 5F 10 03 D5
10 02 A0 0B 62 81 73 00 60 10 03 2A
10 02 A0 0B 62 81 73 00 61 10 03 74
10 02 A0 0B 62 81 73 00 62 10 03 96
10 02 A0 0B 62 81 73 00 63 10 03 C8
10 02 A0 0B 62 81 73 00 64 10 03 4B
10 02 A0 0B 62 81 73 00 65 10 03 15
10 02 A0 0B 62 81 73 00 66 10 03 F7
10 02 A0 0B 62 81 73 00 67 10 03 A9
10 02 A0 0B 62 81 73 00 68 10 03 E8
10 02 A0 0B 62 81 73 00 69 10 03 B6
10 02 A0 0B 62 81 73 00 6A 10 03 54
10 02 A0 0B 62 81 73 00 6B 10 03 0A
10 02 A0 0B 62 81 73 00 6C 10 03 89
10 02 A0 0B 62 81 73 00 6D 10 03 D7
10 02 A0 0B 62 81 73 00 6E 10 03 35
10 02 A0 0B 62 81 73 00 6F 10 03 6B
10 02 A0 0B 62 81 73 00 70 10 03 B7
10 02 A0 0B 62 81 73 00 71 10 03 E9
10 02 A0 0B 62 81 73 00 72 10 03 0B
10 02 A0 0B 62 81 73 00 73 10 03 55
10 02 A0 0B 62 81 73 00 74 10 03 D6
10 02 A0 0B 62 81 73 00 75 10 03 88
10 02 A0 0B 62 81 73 00 76 10 03 6A
10 02 A0 0B 62 81 73 00 77 10 03 34
10 02 A0 0B 62 81 73 00 78 10 03 75
10 02 A0 0B 62 81 73 00 79 10 03 2B
10 02 A0 0B 62 81 73 00 7A 10 03 C9
10 02 A0 0B 62 81 73 00 7B 10 03 97
10 02 A0 0B 62 81 73 00 7C 10 03 14
10 02 A0 0B 62 81 73 00 7D 10 03 4A
10 02 A0 0B 62 81 73 00 7E 10 03 A8
10 02 A0 0B 62 81 73 00 7F 10 03 F6
10 02 A0 0B 62 81 73 00 80 10 03 C3
10 02 A0 0B 62 81 73 00 81 10 03 9D
10 02 A0 0B 62 81 73 00 82 10 03 7F
10 02 A0 0B 62 81 73 00 83 10 03 21
10 02 A0 0B 62 81 73 00 84 10 03 A2
10 02 A0 0B 62 81 73 00 85 10 03 FC
10 02 A0 0B 62 81 73 00 86 10 03 1E
10 02 A0 0B 62 81 73 00 87 10 03 40
10 02 A0 0B 62 81 73 00 88 10 03 01
10 02 A0 0B 62 81 73 00 89 10 03 5F
10 02 A0 0B 62 81 73 00 8A 10 03 BD
10 02 A0 0B 62 81 73 00 8B 10 03 E3
10 02 A0 0B 62 81 73 00 8C 10 03 60
10 02 A0 0B 62 81 73 00 8D 10 03 3E
10 02 A0 0B 62 81 73 00 8E 10 03 DC
10 02 A0 0B 62 81 73 00 8F 10 03 82
10 02 A0 0B 62 81 73 00 90 10 03 5E
10 02 A0 0B 62 81 73 00 91 10 03 00
10 02 A0 0B 62 81 73 00 92 10 03 E2
10 02 A0 0B 62 81 73 00 93 10 03 BC
10 02 A0 0B 62 81 73 00 94 10 03 3F
10 02 A0 0B 62 81 73 00 95 10 03 61
10 02 A0 0B 62 81 73 00 96 10 03 83
10 02 A0 0B 62 81 73 00 97 10 03 DD
10 02 A0 0B 62 81 73 00 98 10 03 9C
10 02 A0 0B 62 81 73 00 99 10 03 C2
10 02 A0 0B 62 81 73 00 9A 10 03 20
10 02 A0 0B 62 81 73 00 9B 10 03 7E
10 02 A0 0B 62 81 73 00 9C 10 03 FD
10 02 A0 0B 62 81 73 00 9D 10 03 A3
10 02 A0 0B 62 81 73 00 9E 10 03 41
10 02 A0 0B 62 81 73 00 9F 10 03 1F
10 02 A0 0B 62 81 73 00 A0 10 03 E0
10 02 A0 0B 62 81 73 00 A1 10 03 BE
10 02 A0 0B 62 81 73 00 A2 10 03 5C
10 02 A0 0B 62 81 73 00 A3 10 03 02
10 02 A0 0B 62 81 73 00 A4 10 03 81
10 02 A0 0B 62 81 73 00 A5 10 03 DF
10 02 A0 0B 62 81 73 00 A6 10 03 3D
10 02 A0 0B 62 81 73 00 A7 10 03 63
10 02 A0 0B 62 81 73 00 A8 10 03 22
10 02 A0 0B 62 81 73 00 A9 10 03 7C
10 02 A0 0B 62 81 73 00 AA 10 03 9E
10 02 A0 0B 62 81 73 00 AB 10 03 C0
10 02 A0 0B 62 81 73 00 AC 10 03 43
10 02 A0 0B 62 81 73 00 AD 10 03 1D
10 02 A0 0B 62 81 73 00 AE 10 03 FF
10 02 A0 0B 62 81 73 00 AF 10 03 A1
10 02 A0 0B 62 81 73 00 B0 10 03 7D
10 02 A0 0B 62 81 73 00 B1 10 03 23
10 02 A0 0B 62 81 73 00 B2 10 03 C1
10 02 A0 0B 62 81 73 00 B3 10 03 9F
10 02 A0 0B 62 81 73 00 B4 10 03 1C
10 02 A0 0B 62 81 73 00 B5 10 03 42
10 02 A0 0B 62 81 73 00 B6 10 03 A0
10 02 A0 0B 62 81 73 00 B7 10 03 FE
10 02 A0 0B 62 81 73 00 B8 10 03 BF
10 02 A0 0B 62 81 73 00 B9 10 03 E1
10 02 A0 0B 62 81 73 00 BA 10 03 03
10 02 A0 0B 62 81 73 00 BB 10 03 5D
10 02 A0 0B 62 81 73 00 BC 10 03 DE
10 02 A0 0B 62 81 73 00 BD 10 03 80
10 02 A0 0B 62 81 73 00 BE 10 03 62
10 02 A0 0B 62 81 73 00 BF 10 03 3C
10 02 A0 0B 62 81 73 00 C0 10 03 85
10 02 A0 0B 62 81 73 00 C1 10 03 DB
10 02 A0 0B 62 81 73 00 C2 10 03 39
10 02 A0 0B 62 81 73 00 C3 10 03 67
10 02 A0 0B 62 81 73 00 C4 10 03 E4
10 02 A0 0B 62 81 73 00 C5 10 03 BA
10 02 A0 0B 62 81 73 00 C6 10 03 58
10 02 A0 0B 62 81 73 00 C7 10 03 06
10 02 A0 0B 62 81 73 00 C8 10 03 47
10 02 A0 0B 62 81 73 00 C9 10 03 19
10 02 A0 0B 62 81 73 00 CA 10 03 FB
10 02 A0 0B 62 81 73 00 CB 10 03 A5
10 02 A0 0B 62 81 73 00 CC 10 03 26
10 02 A0 0B 62 81 73 00 CD 10 03 78
10 02 A0 0B 62 81 73 00 CE 10 03 9A
10 02 A0 0B 62 81 73 00 CF 10 03 C4
10 02 A0 0B 62 81 73 00 D0 10 03 18
10 02 A0 0B 62 81 73 00 D1 10 03 46
10 02 A0 0B 62 81 73 00 D2 10 03 A4
10 02 A0 0B 62 81 73 00 D3 10 03 FA
10 02 A0 0B 62 81 73 00 D4 10 03 79
10 02 A0 0B 62 81 73 00 D5 10 03 27
10 02 A0 0B 62 81 73 00 D6 10 03 C5
10 02 A0 0B 62 81 73 00 D7 10 03 9B
10 02 A0 0B 62 81 73 00 D8 10 03 DA
10 02 A0 0B 62 81 73 00 D9 10 03 84
10 02 A0 0B 62 81 73 00 DA 10 03 66
10 02 A0 0B 62 81 73 00 DB 10 03 38
10 02 A0 0B 62 81 73 00 DC 10 03 BB
10 02 A0 0B 62 81 73 00 DD 10 03 E5
10 02 A0 0B 62 81 73 00 DE 10 03 07
10 02 A0 0B 62 81 73 00 DF 10 03 59
10 02 A0 0B 62 81 73 00 E0 10 03 A6
10 02 A0 0B 62 81 73 00 E1 10 03 F8
10 02 A0 0B 62 81 73 00 E2 10 03 1A
10 02 A0 0B 62 81 73 00 E3 10 03 44
10 02 A0 0B 62 81 73 00 E4 10 03 C7
10 02 A0 0B 62 81 73 00 E5 10 03 99
10 02 A0 0B 62 81 73 00 E6 10 03 7B
10 02 A0 0B 62 81 73 00 E7 10 03 25
10 02 A0 0B 62 81 73 00 E8 10 03 64
10 02 A0 0B 62 81 73 00 E9 10 03 3A
10 02 A0 0B 62 81 73 00 EA 10 03 D8
10 02 A0 0B 62 81 73 00 EB 10 03 86
10 02 A0 0B 62 81 73 00 EC 10 03 05
10 02 A0 0B 62 81 73 00 ED 10 03 5B
10 02 A0 0B 62 81 73 00 EE 10 03 B9
10 02 A0 0B 62 81 73 00 EF 10 03 E7
10 02 A0 0B 62 81 73 00 F0 10 03 3B
10 02 A0 0B 62 81 73 00 F1 10 03 65
10 02 A0 0B 62 81 73 00 F2 10 03 87
10 02 A0 0B 62 81 73 00 F3 10 03 D9
10 02 A0 0B 62 81 73 00 F4 10 03 5A
10 02 A0 0B 62 81 73 00 F5 10 03 04
10 02 A0 0B 62 81 73 00 F6 10 03 E6
10 02 A0 0B 62 81 73 00 F7 10 03 B8
10 02 A0 0B 62 81 73 00 F8 10 03 F9
10 02 A0 0B 62 81 73 00 F9 10 03 A7
10 02 A0 0B 62 81 73 00 FA 10 03 45
10 02 A0 0B 62 81 73 00 FB 10 03 1B
10 02 A0 0B 62 81 73 00 FC 10 03 98
10 02 A0 0B 62 81 73 00 FD 10 03 C6
10 02 A0 0B 62 81 73 00 FE 10 03 24
10 02 A0 0B 62 81 73 00 FF 10 03 7A
10 02 A0 0B 62 81 73 01 00 10 03 8B

> Was sind das für Geräte die da miteinander sprechen?
Steuerungssoftware und Frequenzumrichter
Gast #2806670
Lesenswert?

Ich hab jetzt noch mal nach ein paar möglichst kurzen Nachrichten 
gesucht, um die Rechnung nachzuvollziehen. Allerdings bekomm ich es 
nicht hin.

10 02 80 00 10 03 2F

10 02 C0 34 01 10 03 1B

10 02 40 34 00 06 10 03 7D
10 02 40 34 00 15 10 03 02
10 02 40 34 00 17 10 03 BE
10 02 40 34 00 18 10 03 FF
10 02 40 34 00 19 10 03 A1

10 02 00 04 02 7D 10 03 0A

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren