assetstudio 中文文档 下载 App

Il2Cpp Dumper 配合 — 从 IL2CPP 二进制生成 dummy dll 喂给 AssetStudio

为什么需要 Il2CppDumper

Unity 现在默认用 IL2CPP 后端打包——C# 代码提前编译成原生机器码,游戏包里没有 Managed 目录。AssetStudio 反序列化 MonoBehaviour 需要程序集目录(DLL 里有类型定义和字段名),但 IL2CPP 游戏没有 DLL。

Perfare 为 AssetStudio 配套写了 Il2CppDumper——它能从 IL2CPP 编译产物里提取所有类型信息,生成假的 DLL(dummy dll),AssetStudio 把这些 dummy dll 当真实 DLL 用就能反序列化 MonoBehaviour。

准备文件

Il2CppDumper 需要两个文件:

文件从哪里来
libil2cpp.so 或 GameAssembly.dll游戏 APK 解压后在 lib/ 目录下(安卓)或游戏根目录下(Windows)
global-metadata.dat游戏 APK 解压后在 assets/bin/Data/Managed/ 目录下

完整流程

第一步:准备工作目录

把 APK 当 zip 解开,找到:

APK/
├── lib/arm64-v8a/libil2cpp.so        ← IL2CPP 编译产物
└── assets/bin/Data/Managed/
    └── global-metadata.dat            ← 类型元数据

把这两个文件复制到 Il2CppDumper 的可执行文件所在目录,方便操作。

第二步:跑 Il2CppDumper

Il2CppDumper 也是绿色软件,下载解压后直接运行:

Il2CppDumper.exe
libil2cpp.so        ← 第一个参数,IL2CPP 二进制
global-metadata.dat ← 第二个参数,类型元数据

跑起来后 Il2CppDumper 会输出:

产物用途
DummyDll/ 目录最重要——fake DLL,喂给 AssetStudio 用
script.json所有脚本的类型定义(可直接搜索)
DummyAssembly.dll所有类型打包在一起的假 DLL
il2cpp.hIL2CPP 内部类型头文件(逆向用)

第三步:喂 dummy dll 给 AssetStudio

回到 AssetStudio,第一次选中 MonoBehaviour 时弹窗让你选程序集目录——直接选 DummyDll 目录就行。AssetStudio 会扫描里面所有 dummy DLL,找到类型定义,然后就能正确反序列化 MonoBehaviour。

版本兼容性

Unity 版本Il2CppDumper 要求
Unity 2017Il2CppDumper v5.6+
Unity 2018-2020Il2CppDumper v6.0+
Unity 2021+Il2CppDumper v6.5+
Unity 6 / 6000.x需要最新版 Il2CppDumper(可能还没发布,先用 AssetStudioMod 试试看)

Il2CppDumper 目前在维护模式,新版本 Unity 出来时更新可能滞后。如果跑 Il2CppDumper 报错:

  1. 检查 Unity 版本对不对;
  2. 换最新版 Il2CppDumper;
  3. 还不行 → 说明 IL2CPP 格式有变化,等社区跟进或手动 patch。

常见问题

Il2CppDumper 跑不起来(闪退 / 报格式错误)

AssetStudio 喂了 dummy dll 还是解析失败