Mit objdump -d assembler extrahieren

Gast #1420520
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
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.
Gast
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
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.