Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
retrokit — Headless-Ghidra-Toolkit für das Reverse Engineering von 32-Bit-DOS- und Win32-Spielen (1993–2010): eigener LE/LX-Loader, Watcom-Aufrufkonventionen, Bibliothekssignaturen, MCP-Server | Kitploit
Tools/GitHubGitHub/nemo22/retrokit
Statische AnalyseReverse EngineeringScripting & AutomatisierungMalware-AnalyseDienstprogramme & FrameworksBinäranalyseKI-gestütztes Reverse EngineeringKI-Sicherheit
GitHubnemo22/retrokit

retrokit

Headless-Ghidra-Toolkit für das Reverse Engineering von 32-Bit-DOS- und Win32-Spielen (1993–2010): eigener LE/LX-Loader, Watcom-Aufrufkonventionen, Bibliothekssignaturen, MCP-Server

1613vor 22h 14mNoch nicht geprüft
Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

retro-kit – Reverse Engineering alter Spiele (headless Ghidra)

Ghidra allein vs. retro-kit: DirectDraw-Aufrufe über COM-Vtables

Ein Toolkit zum Dekompilieren von 32-Bit-Spielen aus der Zeit von etwa 1993–2010 mit headless Ghidra:

  • DOS LE/LX (DOS/4GW, DOS/32A, PMODE/W, CauseWay, DOS/4G-Bind; auch OS/2 LX und VxD) erstellt mit Watcom C/C++ – mit eigenem LE/LX-Loader für Ghidra und Watcom-Compiler-Specs für beide Aufrufkonventionen.
  • Win32 PE (typischerweise MSVC): DirectX-Aufrufe über COM-Vtables mit ihren Methoden- namen, Miles/Smacker/Bink/FMOD/BASS-Importe typisiert, C++-Klassen aus MSVC-RTTI, die Compiler-Version aus dem Rich-Header.

Die Ausgabe ist ein Workspace mit einer großen .c-Datei, die jede Funktion enthält, plus Indizes (Funktionen, Aufrufgraph, Strings, Fixups/Zeigertabellen, Importe), die du greppen und zwischen Personen oder KI-Agenten aufteilen kannst. Während der Analyse gefundene Namen gehen zurück in Ghidra und der Export wird neu generiert.

Installation

Voraussetzungen: Ghidra 12.x (entpackt), ein JDK 21+ (JAVA_HOME), Python 3.10+.

pipx install git+https://github.com/nemo22/retrokit   # or from a checkout: pip install .  (or python -m retrokit)
retrokit doctor                                    # checks Python, Ghidra, Java, loader, cspecs
retrokit install-loader                            # once per Ghidra install (DOS LE/LX only)

Ghidra wird über --ghidra DIR, $GHIDRA_INSTALL_DIR oder ein ghidra/ghidra_*-Verzeichnis neben dem Spiel oder dem Kit gefunden. install-loader kompiliert den Loader mit javac gegen diese Ghidra- Installation (kein Gradle), installiert ihn in Ghidra/Extensions und registriert die Watcom-Compiler-Spezifikationen; führe es erneut aus, nachdem Ghidra aktualisiert wurde (doctor sagt dir, wann).

Verwendung

retrokit info GAME.EXE              # format, DOS extender, compiler, calling convention
retrokit analyze GAME.EXE           # full pipeline -> GAME_analysis/  (-o DIR to choose)
retrokit show GAME_analysis FUN_00012345 main
retrokit tables GAME_analysis       # function-pointer and string tables (from fixups)
retrokit names GAME_analysis        # apply notes/names_*.csv, re-export
retrokit reexport GAME_analysis     # re-run the fix-up passes + export without re-importing

analyze erkennt das Format, den Loader und – bei Watcom – die Aufrufkonvention (--cspec watcom|watcomreg überschreibt sie) und speichert sie in GAME_analysis/retrokit.json; spätere Befehle benötigen nur den Workspace. Ein Workspace:

GAME_analysis/
  retrokit.json        how the binary was analysed
  decomp/              <exe>_decompiled.c, functions.csv (addr,name,size,callers,callees,cc,signature),
                       calls.txt, strings.txt, data_symbols.txt, memory_blocks.txt,
                       fixups.txt (source -> target of every pointer: the key to pointer tables
                       and to which function uses which string), imports.txt (PE)
  notes/               findings, names_<topic>.csv proposals
  ghidra_project/      the Ghidra project (open it in the Ghidra GUI too)
  logs/

KI-Agenten: retrokit mcp GAME_analysis ist ein MCP-Server (stdio, keine zusätzlichen Pakete) über dem Workspace: Funktionen, dekompilierter Code, Aufrufgraph, Querverweise, Strings, Zeiger- tabellen, Disassembly und Bytes, Bibliotheken; er zeichnet Namensvorschläge und Notizen auf und kann mit den angewendeten Namen erneut exportieren (auf Anfrage, im Hintergrund). Claude Code:

claude mcp add retrokit -- retrokit mcp /path/to/GAME_analysis

Einrichtung für andere Clients, jedes Tool und wie ein Agent arbeiten sollte: docs/MCP.md; eine Kurzfassung für Agenten in AGENTS.md.

Namen: Vorschläge nach notes/names_<topic>.csv schreiben (addr,name,confidence,comment, Konfidenz V verifiziert oder G Vermutung); retrokit names WS benennt Funktionen/Labels um (V gewinnt über G, Kollisionen erhalten _<addr>) und exportiert neu.

Was die Pipeline macht:

  • Bibliotheken (beide Formate): retrokit libs (auch Teil von info und analyze -> notes/libraries.md) erkennt ~20 Bibliotheken der Zeit - Miles/AIL, HMI SOS, DIGPAK, Smacker, Bink, FMOD, BASS, DirectX, zlib, libjpeg, libpng, PKWARE DCL, Lua, ... - anhand von Strings, Imports und Datendateien, mit Version, Hinweisen zu ihren Formaten und Portierungshinweisen. Bibliothekscode wird per Signatur gefunden (mitgeliefert: Watcom C/C++-Laufzeit, Mathe- und C++-Bibliotheken von Open Watcom, zlib 1.0.4-1.2.3, libjpeg 6b; retrokit sigs build erzeugt sie aus Bibliotheken, die Sie besitzen, sigs learn aus Funktionen, die Sie identifiziert haben) - exakte Treffer zuerst, dann ähnlicher Code aus anderen Compilerversionen - benannt und typisiert aus retrokit/knowledge/*.h.
  • LE/LX: Import mit dem LE-Loader und der Watcom-cspec, Funktionen an den Zielen von Fixups in Code (Watcom-Spiele rufen einen Großteil ihrer Logik über Zeigertabellen auf), switch-Sprungtabellen innerhalb ihrer Funktionen belassen, falsche "no return"-Flags rückgängig gemacht, kurze Strings definiert und String- Literale als "text" angezeigt, Parameteranzahlen aus den ADD ESP,n-Bereinigungen an Aufrufstellen, Prototypen callee-first wiederhergestellt, Export.
  • PE: Import mit Ghidras PE-Loader und Auto-Analyse, dann Funktionen an Zeigertabellen- Zielen und nach Padding, bis keine neuen mehr auftauchen, dieselben String- / Parameter- / Prototyp- Durchläufe, Export.

Weitere Befehle: classes (MSVC-C++-Klassen aus RTTI), libs (verwendete Bibliotheken), convert (XMIDI/HMI/HMP -> MIDI, VOC -> WAV, Smacker/Bink/FLIC -> MP4, nach Inhalt), sigs match|build|learn (Bibliothekssignaturen, siehe docs/WORKFLOW.md), entries (PE: Codeadressen ohne Funktion), modules --rules FILE (PE: Funktionen → ursprüngliche Quelldateien über Assert-Pfade), strings EXE OUT (PE-String-Inventar ohne Ghidra), match (Namen auf eine verwandte EXE übertragen: Sequel, Add-on, andere Version), le EXE info|dump|rec|s16|s32 (Tabellen aus einer LE an Ghidra-Adressen lesen), rnc (RNC ProPack), flic info|png|video (Autodesk FLI/FLC). retrokit COMMAND --help für Optionen.

Das detaillierte Vorgehen, was zu erwarten ist und die bekannten Fallstricke stehen in docs/WORKFLOW.md; der MCP-Server in docs/MCP.md; Aufgaben-Templates für KI-Agenten in docs/AGENT_PROMPTS.md; geplante Arbeiten in docs/ROADMAP.md; Pflege und Release in docs/MAINTAINING.md.

Layout

retrokit/               Python package (CLI: retrokit/cli.py)
  ghidra_scripts/       headless Ghidra scripts used by the pipelines
  tools/                standalone Python tools behind the CLI commands
  le-loader/            LE/LX loader for Ghidra (Java) + Watcom compiler specs (data/languages/)
  sigs/                 library signatures (Open Watcom C run-time)
  knowledge/            libraries.json (library catalog), library prototypes as C headers
scripts/                build_sigs.py: rebuilds the shipped signatures
tests/                  synthetic test programs, scoring against the linker map, baseline
docs/                   WORKFLOW, AGENT_PROMPTS, ROADMAP
Tool herunterladen