工具
Zygisk-Il2CppDumper 运行时导出 IL2CPP 元数据的 Zygisk 模块
由 Il2CppDumper 作者 Perfare 编写的 Zygisk 模块,在 Unity IL2CPP Android 应用运行时从进程内部导出类型元数据。模块针对单个包名构建,等待应用加载 libil2cpp.so 后解析运行时导出的 il2cpp API,遍历每个已加载程序集中的类,并把 dump.cs 写入应用的 files 目录,其中列出命名空间、类、接口和枚举,以及带偏移量的字段、属性和标注 RVA 与虚拟地址的方法签名。对于在 x86 设备上运行的 ARM 版应用,它会通过 Houdini 原生桥加载自己的 ARM 库。
- 目标
- 应用 · 游戏
- 类别
- 游戏分析工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 前提条件:需要已安装 Magisk v24 或更高版本并开启 Zygisk 的 root Android 设备,以及使用者自备、采用 Unity IL2CPP 后端的应用。项目没有发布版本:模块需针对单个包名构建,可在复刻的仓库中用该包名手动运行 Build 工作流,或修改 game.h 中的 GamePackageName 后运行 Gradle 任务 :module:assembleRelease(NDK 25.2.9519653;CI 使用 Java 11),再通过 Magisk 安装。应用启动后,dump.cs 会出现在 /data/data/<package>/files/ 下。
- 局限:它只生成 dump.cs;与桌面版 Il2CppDumper 不同,它不会生成虚拟程序集或反汇编器脚本。master 分支最新提交为 2023-05-22,模块版本为 v1.2.0。
- 测试证据:仓库没有测试,唯一的 CI 工作流只在手动触发时构建模块。
- 许可:依 LICENSE 采用 MIT 许可,版权行署名为 Rikka;附带的 xDL 符号查找库保留 HexHacking Team 的 MIT 声明。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · Perfare/Zygisk-Il2CppDumper · 修订 ede65d1
- module/src/main/cpp/il2cpp_dump.cpp GitHub · Perfare/Zygisk-Il2CppDumper · 修订 ede65d1
- module/src/main/cpp/hack.cpp GitHub · Perfare/Zygisk-Il2CppDumper · 修订 ede65d1
- module/src/main/cpp/main.cpp GitHub · Perfare/Zygisk-Il2CppDumper · 修订 ede65d1
- module/src/main/cpp/game.h GitHub · Perfare/Zygisk-Il2CppDumper · 修订 ede65d1
- .github/workflows/build.yml GitHub · Perfare/Zygisk-Il2CppDumper · 修订 ede65d1
- module/build.gradle GitHub · Perfare/Zygisk-Il2CppDumper · 修订 ede65d1
- module.gradle GitHub · Perfare/Zygisk-Il2CppDumper · 修订 ede65d1
- LICENSE GitHub · Perfare/Zygisk-Il2CppDumper · 修订 ede65d1
- module/src/main/cpp/xdl/xdl.c GitHub · Perfare/Zygisk-Il2CppDumper · 修订 ede65d1