Hallo Liebe Leute Ich brauche wieder Eure Hilfe. Ich habe da ein Zigbee Gerät mit einem MSP430F437 Chip Das hat intern einen EEprom Speicher, dass scheinbar in zwei gleiche Bereiche aufgeteilt ist. (2 gleiche Bänke) Ich möchte gerne in einem dieser Speicherbereiche(Bänke) etwas ändern. Scheinbar ist das aber mit einer Checksumme gesichert. (letzten zwei Byte) Wenn ich in diesem Bereich etwas ändere (ohne die Cecksumme zu ändern) geht das Ding auf Systemtest. Der Ganze Speicher schaut so aus: @00001000 00 D2 46 97 76 7E 05 46 BB D2 49 46 63 7E 14 97 94 00 12 44 44 00 01 43 53 DE AD BE EF 60 0D F0 0D DE AD CA FE F0 0D CA FE A6 4B D1 EC 9F 98 C8 69 00 00 49 D4 00 00 00 01 FF FF 00 1E 84 80 FF FF FF FF FF FF 32 30 30 36 2D 30 31 2D 30 31 20 30 30 3A 30 30 3A 30 30 00 07 0D 00 00 00 01 00 00 FF FF FF FF 08 0C 03 84 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 3D 94 55 D2 46 97 76 7E 05 46 BB D2 49 46 63 7E 14 97 94 00 12 44 44 00 01 43 53 DE AD BE EF 60 0D F0 0D DE AD CA FE F0 0D CA FE A6 4B D1 EC 9F 98 C8 69 00 00 49 D4 00 00 00 01 FF FF 00 1E 84 80 FF FF FF FF FF FF 32 30 30 36 2D 30 31 2D 30 31 20 30 30 3A 30 30 3A 30 30 00 07 0D 00 00 00 01 00 00 FF FF FF FF 08 0C 03 84 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 3D 94 Ab 0x1080 scheint es der untere Speicherbereich zu sein. (beide sind von den Daten her gleich, außer das erste Byte) Checksumme scheint hier die "3D 94" (auf 0x10FE ) zu sein. Gleich wie auf 0x107E Also Bank 1: (oben) 00 D2 46 97 76 7E 05 46 BB D2 49 46 63 7E 14 97 94 00 12 44 44 00 01 43 53 DE AD BE EF 60 0D F0 0D DE AD CA FE F0 0D CA FE A6 4B D1 EC 9F 98 C8 69 00 00 49 D4 00 00 00 01 FF FF 00 1E 84 80 FF FF FF FF FF FF 32 30 30 36 2D 30 31 2D 30 31 20 30 30 3A 30 30 3A 30 30 00 07 0D 00 00 00 01 00 00 FF FF FF FF 08 0C 03 84 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 3D 94 und untere Bank 2 55 D2 46 97 76 7E 05 46 BB D2 49 46 63 7E 14 97 94 00 12 44 44 00 01 43 53 DE AD BE EF 60 0D F0 0D DE AD CA FE F0 0D CA FE A6 4B D1 EC 9F 98 C8 69 00 00 49 D4 00 00 00 01 FF FF 00 1E 84 80 FF FF FF FF FF FF 32 30 30 36 2D 30 31 2D 30 31 20 30 30 3A 30 30 3A 30 30 00 07 0D 00 00 00 01 00 00 FF FF FF FF 08 0C 03 84 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 3D 94 Die 3D 94 am Ende scheint die Checksumme zu sein. Leider finde ich nicht raus, wie diese Checksumme errechnet wird. Habe schon alle Online Kalkulatoren versucht, aber kein Ergebnis passt. Eins habe ich rausgefunden, dass wenn ich einen Wert um 1 erhöhe, geht die Checksumme auch um 1 rauf... Habe auch probiert das erste Byte pro Bank weg zu lassen.. Weill 00 und 55 ja sehr unterschiedlich sind und vielleicht nicht zur Checksummenberechung verwenden werden ? Habe jetzt auch probiert die Adressen mit in die Berechnung aufzunehmen. Geht aber auch nicht :-( Habt Ihr vielleicht einen Tip, wie ich die Checksumme neu berechnen kann ? Bitte bitte um Hilfe ! Danke für Eure Antworten :-) l.G. Robert
XOR auch schon versucht? Notfalls duchprobieren gibt ja nur 255 Möglichkeiten.
Das Tool hier https://toolslick.com/math/bitwise/xor-calculator spuckt bei Intermediate Result 2 94 als checksum aus. versuch wärs Wert.
Robert P. schrieb: > Eins habe ich rausgefunden, dass wenn ich einen Wert um 1 erhöhe, geht > die > Checksumme auch um 1 rauf... Na dann wird die Checksumme wohl ganz einfach eine Summe aller Bytes mod 0x10000 sein.
Lukas schrieb: > spuckt bei Intermediate Result 2 94 als checksum aus. Sorry war totaler blödsinn ;-)
Robert P. schrieb: > ich einen Wert um 1 erhöhe, geht die > Checksumme auch um 1 rauf... Na da wird es schon etwas mehr tests benötigen. Ist egal welches byte um 1 erhöht wird, und wenn es um 2 erhoht wird, und was passiert nachdem 256 bytes um 1 erhöht wurden, ... Ja, es gibt die simple summe, byteweise oder wortweise, es gibt summe von wert xor adresse...
Michael B. schrieb: > Robert P. schrieb: >> ich einen Wert um 1 erhöhe, geht die >> Checksumme auch um 1 rauf... > > Na da wird es schon etwas mehr tests benötigen Also entweder ist die Aussage des UP wahr, dann braucht man nur noch ggf. einen Startwert finden. Oder sie ist falsch, dann muss man weitersuchen.
es könnte auch evtl. mit "Fletcher’s Checksum" berechnet sein....
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.