Forum: FPGA, VHDL & Co. CRC Prüfsummenproblem


von Stefan Thomanek (Gast)


Lesenswert?

Hallo, ich hoffe ich bin im Richtigen Forum gelandet...

Ich versuche seit ein paar Tagen bei einem Gerät die Firmware so zu 
bearbeiten, das ich fest in der Firmware eingebaute MasterPasswort 
verändern kann.

In dem Gerät befindet sich ein "Xilinx Spartan XCS200", sollte das 
Relevant sein. Die Firmware wird Seriell über ZModem übertragen.

Ich habe die Position des Passworts bereits ausfindig gemacht und 
verändert, nur wirft mich der FW Loader der im Gerät die FW annimmt und 
in den Flash schreibt mit einem CRC Error raus wenn diese Stelle 
übertragen wird.

Die komplette Firmware ist scheinbar in Blöcke aufgeteilt, ein block 
sieht so aus:
0x5A    Z
0x32    2
0x44    D
0x99    ?
0xXX    Fortlaufend von 0x00 bis 0xFF, erhöht sich alle 4 Blöcke um 1
0xXX    Durchläuft folgende Werte: 0x00 0x40 0x80 0xC0 (0,64,128,192,..)
<Data>  64 Byte Daten
0xXX    Die Prüfsumme die ich benötige
0x0D    \r ?
0x0A    \n ?

Das zieht sich komplett durch das gesammte image.

Jetzt die Frage(n):
Kennt das Format jemand, wenn ja wie heist das?
Gibt es Tools dafür?
Kann man den CRC wert selbst errechnen wenn ja wie?

Habe bereits CRC8 auf den <Data> teil getestet, kommen aber andere Werte 
heraus.


Hoffe jemand kann mir hier Weiterhelfen.
Danke :)

von Rick Dangerus (Gast)


Lesenswert?

Hast Du Dich schon mal näher mit CRC befasst? Klingt irgendwie nicht so. 
Mach Dich mal zu Stichwort Generatorpolynom schlau.

Hast Du den Hersteller des Gerätes schon mal mit Deinen Wünschen 
konfrontiert? Was sagt der dazu?

Rick

von Stefan Thomanek (Gast)


Lesenswert?

Nicht direkt, CRC war für mich bisher immer CRC.
Den Hersteller Fragen is so eine Sache für sich. Das Problem liegt 
darin, das dieser auf seinen Versionen sitzt und sich mehr oder weniger 
weigert für unseren Fall eine angepasste Version mit einem etwas 
komplexeren Passwort zu erstellen als momentan drin ist. (1234 als 
masterpasswort ist halt nich wirklich soo toll...)

Wenn ich den Beitrag auf Wikipedia richtig verstehe, müsste ich also das 
GeneratorPolynom herausfinden, sofern sich das errechnen lässt..?
(http://de.wikipedia.org/wiki/Cyclic_Redundancy_Check)

von Rick Dangerus (Gast)


Lesenswert?

Sieht ganz danach aus. Dann fehlt Dir noch der Algorithmus CRC-8, 
CRC-16, invertiert oder normal... Außerdem müßtest Du noch die 
resultierende Prüfsumme wissen. Die könnte am Ende Deiner Firmware 
stehen.

Rick

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
Noch kein Account? Hier anmelden.