www.mikrocontroller.net

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


Autor: Daniel (Gast)
Datum:

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

Autor: A. K. (prx)
Datum:

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

Autor: Daniel (Gast)
Datum:

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

Autor: A. K. (prx)
Datum:

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

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]
  • [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.