Вышла первая публичная версия (0.9.6) тулкита для обратной разработки 16 битных DOS-игр: Masm2c и libdosbox.
Допустим, вы решили переписать движок старой любимой игры под ДОС или специализированного DOS-софта. Кроме того что реверс-инжиниринг сложен, задачу усложняет еще и то, что используется сегментная модель памяти (адресация за раз только 64 КБайт памяти одним сегментным регистром), прямой доступ к старому железу.
Если у вас есть бинарник с движком игры, тулкит позволяет сконвертировать его в работающий переносимый код на C++. Каждая инструкция x86 заменяется аналогичной функцией на С++ (native code). Libdosbox используется для эмуляции видео, звуковых устройств и для проверки конвертации каждой инструкции x86. Получается что-то среднее между декомпиляцией и дизассемблированием.
Как результат, далее вы можете переписывать игру используя современные утилиты: gdb, и т.д. Декомпиляция — в отдалённых планах.
Исходники составных частей проекта:
https://github.com/xor2003/masm2c (GPLv3)
https://github.com/xor2003/libdosbox (GPLv2)
Аналогичный инструмент — Spice86. Такие инструменты как Ghidra и reko не выдают рабочий код.
Целью проекта является улучшение игровых движков, а не нарушение авторских прав.
>>> Подробности