# Reverse Engineering игры Parkan Железная стратегия 1998
x86 Registers
## Сборка проекта Проект написан на C# под `.NET 8` Вам должно хватить `dotnet build` для сборки всех проектов отдельно. Все приложения кросс-платформенные, в том числе UI. ### Состояние проекта - Поддержка всех `NRes` файлов - звуки, музыка, текстуры, карты и другие файлы. Есть документация. - Поддержка всех `TEXM` текстур. Есть документация. - Поддержка файлов миссий `.tma`. - Поддержка шрифтов TFNT. - Поддержка файлов скриптов `.scr`. - Поддержка файлов параметров `.var`. ### Структура проекта Внимание! Проект делается как небольшой PET, поэтому тут может не быть - чёткой структуры - адекватных названий - комментариев Я конечно стараюсь, но ничего не обещаю. ## Для Reverse Engineering-а использую Ghidra ### Наблюдения - Игра использует множество стандартных библиотек, в частности stl_port, vc++6 и другие. Если хотите что-то изучить в игре, стоит поискать по строкам и сигнатурам, что именно используется в конкретной `dll`. - Строки в основном используются двух форматов - `char*` и `std::string`. Последняя состоит из 16 байт - `undefined4, char* data, int length, int capacity`. - В игре очень много `inline` функции, которые повторяются по куче раз в бинарнике. - Игра загружает и выгружает свои `dll` файлы по несколько раз, так что дебаг с `Memory Map` очень затруднён. - Игра активно и обильно течёт по памяти, оставляя после чтения файлов их `MapViewOfFile` и подобные штуки. - Игра нормально не работает на Win10. Мне помог dgVoodoo. Хотя с ним не работает `MisEditor`. ## Контакты Вы можете связаться со мной в [Telegram](https://t.me/bird_egop).