Forum: PC Hard- und Software Mit objdump -d assembler extrahieren


von Daniel (Gast)


Lesenswert?

Hallo,

ich möchte mit objdump Assembler rückgewinnen und zwar
nicht unbedingt in der bestlesbaren Form, dafür aber soll dieser
nach dem Einfügen von zusätzlichen Zeilen wieder assemblierbar sein.

Ich will zum Debuggen an eine Eintrittstelle in der Funktion
den Code einfügen, der mir einen Pin setzt. Ich kann mir
vorstellen, dass ich der erste Mensch auf der Welt bin, der
dieses Feature haben will.

Danke im Voraus.

Gruss, Daniel

von (prx) A. K. (prx)


Lesenswert?

Du wärst jedenfalls der erste Mensch, bei dem das funktioniert. Es 
stehen dermassen viele Adresskonstanten im Code drin, dass eine 
Verschiebung absolut tödlich ist.

Das läuft anders, wenn auch wenig elegant: Dort wo der Patch rein soll 
landet statt des vorhandenen Codes ein manuell eingefügter Sprungbefehl 
in einem bisher freien Bereich vom Flash, dort wird der ersetzte Befehl 
und das neu hinzukommende plaziert und anschliessen springt man wieder 
zurück.

von Daniel (Gast)


Lesenswert?

Ich hab mich etwas verschrieben in dem ersten Post: ich kann mir
nicht vorstellen, dass ich der erste Mensch bin der so etwas braucht 
... :)

>Das läuft anders, wenn auch wenig elegant: Dort wo der Patch rein soll
>landet statt des vorhandenen Codes ein manuell eingefügter Sprungbefehl
>in einem bisher freien Bereich vom Flash, dort wird der ersetzte Befehl
>und das neu hinzukommende plaziert und anschliessen springt man wieder
>zurück.

Mmm, das läuft auf die Hexeditorfuchtelei hinaus. Die vielen 
Adresskonstanten soll ja gerade ein Programm korrekt händeln.
Ein kurzes Drüberschauen über die Optionen von objdump und Ausprobieren
der selbigen hat mir zumindest Hoffnung gemacht, dass sowas möglich ist.

Grüsse

von (prx) A. K. (prx)


Lesenswert?

Man kann Disassembler so schreiben, dass die viele solche Konstanten in 
Symbole auflösen. Trotzdem muss man dann immer noch den gesamten Code 
manuell durchgehen, den Kram sorgfältig kontrollieren und vieles 
reparieren bzw. dem interaktiv arbeitenden Disassembler manuell auf die 
Sprünge helfen. Sowas verwendet man im Rahmen von Reverse Engineering. 
Aber objdump gehört nicht zu diesen Programmen.

Wenn es nur um einige wenige Befehle geht, dann ist die Hexfuchtelei der 
m.W. einfachste Weg.

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.