Il2CppDumper 完整指南:三步解析 IL2CPP 游戏结构并生成 IDA 分析脚本 📅 2026/8/27 3:14:58 Il2CppDumper 完整指南三步解析 IL2CPP 游戏结构并生成 IDA 分析脚本【免费下载链接】Il2CppDumperUnity il2cpp reverse engineer项目地址: https://gitcode.com/gh_mirrors/il/Il2CppDumperIl2CppDumper 是一款专门解析 Unity IL2CPP 编译产物的逆向工具你给它游戏目录里的 IL2CPP 可执行文件和 global-metadata.dat 两个文件它能还原出完整的 DLL 类型结构、C 结构体定义文件并自动生成 IDA、Ghidra、Binary Ninja 的分析脚本。这篇文章按安装、首次运行、读懂输出、排查报错的顺序带你把整条流程走通。 定位Il2CppDumper 适合谁用你如果试着反编译过 IL2CPP 编译的 Unity 游戏大概率撞过一堵墙IL2CPP 把 C# 代码编译成了 C 原生代码常规的 .NET 反编译工具认不出里面的类型和方法信息。Il2CppDumper 干的事就是把元数据从二进制里读回来——它不还原代码本身但会还原完整的类、字段、方法、属性结构并给逆向工具配好现成脚本。你遇到的问题Il2CppDumper 的解法GameAssembly.dll、libil2cpp.so 无法用反编译工具打开还原完整 DLL 结构DummyDll可用 dnSpy、ILSpy 直接查看原生代码里字段偏移量对不上生成 il2cpp.h 结构体头文件定义全部 C 类布局在 IDA / Ghidra 里手工标注太慢生成 ida.py、ghidra.py 等脚本 script.json导入即生效文件被加密、加壳或内存重定向保护支持分析内存 dump 出的文件配合配置项绕过常见保护 从零到一三步跑出第一次结果安装构建项目先装 .NET 6.0 或更高版本的 SDK然后克隆代码并构建git clone https://gitcode.com/gh_mirrors/il/Il2CppDumper cd Il2CppDumper dotnet build -c Release构建完成后可执行文件在 bin/Release/net8.0/ 目录下config.json 会一并复制过去。首次运行只需要两个文件随便找一个 Unity IL2CPP 游戏从游戏目录里挑两个文件IL2CPP 可执行文件Windows 是 GameAssembly.dllAndroid 是 libil2cpp.soiOS 是 UnityFrameworkSwitch 是 NSO 文件Web 端是 .wasm 文件global-metadata.dat元数据文件和可执行文件在同一个数据目录双击可执行文件进入图形界面依次选择即可命令行模式下一条命令搞定Il2CppDumper.exe executable-file global-metadata output-directory程序会按文件头 0xFAB11BAF 自动识别哪个是元数据文件所以这两个参数的顺序不用纠结。读懂输出先看哪几个文件所有产物都写在输出目录里建议按这个顺序看DummyDll/——还原出的 DLL 文件夹用 dnSpy 或 ILSpy 打开就能看到全部类、方法、字段il2cpp.h——C 结构体头文件是反编译工具里字段偏移表的依据dump.cs——文本形式的结构清单输出内容可由配置控制script.json——ida.py、ghidra.py 等脚本共用的数据源stringliteral.json——全部字符串字面量信息方便对照游戏文本 功能拆解用之前该知道的四件事三大逆向工具一套脚本运行后输出目录直接带上三大逆向工具的脚本导入后类型名、函数名、偏移量自动应用文件目标工具说明ida.py / ida_py3.pyIDA基础标注读取 script.jsonida_with_struct.pyIDA额外读取 il2cpp.h把结构体信息应用到 IDAghidra.py / ghidra_wasm.pyGhidrawasm 版需要配套 Ghidra 插件Il2CppBinaryNinjaBinary Ninja插件目录放入插件目录即可使用il2cpp.hC 结构体还原文件这是逆向人员最关心的产物。它按游戏所用 IL2CPP 版本支持 Unity 5.3 到 2022.2定义每个 C 类的内存布局。反编译原生代码时偏移 0x40 处是什么字段这类问题就靠它来回答。六种可执行格式全覆盖工具内置 PE、ELF、ELF64、Mach-O含 Fat、NSO、WASM 六种格式解析器基本覆盖 Unity 游戏的所有主流部署形态各格式解析逻辑在 ExecutableFormats/ 目录下按格式一一对应实现。config.json 控制输出行为行为开关都集中在可执行文件同目录的 config.json 里常用的几项GenerateDummyDll/GenerateScript——是否生成 DLL 还原文件夹和分析脚本DumpMethod、DumpField、DumpProperty、DumpFieldOffset、DumpMethodOffset——控制 dump.cs 输出哪些信息ForceIl2CppVersionForceVersion——老版本二进制自动探测失败时手动指定 IL2CPP 版本号来选择解析器例如部分 Android v20 二进制需要按 v16 解析ForceDump、NoRedirectedPointer——针对内存 dump 文件的开关后者用于指针未重定向的设备 dump 常见报错排查三个高频坑以下报错会原样出现在命令行里对照处理即可。ERROR: Metadata file supplied is not valid metadata file.目标确认元数据文件本身可读步骤先确认选的是正确的 global-metadata.dat如果文件没错但仍报错说明它被游戏方加密或混淆过结果Il2CppDumper 不做去混淆。对 Android 设备改用内存 dump 的方式GameGuardian 或 Zygisk 类工具从进程里拿到未加密文件再跑ERROR: Cant use auto mode to process file, try manual mode.目标确认可执行文件选对了步骤PC 平台的可执行文件是 GameAssembly.dll 或 *Assembly.dll最容易错选成游戏目录里其他系统 dll结果确认无误仍报错的话说明文件格式没被自动识别手动核对文件头魔数是否属于六种受支持格式ERROR: This file may be protected.目标绕过可执行文件保护步骤用 GameGuardian 从游戏内存 dump libil2cpp.so已 root 的 Android 设备可直接用 Zygisk 模块 dump结果用 dump 文件替换被保护的 libil2cpp.so 重新运行即可绕过大多数保护必要时配合ForceDump开关 项目目录导览想改代码看哪里主代码在 Il2CppDumper/ 子目录扩展或调试时按模块找Il2Cpp/——核心解析逻辑Il2Cpp.cs 处理可执行文件Metadata.cs 负责解析 global-metadata.datExecutableFormats/——各文件格式实现PE.cs、Elf.cs、Macho.cs、NSO.cs、WebAssembly.cs 各管一种格式Outputs/——输出生成DummyAssemblyExporter.cs 对应 DummyDll 文件夹StructGenerator.cs 对应 il2cpp.hUtils/——工具集含 Dummy 程序集生成、文件对话框等辅助逻辑根目录下的一批 .py 文件——随输出分发的逆向工具脚本读它们能看懂 script.json 被如何消费✅ 落地清单与收尾开始第一次分析前过一遍这份清单✅ .NET 6.0 以上 SDK 已安装项目构建成功✅ 原始游戏文件已备份分析过程只读不改✅ 可执行文件与 global-metadata.dat 来自同一个游戏、同一平台✅ 输出目录可写且空间充足大型游戏的 DummyDll 不小✅ 目标有保护时提前备好内存 dump 手段root 设备或 GameGuardian✅ 分析用途仅限安全研究、学习与合法场景Il2CppDumper 把原本读不懂的 IL2CPP 二进制变成一套结构化产物DummyDll 负责看类结构il2cpp.h 负责喂反编译工具ida.py 和 ghidra.py 脚本负责接管原生代码分析。按本文流程走通一次之后你就能处理绝大多数主流平台的 Unity IL2CPP 游戏。记住一条边界Il2CppDumper 是结构还原工具不是反编译器——它还原的是骨架不是代码。搞清楚这一点才不会误判它的输出。【免费下载链接】Il2CppDumperUnity il2cpp reverse engineer项目地址: https://gitcode.com/gh_mirrors/il/Il2CppDumper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考