2009-11-13 6 views
6

Ich kenne otool -tv, aber ich würde viel lieber verwenden die Intel Syntax statt AT & Ts, vor allem leicht in einem Buch zu folgen und nicht müssen Schau über Tausende von % 's und $' s.Disassemble in x86_64 auf OSX10.6 (Aber mit _Intel_ Syntax)

Ich würde auch alle Tipps zu schätzen, wo ich gdb 's Config-Datei finden könnte.

EDIT: Ich habe vergessen: Ich habe einen 64-Bit-Prozessor, aber fragte mich, ob es möglich wäre, auch in 32-Bit-Assembly zu zerlegen? Nicht nur das, aber funktioniert OSX gdblist Befehl anders als die Standard GNU Version?

Vielen Dank!

(Auch, wenn Sie eine Idee haben, wo ich ein wenig Disassembler von C finden könnte -> MIPS, das wäre sehr Spaß zu spielen, aber nicht notwendig.!)

Antwort

8

Um Ihre zweite Frage zu beantworten, wenn der Code in eine fette binäre mit 64-Bit und 32-Bit kompiliert wurde, können Sie otool -arch i386 -tv verwenden, um das 32-Bit-Segment der Binärdatei zu zerlegen; otool -arch x86_64 -tv gibt Ihnen den 64-Bit-Anteil (bei SnowLeopard ist dies auch das Standardverhalten, wenn kein -arch Flag übergeben wird).

Beachten Sie auch, dass während otool die Intel-Syntax nicht unterstützt, gdb (set disassembly-flavor intel) und XCode (Einstellungen -> Debugging -> Disassembly-Stil) tun.

+0

Danke! Ich werde damit gehen, obwohl ich immer noch neugierig auf MIPS bin :) Schade um 'Otool' nicht unterstützt Intels Syntax. – Isaac

+0

Wenn es ein Hindernis für Sie ist, sollten Sie einen Fehler melden, in dem Sie aufgefordert werden, die Funktion hinzuzufügen (Sie müssen ein ADC-Konto einrichten, wenn Sie noch kein ADC-Konto haben): developer.apple.com/BugReporter –

1

Sie können A2I verwenden zu übersetzen von AT & T Intel Syntax: http://membres.lycos.fr/placr/a2i.html

+0

Das ist nicht ganz das, wonach ich suche - die Syntax ist einfach zu lesen. Es geht eher darum, mein Leben einfacher zu machen; Die Verwendung von A2I fügt Schritte hinzu, die ich lieber nicht für wenig Belohnung wählen würde. Trotzdem danke! – Isaac

+1

Dieser Link ist jetzt unterbrochen. –

1

mit Objdump können Sie mit -d -M intel, zerlegen und scheinbar -m kann verwendet werden, um die Architektur zu spezifizieren.

+0

Ich verstehe das - leider funktioniert objdump nicht/kommt nicht mit OSX. – Isaac

+1

Ich glaube, Sie können objdump auf OSX, wenn Sie gdb binutils mit Macports oder Homebrew installieren. Ich hatte es an einem Punkt, aber ich zog es vor, Otool zu verwenden, da es tatsächlich ein OSX-Werkzeug ist. Ich stimme zu, würde die Intel-Syntax in otool selbst mögen. – Jarsen

+0

Wenn Sie binutils mit homebrew installieren, lautet der Name der ausführbaren Datei gobjdump. Es ist ein bisschen flockig und stürzt nach dem Generieren der Ausgabe ab, aber ... es ist besser als nichts! –

0

Für GDB, in Ihrer .gdbinit Datei hinzufügen:

Satz Demontage-Flavour Intel

dann wird es die Standard-Syntax für GDB sein.

Verwandte Themen