Поговорим о компах... И не только:)

Беседы ни о чем

Re: Поговорим о компах... И не только:)

Сообщение APTEMK » 12 июн 2022, 06:22

Zona370 писал(а):Думаю, админы знают что делать.


Лучше подобное в личку писать.
http://betaoperating.mybb.ru/ - мой форум

Изображение
Аватара пользователя
APTEMK
Мастер Даунгрейда
 
Сообщения: 890
Зарегистрирован: 28 сен 2019, 10:54
Откуда: 10.12.2004 Приморский Край, Надеждинский р-н
Железо: 10.12.04компьютер Fujitsu (Pentium lll 550, 128 мб Озу, видеокарта ,Ati Rage Xl,Hdd 10 Гб, Windows98

Re: Поговорим о компах... И не только:)

Сообщение KPG » 12 июн 2022, 12:41

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

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

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

От автора цитата:
Сейчас для первичного анализа используется 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 информации эмулятором…

Сконвертированы и запускаются: Stunts, Test drive 3, Alfa Waves, The Lost vikings, Goody, Battle Zone



P.S. т.е. и какой то софт можно таким образом портировать для запуска под Windows.
и, автор проекта, предлагает инструментарий дальше развивать силами заинтересованного сообщества.
оценивая текущее состояние готовности проекта в 90%, но думаю с этого уровня начинаются самое интересное в реализации оставшихся 10% . :)
Последний раз редактировалось KPG 12 июн 2022, 12:54, всего редактировалось 2 раз(а).
KPG
Мастер Даунгрейда
 
Сообщения: 235
Зарегистрирован: 21 окт 2015, 20:53

Пред.

Вернуться в Флейм

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3