Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
retrokit — Набор инструментов Headless-Ghidra для реверс-инжиниринга 32-битных DOS и Win32 игр (1993-2010): собственный загрузчик LE/LX, соглашения о вызовах Watcom, сигнатуры библиотек, сервер MCP | Kitploit
Инструменты/GitHubGitHub/nemo22/retrokit
Статический анализОбратная инженерияСкриптинг и автоматизацияАнализ вредоносных программУтилиты и фреймворкиАнализ Бинарных ФайловОбратная Разработка с Помощью ИИБезопасность ИИ
GitHubnemo22/retrokit

retrokit

Набор инструментов Headless-Ghidra для реверс-инжиниринга 32-битных DOS и Win32 игр (1993-2010): собственный загрузчик LE/LX, соглашения о вызовах Watcom, сигнатуры библиотек, сервер MCP

161322 ч 14 мин назадЕщё не проверено
Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

retro-kit – реверс-инжиниринг старых игр (headless Ghidra)

Ghidra отдельно против retro-kit: вызовы DirectDraw через COM vtables

Набор инструментов для декомпиляции 32-битных игр примерно 1993–2010 годов с помощью headless Ghidra:

  • DOS LE/LX (DOS/4GW, DOS/32A, PMODE/W, CauseWay, DOS/4G bind; также OS/2 LX и VxD) собранных с Watcom C/C++ – с собственным загрузчиком LE/LX для Ghidra и спецификациями компилятора Watcom для обоих соглашений о вызовах.
  • Win32 PE (обычно MSVC): вызовы DirectX через COM vtables, показанные с их именами методов, типизированные импорты Miles/Smacker/Bink/FMOD/BASS, C++ классы из MSVC RTTI, версия компилятора из Rich header.

Результат — рабочее пространство с одним большим файлом .c, содержащим все функции плюс индексы (функции, граф вызовов, строки, fixups/таблицы указателей, импорты), которые можно искать через grep и разделять между людьми или AI-агентами. Имена, найденные в ходе анализа, возвращаются в Ghidra, и экспорт перегенерируется.

Установка

Требования: Ghidra 12.x (распакованная), 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 находится через --ghidra DIR, $GHIDRA_INSTALL_DIR или каталог ghidra/ghidra_* рядом с игрой или набором. install-loader компилирует загрузчик с помощью javac против этой Ghidra (без Gradle), устанавливает его в Ghidra/Extensions и регистрирует спецификации компилятора Watcom; запустите его снова после обновления Ghidra (doctor сообщит вам, когда).

Использование

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 определяет формат, загрузчик и — для Watcom — соглашение о вызовах (--cspec watcom|watcomreg переопределяет его) и сохраняет их в GAME_analysis/retrokit.json; последующим командам нужен только рабочий каталог. Рабочий каталог:

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/

AI-агенты: retrokit mcp GAME_analysis — это MCP-сервер (stdio, без дополнительных пакетов) поверх рабочего пространства: функции, декомпилированный код, граф вызовов, перекрёстные ссылки, строки, таблицы указателей, дизассемблирование и байты, библиотеки; он записывает предложения имён и заметки и может повторно экспортировать с применёнными именами (по запросу, в фоновом режиме). Claude Code:

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

Настройка для других клиентов, каждый инструмент и то, как должен работать агент: docs/MCP.md; краткая версия для агентов в AGENTS.md.

Имена: записывайте предложения в notes/names_<topic>.csv (addr,name,confidence,comment, confidence V verified или G guess); retrokit names WS переименовывает функции/метки (V побеждает G, коллизии получают _<addr>) и выполняет повторный экспорт.

Что делает конвейер:

  • Библиотеки (оба формата): retrokit libs (также часть info и analyze -> notes/libraries.md) распознаёт ~20 библиотек того периода - Miles/AIL, HMI SOS, DIGPAK, Smacker, Bink, FMOD, BASS, DirectX, zlib, libjpeg, libpng, PKWARE DCL, Lua, ... - по строкам, импортам и файлам данных, с версией, заметками об их форматах и подсказками по портированию. Код библиотек находится по сигнатурам (поставляются: среда выполнения Watcom C/C++, математические и C++ библиотеки из Open Watcom, zlib 1.0.4-1.2.3, libjpeg 6b; retrokit sigs build создаёт их из библиотек, которыми вы владеете, sigs learn из функций, которые вы идентифицировали) - сначала точные совпадения, затем похожий код из других версий компилятора - именуется и типизируется из retrokit/knowledge/*.h.
  • LE/LX: импорт с помощью загрузчика LE и cspec Watcom, функции по целям fixup'ов в код (игры Watcom вызывают большую часть своей логики через таблицы указателей), таблицы переходов switch сохраняются внутри своих функций, ошибочные флаги "no return" отменяются, короткие строки определяются, а строковые литералы отображаются как "text", количество параметров берётся из очисток ADD ESP,n в местах вызовов, прототипы восстанавливаются начиная с вызываемых функций, экспорт.
  • PE: импорт с помощью загрузчика PE Ghidra и автоанализа, затем функции по целям таблиц указателей и после выравнивания, пока не перестанут появляться новые, те же проходы по строкам / параметрам / прототипам, экспорт.

Другие команды: classes (классы MSVC C++ из RTTI), libs (используемые библиотеки), convert (XMIDI/HMI/HMP -> MIDI, VOC -> WAV, Smacker/Bink/FLIC -> MP4, по содержимому), sigs match|build|learn (сигнатуры библиотек, см. docs/WORKFLOW.md), entries (PE: адреса кода без функции), modules --rules FILE (PE: функции → исходные файлы через пути assert), strings EXE OUT (инвентаризация строк PE без Ghidra), match (перенос имён в связанный EXE: сиквел, дополнение, другая версия), le EXE info|dump|rec|s16|s32 (чтение таблиц из LE по адресам Ghidra), rnc (RNC ProPack), flic info|png|video (Autodesk FLI/FLC). retrokit COMMAND --help для опций.

Подробная процедура, чего ожидать и известные подводные камни описаны в docs/WORKFLOW.md; сервер MCP в docs/MCP.md; шаблоны задач для AI-агентов в docs/AGENT_PROMPTS.md; запланированная работа в docs/ROADMAP.md; поддержка и выпуск в 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
Скачать инструмент