Дамп игры на c++?
Подскажите библиотеки, или принципы создание дампа (дамп памяти, методов, и тд..) для игр созданных на UnityEngine.
Главные цели:
- получение адресов методов игры
Дополнительно:
У тебя должно быть тег не разработка а реверс-инжинеринг игр?
Для получения методов игры дампить ничего не нужно, если только игра не запакована самомодифицируемым кодом.
Нужен дизассемблер, отладчик, знание системного программирования и реверс-инжиниринга.
На Юнити бывает как минимум два типа кода: il2cpp, когда генерируется код на C++, а потом компилируется в нативный код; второй тип -- managed .net код. Для каждого из них нужны свои инструменты и знания.
Достаточно дизассемблера типа Ghidra, Ida Pro, radare2. Отладчика типа WinDbg, x64dbg или CheatEngine. Фреймворка динамической инструментации типа Frida. Для managed кода хорошо подойдёт .dotPeek или ILSpy в качестве декомпилятора.
Ещё очень неплохо будет знать какой-нибудь низкоуровневый язык программирования типа Rust, Си, C++.
Ну и ещё несколько тысяч часов опыта...
- Вот да, il2cpp там оно генерит, только вот как получить адреса? Задача написать на плюсах дампер
- Евгений Мартынов, не нужен никакой дампер. Там всё прекрасно статически разбирается. Достаточно любого парсера метадаты Юнити, коих на гитхабе вагон.
Ответы:
Под виндой ReadProcessMemory, под остальными ОС использовать аналогичные системные API.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Дамп игры на C++ представляет собой процесс сохранения текущего состояния игры в виде файла или потока данных, чтобы в дальнейшем можно было восстановить это состояние и продолжить игру с того же места. Дамп может содержать информацию о расположении игровых объектов, их параметрах, состоянии игрового мира, уровня сложности, прогрессе игрока и многом другом.
Для создания дампа игры на C++ необходимо разработать специальный алгоритм, который будет записывать все необходимые данные в удобном формате. Обычно дамп игры сохраняется в бинарном или текстовом формате, в зависимости от требований к производительности и удобству работы с данными.
Одним из распространенных способов создания дампа игры на C++ является использование сериализации объектов. Для этого можно использовать библиотеки или написать собственные функции для сохранения и загрузки данных игры. Важно учитывать, что дамп должен быть полным и содержать всю необходимую информацию для восстановления состояния игры без потерь.
При создании дампа игры на C++ также необходимо учитывать безопасность данных, чтобы исключить возможность их изменения или подмены. Для этого можно использовать методы шифрования или добавление контрольных сумм к данным.
В целом, дамп игры на C++ является важным инструментом для сохранения прогресса игрока, обеспечения возможности продолжения игры с места остановки и удобного обмена данными между игроками. Важно разрабатывать этот процесс внимательно и тщательно, чтобы обеспечить стабильную и надежную работу игры.