vfsfitvnm / frida-il2cpp-bridge

A Frida module to dump, trace or hijack any Il2Cpp application at runtime, without needing the global-metadata.dat file.
https://github.com/vfsfitvnm/frida-il2cpp-bridge/wiki
MIT License
1.05k stars 203 forks source link

cant use api because access violation accesing #452

Open justqstn opened 11 months ago

justqstn commented 11 months ago

Device: Emulator LDPlayer Android 7.1 64-bit

Game doesnt have exports, and i made minet:

import "frida-il2cpp-bridge";

globalThis.IL2CPP_MODULE_NAME = "libil2cpp.so";
Reflect.defineProperty(Il2Cpp, "module", {value: Process.findModuleByAddress(DebugSymbol.fromName("il2cpp_init").address)});

declare global {
    let IL2CPP_EXPORTS: Record<string, () => NativePointer>;
}

(globalThis as any).IL2CPP_EXPORTS = {
}

for (const module_ of Process.enumerateModules()) {
    for (const export_ of module_.enumerateExports()) {
        if (export_.name.includes("il2cpp")) {
            send(`${module_.name}!${export_.name} @ ${export_.address}`);
            IL2CPP_EXPORTS[export_.name] = () => Il2Cpp.module.base.add(new NativePointer(export_.address));
        }
    }
}

i'm trying Il2Cpp.dump() and get error:

[Remote::PID::21411 ]-> Il2Cpp.dump()
Error: access violation accessing 0x8f488160
    at unityEngineCall (/node_modules/frida-il2cpp-bridge/dist/index.js:684)                                                                                       at get identifier (/node_modules/frida-il2cpp-bridge/dist/index.js:644)
    at dump (/node_modules/frida-il2cpp-bridge/dist/index.js:705)
    at <eval> (<input>:1)