news 2026/8/27 13:50:54

Il2CppDumper 快速上手指南:三步完成一次 Unity GameAssembly 分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Il2CppDumper 快速上手指南:三步完成一次 Unity GameAssembly 分析

Il2CppDumper 快速上手指南:三步完成一次 Unity GameAssembly 分析

【免费下载链接】Il2CppDumperUnity il2cpp reverse engineer项目地址: https://gitcode.com/gh_mirrors/il/Il2CppDumper

用 dnSpy 或 ILSpy 打开从游戏包里取出的 GameAssembly.dll,模块几乎是空壳:没有命名空间、没有类型、一个方法都看不到。原因是 Unity 的 IL2CPP(把 C# 代码转成 C++ 再编译的机制)在二进制里不留可反编译的字节码,传统 .NET 反编译路线在此失效。Il2CppDumper 正是为这个局面写的逆向工具:它以游戏携带的 global-metadata.dat 为线索,对照编译后二进制里的地址,把丢失的类型与结构还原出来。本文带你从零跑通一次完整分析。

定位与输入输出 🔍

一句话理解:Il2CppDumper 是"IL2CPP 结构还原器",输入两份文件,输出可读的类库和逆向辅助产物,适合做 Unity 逆向、IL2CPP 反编译与安全研究的人使用。

  • 输入:IL2CPP 二进制(GameAssembly.dll / libil2cpp.so 等)+ global-metadata.dat
  • 输出:DummyDll/ + dump.cs + il2cpp.h + script.json + ida.py / ghidra.py

上手三步 ⚡

第一步:拿到程序

需要 .NET SDK,克隆后编译即可(中文说明见 README.zh-CN.md):

git clone https://gitcode.com/gh_mirrors/il/Il2CppDumper cd Il2CppDumper dotnet build -c Release

第二步:执行命令

三个参数分别是 IL2CPP 二进制、元数据文件、输出目录:

Il2CppDumper <executable-file> <global-metadata> <output-directory>

Windows 下不带参数直接运行则会弹出文件选择对话框,按提示依次挑文件即可,适合不习惯命令行的场景。

第三步:看结果

控制台依次打印 Metadata Version、Il2Cpp Version、Searching...,最后到 Done! 即完成,产物全部落在你指定的输出目录里。

产物说明:各文件拿来做什么 📦

  • DummyDll/:还原后的程序集文件夹。类、方法、字段签名齐全但没有方法体,可用 dnSpy / ILSpy 直接阅读;也是提取 MonoBehaviour、MonoScript 时匹配资产的关键依据。
  • dump.cs:纯文本转储,方法、字段、属性等明细是否输出可由配置控制,方便全文搜索定位。
  • il2cpp.h:C++ 结构体头文件,描述每个类的成员布局,配合 ida.py 一类的脚本能把结构自动套进 IDA。
  • script.json:地址与方法表数据,ida.py、ghidra.py 和 Binary Ninja 插件都消费它来完成批量重命名。
  • stringliteral.json:全部字符串常量清单,快速定位二进制里的字面量。

常见报错怎么排查 🛠️

  • Metadata file supplied is not valid metadata file:先确认没拿错文件(应为游戏包内与二进制配套的 global-metadata.dat);若文件头签名不对,多半是游戏对元数据做了混淆或加密,这超出本工具的解密范围,root 环境下可改用内存提取工具拿未混淆的副本再分析。
  • This file may be protected:二进制带防篡改保护。用 GameGuardian 一类工具从游戏运行内存中 dump 出 libil2cpp.so,再以 dump 文件作为输入,程序询问基地址时按提示填入(或输 0 强制继续)。
  • Can't use auto mode to process file, try manual mode:自动搜索注册地址失败。程序会要求手动输入 CodeRegistration 与 MetadataRegistration 两个地址,可在 IDA 里定位后填入;同时复查是否选错了可执行文件,PC 平台应为 GameAssembly.dll 或 *Assembly.dll。
  • 解析结果与预期版本不符:老版本二进制可能要用旧解析器,通过配置强制指定解析版本号即可。

进阶:配置、批量与平台对照 🧩

所有开关集中在 config.json,常用项:

  • DumpMethod/DumpField/DumpAttribute等:控制 dump.cs 里输出哪些明细
  • GenerateDummyDll/GenerateScript:开关对应产物的生成
  • ForceDump:强制按"内存 dump 文件"处理输入
  • NoRedirectedPointer:部分设备 dump 出来的指针未重定位时需置 true
  • ForceIl2CppVersion+ForceVersion:手动指定 IL2CPP 解析器版本

批量处理不必另找工具:命令行形态本身无状态,用 shell 循环把多个游戏目录轮流喂给同一条命令即可;需要针对老版本调ForceVersion时,也可在批处理里先改写 config.json 再运行。

各平台目标文件对照:

平台目标文件二进制格式
Windows PCGameAssembly.dllPE
Androidlibil2cpp.soELF / ELF64
iOS / macOSUnityFrameworkMach-O
Nintendo Switch主程序 .nsoNSO
WebAssembly 应用.wasm 文件WASM

使用边界 ⚖️

  • 仅用于安全研究、学习或你拥有权利的项目分析
  • 不用于制作作弊工具、盗版或牟利性破解
  • 不公开传播反编译得到的代码与资产
  • 在隔离环境中操作,分析前备份原始文件

收尾

Il2CppDumper 把不透明的 IL2CPP 二进制变回可读类库。挑一款游戏实战完整 dump。

【免费下载链接】Il2CppDumperUnity il2cpp reverse engineer项目地址: https://gitcode.com/gh_mirrors/il/Il2CppDumper

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 13:50:49

【AI大模型实战项目】AI Agent 如何落地?模块拆解与实战案例一文搞懂

前言 在人工智能飞速发展的浪潮中&#xff0c;AI Agent 的角色愈加重要。从日常生活中的智能助手&#xff0c;到企业中复杂任务的协作与执行&#xff0c;AI Agent 的构建思路日趋成熟。然而&#xff0c;如何将大模型的强大语言处理能力与工具调用的实际功能结合&#xff0c;构建…

作者头像 李华
网站建设 2026/8/27 13:50:49

宽压输入与小封装:DC-DC模块选型与实战指南

1. 宽电压输入范围&#xff1a;不止是“能亮”这么简单 1.1 宽压范围到底包含哪些区间 做硬件这些年&#xff0c;选DC-DC模块时我最先看的永远是输入电压范围&#xff0c;这比输出精不精确、纹波大不大都更靠前。一个输入范围做得够宽的产品&#xff0c;往往能直接把系统里最麻…

作者头像 李华
网站建设 2026/8/27 13:49:29

未来十年人工智能的发展前景如何?人工智能未来发展方向是什么?

前言 技术换代越来越快&#xff0c;似乎很难对「 AI 前景」做一个具体、明确的判断。就像这个问题是去年7月提的&#xff0c;当时大家还在吐槽“只有人工没有智能”。 没人能料到现在最火的 AI 是款可以和用户文字沟通的生成模型。当然&#xff0c;尽管变数大于确定性&#xff…

作者头像 李华
网站建设 2026/8/27 13:48:29

深度测评 RAG 应用评估框架:指标最全面的 RAGas

前言 大家常说 RAG 应用是&#xff1a;一周出 demo&#xff0c;半年用不好。那么怎么评估 RAG 应用是否能够上生产了呢&#xff1f;如果公司人手足够&#xff0c;当然可以人工测试评估准确性&#xff0c;但指标未免单一。本文介绍一个全自动化的 rag 应用评估框架 ragas。 RAGa…

作者头像 李华