Декомпиляция, повторная реализация и рекомпиляция: в чём разница

Автор: DecompHub · Обновлено · Русский

Выбирайте по ожидаемому результату. Восстановленный исходный код, совместимая замена и нативная программа полезны по-разному. Одинаковая игра не делает их проценты взаимозаменяемыми.

Matching-декомпиляция

Цель — исходный код, компилирующийся в те же машинные инструкции, что и конкретная оригинальная сборка. Важны компилятор, параметры и ревизия. FAQ decomp.me объясняет сравнение функций; успешный scratch не измеряет всю программу.

Этот путь подходит для изучения оригинальной структуры и matching-вкладов. Выясните, что считает отчёт: байты, функции или выбранные модули.

Повторная реализация и совместимость

Воссоздаются поведение или интерфейсы без требования идентичного исполняемого файла. Результат оценивают функциональностью и тестами. ScummVM заменяет исполняемые файлы поддерживаемых игр, используя их данные.

Этот подход нужен для работающей замены и улучшения совместимости. Не превращайте поддержку функции в процент бинарного совпадения.

Статическая рекомпиляция

Инструкции существующей программы заранее преобразуются для другой среды. N64Recomp описывает процесс для N64. Полный порт требует также интеграции вокруг преобразованного кода.

Нативный запуск возможен до завершения ручной реконструкции, но сам по себе не объясняет исходную структуру программы. Общий инструмент не гарантирует готовую поддержку любой игры.

Дизассемблирование и порты

Дизассемблирование представляет машинные инструкции ассемблером, не обязательно восстанавливая C или C++. Порт адаптирует программу к другой платформе и может основываться на любом из этих подходов. Метки пересекаются, потому что описывают разные этапы.

Используйте типы работы в каталоге как ориентир и проверяйте цель в первоисточнике. Руководство по прогрессу поможет сравнивать измерения корректно.