Gibt es ein Tool, das analysiert und hervorheben kann, was jede Codezeile bedeutet. Ich bin nicht auf der Suche nach einem Decompiler wie Hex-Rays Decompiler. Ich suche nach einem einfachen Werkzeug, das beim Lesen des Assembler-Codes hilfreich sein soll.ARM Disassembly
Antwort
Wie wäre es mit objdump?
$ cat add.c
int add(int a, int b) {
return a + b;
}
$ arm-linux-gnueabihf-gcc -c -O2 add.c
$ arm-linux-gnueabihf-objdump -d add.o
add.o: file format elf32-littlearm
Disassembly of section .text:
00000000 <add>:
0: 1840 adds r0, r0, r1
2: 4770 bx lr
Es kann Quellcode bereitstellen als auch, wenn Ihre Objektdatei enthält Debug-Informationen Mischen (gcc -g) und wenn Sie -S liefern objdump.
Was ist mit diesem kostenlosen Programm :: http://pel.hu/armu/
Websense blockiert die URL: "- ( – tecMav
Die Online-Disassembler (ODA) ARM und eine Vielzahl von anderen Architekturen unterstützt. Sie können binäre Daten in der Live-Ansicht eingeben und beobachten, wie die Disassemblierung während der Eingabe angezeigt wird, oder Sie können eine zu disassemblierende Datei hochladen. Ein nettes Feature dieser Site ist, dass Sie den Link zur Disassemblierung mit anderen teilen können.
" Maximale Uploadgröße ist 256 KB ":( – m0skit0
Wie bereits erwähnt Sie in Ihrer Frage, IDA Pro kann auch Demontage ARM.
Außerdem haben Sie versucht ARM DS-5 Development Studio?
Einige Funktionen sind mehr Hardware-bezogen, aber IDE ist sehr schön (Eclipse).
Features:
- Debug-Unterstützung für Bare-Metal, RTOS und Linux und Android-Plattformen
- Non-intrusive zyklusgenaue ETM und PTM Anweisung trace
- Nahtlose Unterstützung für SMP-Systeme
- Automatisierte Debugsitzungen für schnellere Debug-Zyklen
- ITM- und STM-Instrumentierungsverfolgung
- Unterstützung für Pre-Con figürliche und benutzerdefinierte Plattformen
Im Handbuch sagt, es enthält:
- DS-5-Debugger, die alle Phasen der Produktentwicklung
- ARM Compiler 5.04 für eingebetteten und Bare-Metal-Code
- Linaro GCC Toolchain 2013.03 für Linux-Anwendungen und Linux-Kernel
- ARM Streamline ™ Performance Analyzer für verschiedene Betriebssysteme, einschließlich Linux, Android und RTX
- Eclipse-IDE, Quellcode-Editor und Projektmanager
- Fest Virtuelle Plattformen (FVP) für Cortex ™ A8 und Quad-Core-Cortex-A9-Prozessoren
- Beispielprojekte und Dokumentation
- 1. qt Schöpfer unerwünschte Disassembly
- 2. Was bedeuten diese Anweisungen? (Disassembly)
- 3. Beispiel C-Code, der in Disassembly flüchtige zeigt?
- 4. Visual Studio. Wie benutzt man die Suche im Disassembly-Fenster?
- 5. In einen P/Invoke-Aufruf in Disassembly-Ansicht treten
- 6. Verwenden von Objdump für ARM-Architektur: Zerlegen zu ARM
- 7. qemu-arm kann nicht laufen Arm kompiliert binär
- 8. arm-linux-gnueabi toolchain vs arm-linux-androidabi toolchain.
- 9. Ausführen von ARM-Binärdateien für Android unter Linux ARM
- 10. Kann ich Arm-Eabi mit Arm-Elfe mischen?
- 11. Unterschied zwischen arm-eabi arm-gnueabi und gnueabi-hf compilern
- 12. Kreuzkompilierung für Arm
- 13. ARM-Entwicklung unter Linux
- 14. ARM Assembly - Branch Instruction
- 15. ARM-Prozessorfehler in Genymotion
- 16. Endianness-Konvertierung in ARM
- 17. ARM Assembly "rene" Anweisung
- 18. Schräge Arm LSL Instruction
- 19. PRNG für ARM-Montage?
- 20. Proprietäre ARM ELF binär
- 21. ARM Simulator unter Windows
- 22. arm neon vst1.32 segfault
- 23. Systemaufruf in ARM
- 24. Atomare Operationen in ARM
- 25. Android CPU ARM Architekturen
- 26. Hibernate Linux auf ARM
- 27. ARM NEON Vektorisierung Ausfall
- 28. ARM gcc "leere Deklaration"
- 29. Cross-compile python arm
- 30. Clang Cross Kompilieren für ARM?
Die ARM ARM (ARM Architekturreferenzhandbuch) für die spezifische Architektur (oder erhalten Sie eine neuere, da sie Architekturunterschiede spezifizieren) Details, was jede Anweisung bedeutet. Objdump + ARM ARM ist alles was Sie brauchen. –
Einverstanden. Das Tool soll diese wertvollen Minuten ergänzen und retten, wenn Sie einen engen Zeitplan einhalten. – tecMav
der Befehlssatz ist nicht kompliziert, mit einem Blick durch das Dokument, Sie müssen normalerweise nicht zurückgehen. Sie hätten den Befehlssatz in der Zeit, die es brauchte, um nach einer Antwort auf diese Frage zu suchen, gelernt haben können. –