
Claude Code Skill für das Reverse Engineering von 32-Bit-Little-Endian-x86-C++-Binärdateien (vtables, RTTI, Wiederherstellung der Vererbung)
Eine Claude Code Skill zum Reverse-Engineering von 32-Bit-Little-Endian-x86-(IA-32-)Binaries und von aus C++ kompiliertem Disassembly. Rekonstruiert Klassenlayouts, Vtables, virtuelle Dispatch-Mechanismen sowie RTTI-/Vererbungshierarchien aus ELF- oder PE-Binaries und deckt die Workflows ab, die auftauchen, sobald man diese Struktur hat: das Wiederherstellen eines benutzerdefinierten Dateiformats, das Zurückverfolgen der indizierten Einträge einer Datendatei auf den Code bzw. die Entität, die sie verwendet, und das Erkennen von Obfuskations- oder Anti-Debugging-Tricks auf dem Weg dorthin.
Für den Einsatz durch Agenten konzipiert: SKILL.md ist der Einstiegspunkt, den ein Agent liest, und ist so geschrieben, dass mechanische, klar spezifizierte Arbeit (ABI-Struct-Layouts, Relocation-Auflösung, Symbol-Demangling) über scripts/recon.py in strukturiertes JSON vorgelagert wird, statt als Denkaufwand für rohes Disassembly verbraucht zu werden. Alles lässt sich notfalls auf manuelle objdump/readelf/nm/GDB-Rezepte zurückführen, falls die ausgefeilteren Werkzeuge (radare2, LIEF, Triton) nicht verfügbar sind.
| Bereich | Automatisiert? | Wo |
|---|---|---|
ELF/Itanium-ABI (GCC/Clang, _Z-mangled): Vtables, RTTI, Mehrfach-/virtuelle Vererbung | Ja -- scripts/recon.py | references/itanium-abi.md |
PE/MSVC-ABI (?-mangled): __thiscall, vftable, Complete Object Locator, vbtable, Scanning von gestripptem .rdata | Manuell / Skriptbasiert | references/msvc-abi.md |
| Automatisierte C++-Klassenwiederherstellung via OOAnalyzer (Pharos / SWI-Prolog) | Ja -- CLI / JSON | references/tool-recipes.md §12 |
| Zuordnung von Datentabellenfeldern und Struct-Wiederherstellung (Stride-Analyse, Displacement-Envelopes, Typinferenz) | Manuelles Rezept (REWARDS/TIE) | references/tool-recipes.md §13 |
| Programmatische Binäranalyse (Immediate-Xref-Sweeper, rekursives Disassembly, Grenzwerterkennung) | Skriptbar (Python + Capstone + LIEF) | references/tool-recipes.md §14 |
| Loader für benutzerdefinierte Binärdateiformate (ohne Beteiligung von C++-Klassen) | Manuelles Rezept | references/tool-recipes.md §9 |
| Wiederherstellung von Ressourcenbindungen: Zuordnung der indizierten Einträge einer Datendatei zum Code bzw. Eigentümer, der sie verwendet | Manuelles Rezept + scripts/backward_slice.py (Triton-basiertes Backward Slicing) | references/tool-recipes.md §10 |
| Dynamische Analyse mit WinDbg/DbgEng (native Windows-PE-Binaries, an die GDB sich nicht anhängen kann) | Manuelles Rezept | references/tool-recipes.md §11 |
| Erkennen von Obfuskation (Junk-Code, opake Prädikate, Xref-Evasion-Tricks) | Manuelles Rezept | references/obfuscation.md |
| Erkennen von Anti-Debugging-Techniken | Manuelles Rezept | references/anti-debugging.md |
objdump, readelf, nm, c++filt, gdb (Standard-binutils/GDB, auf nahezu jeder Linux-Kiste vorhanden).r2pipe sowie pip install lief capstone pwntools -- schaltet die automatisierten/strukturierten Rezepte frei; ohne sie enthält references/tool-recipes.md für alles manuelle Fallbacks.scripts/backward_slice.py: triton-library (das Binäranalyse-Projekt JonathanSalwan/Triton) in einer dedizierten virtuellen Umgebung -- installiere triton-library nicht per pip install in deine reguläre Umgebung, wenn du irgendein ML-Tooling installiert hast (PyTorch, vLLM usw.), da OpenAIs unabhängiges GPU-Kernel-Compiler-Paket ebenfalls als triton importierbar ist und die beiden kollidieren. Siehe AGENTS.md und den Docstring des Skripts selbst.git clone [email protected]:gavmor/x86-cpp-reversing-skill.git ~/.agents/skills/x86-cpp-reversing
ln -s ~/.agents/skills/x86-cpp-reversing ~/.claude/skills/x86-cpp-reversing
Claude Code erkennt es automatisch bei Prompts wie „Was macht diese .exe“, „Rekonstruiere die Klassenhierarchie aus diesem Binary“ oder „Warum stürzt das in einem virtuellen Aufruf ab“ -- siehe die Beschreibung in SKILL.md für die vollständigen Auslösebedingungen.
SKILL.md Einstiegspunkt: Workflow, Triage-Schritte, Anti-Rationalisierungs-Tabelle, Abbruchkriterien
AGENTS.md Anweisungen für Agenten, die die eigenen Inhalte dieses Repos bearbeiten
scripts/recon.py LIEF-basierte statische Triage + Itanium-ABI-Vtable-/RTTI-Wiederherstellung
scripts/backward_slice.py Triton-basiertes Backward Slicing (benötigt eigene venv, siehe oben)
references/itanium-abi.md Details zur ELF/Itanium-ABI
references/msvc-abi.md Details zur PE/MSVC-ABI
references/tool-recipes.md konkrete Befehle, nach Aufgabe (Triage bis §14)
references/obfuscation.md Erkennen absichtlicher Obfuskation
references/anti-debugging.md Erkennen von Anti-Debugging-Techniken
Wenn du die eigenen Inhalte dieser Skill erweiterst (und sie nicht nur gegen ein Ziel-Binary einsetzt), lies zuerst AGENTS.md -- insbesondere dessen Norm, externe Tool-/Bibliotheks-/Paper-Zitate gegen die Primärquelle zu verifizieren, bevor sie in references/*.md landen.