首页
/ Il2CppDumper完全指南:从文件解析到高级配置

Il2CppDumper完全指南:从文件解析到高级配置

2026-03-14 03:01:35作者:柯茵沙

Il2CppDumper是一款专业的Unity il2cpp逆向工程工具,能够帮助开发者解析il2cpp二进制文件和元数据,实现DLL还原等核心功能。本文将从实际应用场景出发,带你全面掌握该工具的使用方法,包括核心功能解析、快速上手流程、深度配置技巧以及扩展工具应用,助你高效完成il2cpp逆向任务。

一、核心功能解析:为什么选择Il2CppDumper?

当你需要对Unity il2cpp编译的应用进行逆向分析时,面对复杂的二进制文件和元数据,如何快速提取关键信息?Il2CppDumper提供了一站式解决方案,其核心功能包括:

1.1 元数据解析

自动识别并解析global-metadata.dat文件,提取类型定义、方法、字段等关键信息,为后续逆向分析奠定基础。

1.2 二进制文件处理

支持多种可执行格式(如ELF、PE、Macho等),能够准确定位il2cpp代码段和数据段,实现函数和字段的偏移计算。

1.3 Dummy DLL生成

生成Dummy DLL(用于还原C#类型信息的占位程序集),帮助开发者在逆向过程中更好地理解原始代码结构。

1.4 脚本生成

支持生成适用于IDA、Ghidra等逆向工具的辅助脚本,提高逆向分析效率。

二、快速上手:如何使用Il2CppDumper解析文件?

2.1 工具准备

在开始使用Il2CppDumper之前,需要准备以下文件和工具:

  • Il2CppDumper可执行文件(Il2CppDumper.exe
  • 配置文件(config.json
  • il2cpp可执行文件(如libil2cpp.soGameAssembly.dll等)
  • 元数据文件(global-metadata.dat

项目的核心文件结构如下,了解这些文件的功能关联有助于更好地使用工具:

  • 主程序文件Il2CppDumper.exe是工具的入口,负责协调各模块工作。
  • 配置文件config.json控制工具的输出行为和参数设置。
  • 脚本文件:如ida.pyghidra.py等,用于与逆向工具集成。
  • 辅助库Libraries/Il2CppDummyDll.dll等提供必要的运行时支持。

2.2 操作步骤

  1. 🔍 准备好il2cpp可执行文件和global-metadata.dat文件,确保两者版本匹配。
  2. ⚙️ 运行Il2CppDumper.exe,程序将提示选择il2cpp可执行文件。
  3. 📂 选择对应的global-metadata.dat文件。
  4. 📝 根据提示输入必要的信息(如il2cpp版本等),如需使用默认配置可直接按回车。
  5. ✅ 程序执行完成后,输出文件将生成在当前工作目录下。

[!TIP] 确保il2cpp可执行文件和元数据文件来自同一应用版本,否则可能导致解析失败。

三、深度配置:如何通过config.json优化输出结果?

config.json是控制Il2CppDumper输出行为的关键文件,合理配置可以显著提高逆向效率。以下是主要配置项的详细说明:

配置项 默认值 适用场景 功能说明
DumpMethod true 需要分析函数逻辑时 输出方法信息,包括函数名、参数、返回值等
DumpField true 需要了解类成员变量时 输出字段信息,包括字段名、类型等
DumpProperty true 需要分析属性访问逻辑时 输出属性信息,包括getter和setter方法
DumpAttribute true 需要获取类型或成员的特性信息时 输出属性(特性)信息
DumpFieldOffset true 需要定位字段内存位置时 输出字段偏移信息,便于内存分析
DumpMethodOffset true 需要定位函数内存地址时 输出方法偏移信息,开启后可直接定位函数内存地址
DumpTypeDefIndex true 需要类型定义索引时 输出类型定义索引信息
GenerateDummyDll true 需要还原C#类型信息时 生成Dummy DLL文件
GenerateScript true 需要使用逆向工具辅助分析时 生成IDA、Ghidra等脚本文件
DummyDllAddToken true 需要在Dummy DLL中保留原始Token时 在Dummy DLL中添加Token信息
RequireAnyKey true 需要查看程序输出结果时 程序结束时按任意键退出,便于查看日志
ForceIl2CppVersion false 解析失败或版本识别错误时 强制使用指定的il2cpp版本
ForceVersion "2017.4.39" 配合ForceIl2CppVersion使用时 指定的il2cpp版本号

3.1 配置示例

以下是一个针对高级逆向分析的配置示例:

{
  "DumpMethod": true,
  "DumpField": true,
  "DumpProperty": true,
  "DumpAttribute": true,
  "DumpFieldOffset": true,
  "DumpMethodOffset": true,
  "DumpTypeDefIndex": true,
  "GenerateDummyDll": true,
  "GenerateScript": true,
  "DummyDllAddToken": true,
  "RequireAnyKey": true,
  "ForceIl2CppVersion": false,
  "ForceVersion": "2017.4.39"
}

[!WARNING] 修改配置文件后,建议备份原始配置,以便在出现问题时恢复。

四、扩展工具:如何利用脚本提升逆向效率?

Il2CppDumper提供了多种脚本文件,可与主流逆向工具集成,进一步提升分析效率。

4.1 IDA脚本

ida.pyida_py3.py(Python 3版本)适用于IDA Pro,能够自动加载解析结果,标记函数和类型信息。使用方法:

  1. 在IDA中打开il2cpp二进制文件。
  2. 执行File -> Script file...,选择对应的脚本文件。
  3. 脚本将自动处理并标记函数和类型。

4.2 Ghidra脚本

ghidra.pyghidra_with_struct.py适用于Ghidra,可实现类似IDA脚本的功能,同时支持结构体生成。使用方法与IDA脚本类似,在Ghidra中加载脚本即可。

4.3 其他工具脚本

项目还提供了适用于Hopper、Binary Ninja等工具的脚本,如hopper-py3.pyil2cpp_header_to_binja.py等,可根据使用的逆向工具选择相应脚本。

五、常见问题解决:遇到问题怎么办?

5.1 解析失败

  • 可能原因:il2cpp可执行文件与元数据文件版本不匹配。
  • 解决方法:确认两者来自同一应用版本,或尝试使用ForceIl2CppVersion配置强制指定版本。

5.2 Dummy DLL生成失败

  • 可能原因:配置中GenerateDummyDll未开启或存在依赖缺失。
  • 解决方法:检查config.jsonGenerateDummyDll是否为true,确保Libraries目录下的依赖文件存在。

5.3 脚本无法在逆向工具中运行

  • 可能原因:脚本版本与逆向工具版本不兼容。
  • 解决方法:尝试使用对应工具的不同版本脚本(如Python 2和Python 3版本)。

[!TIP] 如果遇到其他问题,可查阅项目的README.mdREADME.zh-CN.md文档,获取更多帮助信息。

总结

Il2CppDumper是il2cpp逆向工程的强大工具,通过本文的介绍,你已经了解了其核心功能、快速上手流程、深度配置方法和扩展工具应用。合理利用这些功能,能够显著提高逆向分析效率,帮助你更好地理解和处理il2cpp二进制文件。无论是新手还是有经验的开发者,都能通过Il2CppDumper轻松应对il2cpp逆向任务。

登录后查看全文
热门项目推荐
相关项目推荐