Статья делаем il2cpp api

Исследователь
Статус
Оффлайн
Регистрация
20 Фев 2025
Сообщения
11
Реакции
3
сделаем мини поиск смещений для этого нам потребуется проитись по такой цепочке il2cppdomain->il2cppassemblies->il2cppimage->il2cppclass и от него будем гетать смещения
для начала нам нужно получить domain
для этого мы вызываем il2cpp_domain_get

дальше нам нужно получить наши модули (Assembly-csharp.dll и т.д)
для этого есть функция
Код:
__int64 __fastcall il2cpp_domain_get_assemblies(__int64 a1, __int64 *a2)
{
  _QWORD *v3; // rax

  v3 = (_QWORD *)sub_267B20();
  *a2 = (__int64)(v3[1] - *v3) >> 3;
  return *v3;
}
где a1 это наш domain , а a2 это указатель на переменную int - size_t в которую запишется размер
после чего в цикле нужно итерироваться по каждому assemblies вызывая функция il2cpp_assembly_get_image после чего мы получаем il2cppimage если повторно вызывать il2cppimage мы получим название il2cppimage
дальше мы получаем il2cppclass получить его можно вызвав функция
Код:
_int64 __fastcall il2cpp_class_from_name(__int64 a1, __int64 a2, __int64 a3)
которая 1 аргументов принимает il2cppimage 2 namespace если откроете в дампе некоторые классы можно увидить namespace допустим "UnityEngine" это и будет 2 аргумент если там ничего нету то можно передать "" а в a3 передается название класса дальше через il2cpp_class_get_fields
получаем поля где 1 аргументом идет сам il2cpp class
 
Последнее редактирование:
Полезная информация
 
Назад
Верх Низ