Ghidra ·
IDA Pro ·
Radare2 ·
GDB ·
Disassembler ·
Debugger ·
Binary Analysis
Reverse Engineering umfasst die Analyse von Binärdateien, um deren Funktionsweise zu verstehen – für Malware-Analyse, Sicherheitsforschung und Legacy-Systeme. Diese Übersicht deckt die wichtigsten Werkzeuge und Techniken ab.
IDA Pro ist der führende interaktive Disassembler mit einem leistungsstarken Decompiler (Hex-Rays). Er unterstützt zahlreiche Prozessorarchitekturen und Dateiformate.
| Funktion | Beschreibung | Tastenkürzel |
|---|---|---|
| Disassemblierung | Code in Assembler-Instruktionen zerlegen | - |
| Hex-Rays Decompiler | Assembler in C-ähnlichen Pseudocode umwandeln | F5 |
| Cross-References | Verweise auf Funktionen/Daten anzeigen | Ctrl+X |
| Grafik-Ansicht | Kontrollflussgraf für Funktionen | Space |
| Renaming | Variablen/Funktionen umbenennen | N |
| Comments | Kommentare hinzufügen | ; |
| String-Liste | Alle Strings in der Datei anzeigen | Shift+F12 |
Ghidra ist ein leistungsstarker Open-Source-Disassembler und Decompiler, der von der NSA entwickelt wurde. Er ist eine ernsthafte Alternative zu IDA Pro und unterstützt viele Architekturen.
| Funktion | Beschreibung | Tastenkürzel |
|---|---|---|
| Disassemblierung | Code in Assembler zerlegen | - |
| Decompiler | C-ähnlicher Pseudocode | - |
| Function Graph | Kontrollflussgraf | - |
| Data Type Manager | Benutzerdefinierte Datentypen | - |
| Skript-Engine | Python/Java-Skripte | - |
| Version Tracking | Unterschiede zwischen Versionen | - |
Radare2 ist ein leistungsstarkes Kommandozeilen-Framework für Reverse Engineering. Es wird häufig in der Malware-Analyse und für automatisierte Workflows verwendet. Cutter ist die grafische Oberfläche.
| Befehl | Beschreibung |
|---|---|
| r2 -A file | Datei öffnen und analysieren |
| afl | Alle Funktionen auflisten |
| Disassemblierung der aktuellen Funktion | |
| s address | Zu Adresse springen |
| iz | Strings anzeigen |
| is | Symbole anzeigen |
| iI | Binary-Informationen (Header, Architektur) |
| wx | Hex-Werte schreiben |
| db address | Breakpoint setzen |
| dc | Debugger starten (continue) |
| V! | Grafische Ansicht (Visual Mode) |
V!) bietet eine interaktive, IDA-ähnliche Ansicht. Cutter bietet eine GUI mit modernem Look-and-Feel.
GDB (GNU Debugger) ist der Standard-Debugger für Linux. Mit Erweiterungen wie gef, pwndbg oder peda wird er zu einem leistungsstarken RE-Tool.
| Befehl | Beschreibung |
|---|---|
| b <addr> | Breakpoint setzen (z.B. b main, b *0x401000) |
| r | Programm starten (run) |
| c | Weiterlaufen (continue) |
| si | Step Instruction (eine Instruktion) |
| ni | Next Instruction (über Call hinweg) |
| x/<n>i <addr> | Disassemblierung (x/20i $rip) |
| x/<n>x <addr> | Hex-Dump (x/16xw $rsp) |
| info reg | Register anzeigen |
| info stack | Stack-Frame anzeigen |
| disas <addr> | Disassemblierung ab Adresse |
| set <reg>=<val> | Register-Wert setzen |
| q | Beenden (quit) |
Kommandozeilen-Tools sind unverzichtbar für die schnelle Analyse von Binärdateien – sie liefern erste Einblicke ohne große GUI-Tools.
| Tool | Befehl | Beschreibung |
|---|---|---|
| objdump | objdump -d -M intel binary | Disassemblierung (Intel-Syntax) |
| objdump | objdump -t binary | Symboltabelle anzeigen |
| readelf | readelf -h binary | ELF-Header |
| readelf | readelf -S binary | Section-Header |
| strings | strings binary | Lesbare Strings extrahieren |
| strings | strings -n 8 binary | Strings ab 8 Zeichen |
| xxd | xxd binary | Hex-Dump (xxxd | less) |
| xxd | xxd -r -p hex.txt binary | Hex in Binary umwandeln |
| ndisasm | ndisasm -b 64 binary | Intel-Disassembler (64-Bit) |
| file | file binary | Dateityp erkennen |
| nm | nm binary | Symbole anzeigen |
objdump -d -M intel zeigt Assembler im Intel-Format (bekannter als AT&T). strings ist oft der erste Schritt zur Identifikation von interessanten Inhalten.
Binary Analysis umfasst das Verständnis von Dateiformaten (PE, ELF, Mach-O) und deren Struktur – essenziell für jede Art von Reverse Engineering.
| Format | Tool | Beschreibung |
|---|---|---|
| PE | pefile (Python) | PE-Dateien parsen |
| PE | LordPE / PE-bear | PE-Editor (Windows) |
| ELF | readelf, objdump | ELF-Header und Sektionen |
| ELF | elfparser (Python) | ELF-Dateien parsen |
| Mach-O | otool (macOS) | Mach-O-Header anzeigen |
| Mach-O | MachOView | GUI für Mach-O-Dateien |
| All | Detect It Easy (DIE) | Dateityp-Erkennung |
| All | binwalk | Firmware / Embedded-Analyse |
pefile (Python) detaillierte PE-Informationen. Für ELF sind readelf -a und objdump -x die ersten Anlaufstellen.
IDA
Ghidra
r2
GDB
objdump
strings
gef
gdb ./binary ·
objdump -d -M intel binary ·
strings binary