2012-11-20 15 views
7

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

9

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.

+3

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. –

+0

Einverstanden. Das Tool soll diese wertvollen Minuten ergänzen und retten, wenn Sie einen engen Zeitplan einhalten. – tecMav

+0

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. –

7

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.

http://www.onlinedisassembler.com

+0

" Maximale Uploadgröße ist 256 KB ":( – m0skit0

2

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