Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Как искать оффсеты после дампа IL2cppDumper на Unity

Ты знаешь,что 0x70 это смещение fogBrightness ,знаешь что fogBrightness это поле UnderwaterRenderer, нашел указатель на объект UnderwaterRenderer и точно знаешь что это этот объект.И когда ты это нашёл,то 0x70 уже уникальный адрес,потому что он ведь относится к какому-то определенному классу и полю.И получается вот именно та функция,которая тебе требуется
указатель всмысле // type index: 13222? или ты имеешь ввиду искать по всему дампу указатель?,если знаешь, напиши как примерно может выглядить указатель
 
указатель всмысле // type index: 13222? или ты имеешь ввиду искать по всему дампу указатель?,если знаешь, напиши как примерно может выглядить указатель
Я имею ввиду указатель на UnderwaterRenderer,его найти надо



Могу ошибаться,не знаю
 
Я имею ввиду указатель на UnderwaterRenderer,его найти надо



Могу ошибаться,не знаю
у вас для помощи есть script.json и il2cpp.h. Копируем с il2cpp.h структуры UnderwaterRenderer_o, UnderwaterRenderer_Fields и UnderwaterRenderer_StaticFields если есть. нашли например функцию UnderwaterRenderer$$Update - хукаем, первым аргументом будет указатель на UnderwaterRenderer_o (если функция Update не статичная конечно же) и можете менять fogBrightness поле. Я не смотрел что у вас конкретно там, но думаю может получится что-то в этом роде:
C++:
Expand Collapse Copy
InlineHook hook;
void UnderwaterRendererUpdate(UnderwaterRenderer_o* self, const void* methodInfo) {
    self->fields.fogBrightness = 1.0f;
    
    return hook.call(self, methodInfo);
}

hook.install(gameAssembly + offset);

Если бесит каждый раз писать self->fields можно сделать такую структуру:
C++:
Expand Collapse Copy
template<typename Klass>
class Class {
public:
    Klass klass() const {
        return _klass;
    }
private:
    Klass _klass;
    pvoid _monitor;
};

// Как пример
class AxleboltVerification : public Class<void*> {
public:
    String* _contentHash;
    Dictionary<String*, String*>* _appSnapshot;
    ...и остальные поля класса
};
 
Назад
Сверху Снизу