Вопрос Как дампить Unity игры (il2cpp)?

Начинающий
Статус
Оффлайн
Регистрация
24 Апр 2022
Сообщения
6
Реакции[?]
0
Поинты[?]
0
Есть одна пк игра на юнити(не геншин),у которой защищена метадата или хуй знает что еще там защищено,вопрос,какие статьи,что почитать,чтобы понять принцип снятия этой защиты и получения заветного dump.cs ,подскажите пожалуйста.
 
Начинающий
Статус
Оффлайн
Регистрация
15 Янв 2022
Сообщения
127
Реакции[?]
18
Поинты[?]
8K
Есть одна пк игра на юнити(не геншин),у которой защищена метадата или хуй знает что еще там защищено,вопрос,какие статьи,что почитать,чтобы понять принцип снятия этой защиты и получения заветного dump.cs ,подскажите пожалуйста.
Пожалуйста, авторизуйтесь для просмотра ссылки.

C++:
UnityResolve::Init(GetModuleHandle(L"GameAssembly.dll"), UnityResolve::Mode::Il2Cpp);
UnityResolve::DumpToFile("game");
Пожалуйста, авторизуйтесь для просмотра ссылки.

C++:
UnityResolve::Init(GetModuleHandle(L"GameAssembly.dll"), UnityResolve::Mode::Il2Cpp);
UnityResolve::DumpToFile("game");
вообще если ты интернал и будешь использовать эти оффсеты чисто для классов - не советую. Используй эту библиотеку, она позволяет ничего не обновлять, пока не измениться название поля, даёт безопасно использовать игровые методы и т.д.
 
Начинающий
Статус
Оффлайн
Регистрация
24 Апр 2022
Сообщения
6
Реакции[?]
0
Поинты[?]
0
Пожалуйста, авторизуйтесь для просмотра ссылки.

C++:
UnityResolve::Init(GetModuleHandle(L"GameAssembly.dll"), UnityResolve::Mode::Il2Cpp);
UnityResolve::DumpToFile("game");
вообще если ты интернал и будешь использовать эти оффсеты чисто для классов - не советую. Используй эту библиотеку, она позволяет ничего не обновлять, пока не измениться название поля, даёт безопасно использовать игровые методы и т.д.
Спасибо за ответ,почитал немного этот гит,сделал как по инструкции, вроде что-то где-то и работает,но при попытке сдампить,просто пустые файлы вылезают...
 
Начинающий
Статус
Оффлайн
Регистрация
15 Янв 2022
Сообщения
127
Реакции[?]
18
Поинты[?]
8K
Спасибо за ответ,почитал немного этот гит,сделал как по инструкции, вроде что-то где-то и работает,но при попытке сдампить,просто пустые файлы вылезают...
отдебаж, какая игра?
 
Начинающий
Статус
Оффлайн
Регистрация
24 Апр 2022
Сообщения
6
Реакции[?]
0
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
15 Янв 2022
Сообщения
127
Реакции[?]
18
Поинты[?]
8K
Начинающий
Статус
Оффлайн
Регистрация
24 Апр 2022
Сообщения
6
Реакции[?]
0
Поинты[?]
0
присоеденись к процессу и заинжекть процесс хакером дллку, поставь бряки в методе дампа
Все стало еще интереснее, при отладке получил

ИмяЗначениеТип
<begin>$L00xcccccccccccccccc {???}UnityResolve::Assembly * *
...
<end>$L00xcccccccccccccccc {???}UnityResolve::Assembly * *
...
<range>$L0{ size=??? }std::vector<UnityResolve::Assembly *,std::allocator<UnityResolve::Assembly *>> &
[capacity]<Чтение памяти невозможно>
◢ [allocator]allocatorstd::_Compressed_pair<std::allocator<UnityResolve::Assembly *>,std::_Vector_val<std::_Simple_types<UnityResolve::Assembly *>>,1>
◢ [Базовое представление]{_Myval2={_Myfirst=??? _Mylast=??? _Myend=??? } }std::_Compressed_pair<std::allocator<UnityResolve::Assembly *>,std::_Vector_val<std::_Simple_types<UnityResolve::Assembly *>>,1>
std::allocator<UnityResolve::Assembly *>{...}std::allocator<UnityResolve::Assembly *>
◢ _Myval2{_Myfirst=??? _Mylast=??? _Myend=??? }std::_Vector_val<std::_Simple_types<UnityResolve::Assembly *>>
▶ std::_Container_base12{_Myproxy=??? }std::_Container_base12
_Myfirst<Чтение памяти невозможно>
_Mylast<Чтение памяти невозможно>
_Myend<Чтение памяти невозможно>
[Измерения]<Чтение памяти невозможно>
[]<Не удается отобразить значение>
◢ [Базовое представление]{_Mypair=allocator }std::vector<UnityResolve::Assembly *,std::allocator<UnityResolve::Assembly *>>
◢ _Mypairallocatorstd::_Compressed_pair<std::allocator<UnityResolve::Assembly *>,std::_Vector_val<std::_Simple_types<UnityResolve::Assembly *>>,1>
◢ [Базовое представление]{_Myval2={_Myfirst=??? _Mylast=??? _Myend=??? } }std::_Compressed_pair<std::allocator<UnityResolve::Assembly *>,std::_Vector_val<std::_Simple_types<UnityResolve::Assembly *>>,1>
std::allocator<UnityResolve::Assembly *>{...}std::allocator<UnityResolve::Assembly *>
◢ _Myval2{_Myfirst=??? _Mylast=??? _Myend=??? }std::_Vector_val<std::_Simple_types<UnityResolve::Assembly *>>
▶ std::_Container_base12{_Myproxy=??? }std::_Container_base12
_Myfirst<Чтение памяти невозможно>
_Mylast<Чтение памяти невозможно>
_Myend<Чтение памяти невозможно>
короче говоря


ИмяЗначениеТип
pAssembly<Чтение памяти невозможно>
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
24 Апр 2022
Сообщения
6
Реакции[?]
0
Поинты[?]
0
присоеденись к процессу и заинжекть процесс хакером дллку, поставь бряки в методе дампа
а могу ли я просто из таблицы экспорта GameAssembly.dll взять il2cpp api и вызвать в игре для анализа?
 
Начинающий
Статус
Оффлайн
Регистрация
15 Янв 2022
Сообщения
127
Реакции[?]
18
Поинты[?]
8K
Начинающий
Статус
Оффлайн
Регистрация
5 Ноя 2018
Сообщения
9
Реакции[?]
2
Поинты[?]
0
Подскажите новечку,как закомпилить dll эту?
Не понимаю инструкцию или скиньте готовую а то с hpp не пойму
 
Сверху Снизу