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
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.
Zeile 1 und 3 unterscheiden sich nur um ein Bit. Schon wirds kompliziert.
spontan schrieb: > Zeile 1 und 3 unterscheiden sich nur um ein Bit. Na ja. Von B auf C sind 3 Bit. Allerdings .... > Schon wirds kompliziert. ... ich fürchte du hast recht.
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
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.
Wenn du 10 Mal hintereinander das gleiche Paket schickst, ist die Prüfsumme auch 10 Mal die selbe?
asdf schrieb: > Wenn du 10 Mal hintereinander das gleiche Paket schickst, ist die > Prüfsumme auch 10 Mal die selbe? Ja. Und ein Packet das ich letzte Woche mitgeschnitten habe, ist heute auch immer noch gültig und tut das Erwartete.
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.
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
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
dave schrieb: > Aufsummieren (mit modulo 256 etc) Hi, ich hab gerade mal in der Doku eines uralten Projekts gestöbert, in dem ein ähnliches Protokoll verwendet wurde. Dort war die Prüfsumme das Zweierkomplement der modulo 256 berechneten Bytesumme. Schau dir also auch mal solche Varianten an. Viel Erfolg! Grüße Stefan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.