Войти
ФлеймФорумПрограммирование

Дизассемблер IDA Pro 7.5 для восстановления исходного кода игры (C/C++) (14 стр)

Страницы: 19 10 11 12 13 14
#195
10:09, 11 июня 2022

Вот тут ещё интересный подход к "портированию" DOS игрушек -

https://github.com/xor2003/masm2c
https://github.com/xor2003/libdosbox

https://www.linux.org.ru/news/development/16888444

#196
12:16, 11 июня 2022

0iStalker
> Вот тут ещё интересный подход к "портированию" DOS игрушек -
Цитата из треда на Лор от автора проекта по разъяснению механик представленого ПО.

Сейчас для первичного анализа используется IDA. В будущем вероятно перееду на Ghidra. IDA находит переменные и дает им названия. Эмулятор libdosbox собирает потерянную информацию в процессе выполнения: значения сегментных регистров, размеры и расположение переменных, самомодифицирующийся код. А так же самое главное - эмулятор запускает каждую инструкцию под интерпретатором и сравнивает ее с С-шным кодом, чтобы обнаружить неточности трансляции. Это компенсирует кривизну того что выдает IDA и транслятор. Это основная фишка проекта, дает точность трансляции и за пару дней. А еще IDA не декомпилирует 16 битный код. Я сейчас планирую переделать транслятор чтобы он выдавал более высокоуровневый код. Например используя SMT. Можно странслированный код компилировать в 32/64 бита x86 либо .NET и потом декомпилировать, чтобы удалить лишний код (работу с флагами) и получить высокоуровневый код.

Так что мы получаем тоже самое что дает IDA + проверку исполнением. А еще сгенерированный код можно исполнять, отлаживать в gdb, вставлять трассировки, легко заменять код

IDA используется чтобы получить .lst файл

masm2c - транслятор из .lst в .cpp (транслировать 32битный код не проблема). Т.е. тулкит - что-то среднее между дизассемблером и декомпилятором.

libdosbox - эмулятор, пока не умеет проверять транслированный 32 битный код, если надо - присоединяйтесь и добавьте.

Зато под 32 бита много готовых декомпиляторов.

Классы и структуры - это мечта пока. Есть идеи как их связать? По идее поможет сбор run-time информации эмулятором…

Прошло более 1 года
#197
14:47, 28 сен 2023

IDA тупеет с каждым выпуском.  В плане реверса старых DOS-игрушек.  Платформы i8086 и i80386 выкорчёвывают на корню.

#198
21:39, 28 сен 2023

KPG
> Классы и структуры - это мечта пока. Есть идеи как их связать?
ChatGPT

Страницы: 19 10 11 12 13 14
ФлеймФорумПрограммирование