Forum: Mikrocontroller und Digitale Elektronik hex File in C Code umwandeln


von Frank (Gast)


Lesenswert?

Hallöchen,


ich habe aus meinem Mikrokontroller einen Code ausgelesen.
Nun möchte ich diesen Code gerne verstehen/lesen...

Mit einer Hexadezimalen Anzeige brauch ich gar nicht erst anfangen, und 
mit Assembler bringts auch nichts...


Kennt jemand ein Tool, welches Assembler in C Code bzw. Hexcode in C 
Code umwandelt??


mfg Frank

von crazy horse (Gast)


Lesenswert?

in spartanischen Assemblercode geht mit einem Disassembler.
In C kannst du komplett vergessen.

von Frank (Gast)


Lesenswert?

Also muss ich Assembler lernen?

mist...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ich habe ein Omelett. Mit welchem Küchenwerkzeug kann ich daraus die 
Eier wiederherstellen?

von crazy horse (Gast)


Lesenswert?

ne, musst du nicht.
Bei etwas umfanggeicheren Programmen wird das eh nichts.
Denke dran: es fehlen u.a.  alle Marken und Variablennamen. Wenn es 
ursprünglich ein Assemblerprogramm war, kann man da wahrscheinlich noch 
was draus machen, war es ein C-Programm (wovon man inzwischen fast 
automatisch ausgehen kann) ist von der ursprünglichen Struktur nicht 
mehr allzuviel übrig.
Wichtig beim Compilieren ist ja nur, dass die Logik des Programms 
erhalten bleibt - wie das in Maschinensprache übersetzt wird, hängt fast 
auschliesslich vom verwendeten Compiler und dessen 
Optimierungseinstellungen ob.
Also, setz deine Energie in was eigenes, und versuche nicht, in fremder 
Software rumzuhacken :-)

von Johannes M. (johnny-m)


Lesenswert?

Wieder mal das Beispiel mit dem Rührei: Wie willst Du aus dem Rührei die 
ursprünglichen Eier wieder zusammensetzen? Ähnlich ist es, wenn man aus 
Maschinencode oder Assembler (von der Sache her dasselbe) ein 
Hochsprachen-Programm rekonstruieren will. Und wenn man aus hex-Files 
Assembler-Code erzeugt (per Disassembler), dann heißt das noch lange 
nicht, dass der Code dann auch lesbar ist. Schließlich sind da absolut 
keine Bezeichner drin, die der Programmierer zur Verbesserung der 
Lesbarkeit drin hatte, sondern i.d.R. nur Adressen von Speicherzellen 
usw.

von Peter D. (peda)


Lesenswert?

Rufus t. Firefly wrote:
> Ich habe ein Omelett. Mit welchem Küchenwerkzeug kann ich daraus die
> Eier wiederherstellen?

Ich hab sone ähnliche Maschine, vorne stecke ich die Steaks rein und 
hinten läuft dann die Kuh wieder raus.


Peter

von Frank (Gast)


Lesenswert?

der Omlettvergleich hinkt ein wenig...
der Code kann immer wieder vom Controller verarbeitet, das Omlett nur 
einmal gegessen werden ;)

aber ansonsten ganz nett :)

najut bleibts erstmal spannend die ganze sache...


gruß Frank

von mmoedern (Gast)


Lesenswert?

Hallo,

Sinn würde ein Disassambeln in dem Fall machen, bei dem man Statische 
Texte, die im .hex file als Strings (Zeichenketten) angezeigt werden 
durch z.Bsp. Texte aus anderen Sprachen ersetzen will.
Hat man z.Bsp eine Controller mit Display, der nur dänisch spricht, 
könnte man die Texte nach deutsch/englisch übersetzen. Da die Textlänge 
sich je nach Sprache ändert wäre es super die Texte etwas dynamischer 
anzupassen.

Beispiel (jeweils ausgeangstext --> übersetzung)

kein problem, weil gleich lang:
Processor -> Prozessor
etwas länger:
Motherboard -> Hauptplatine
viel länger:
press "enter" to continue -> drücken sie "Enter" um abzubrechen.

gibts da was?
lg
Martin

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mit Übersetzungen wie der hier

> press "enter" to continue -> drücken sie "Enter" um abzubrechen.

kommst Du sicherlich auf einen grünen Zweig. Bei so einer Firma wie 
Nedap.

von Karl H. (kbuchegg)


Lesenswert?

mmoedern wrote:

> gibts da was?

* Disassembler suchen, wenn nötig selber schreiben (da kommst du dann 
auch drauf, dass das nicht unbedingt eindeutig sein muss)
* Programm analysieren und hoffen dass alles letztendlich bei einer 
zentralen Textausgabefunktion mündet.
* Für alle Textstellen im Programm raussuchen, wo und wie sie verwendet 
werden.
* Anpassen
* Beten

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.