www.mikrocontroller.net

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


Autor: Stefan Thomanek (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Thomanek (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.