02.02.2023

Masm2c + libdosbox — тулкит для обратной разработки DOS-игр

Вышла первая публичная версия (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 не выдают рабочий код.

Целью проекта является улучшение игровых движков, а не нарушение авторских прав.

>>> Подробности

Источник.