工具

Il2CppInspector Unity IL2CPP 静态分析工具

面向 Unity IL2CPP 应用的静态分析工具:读取 IL2CPP 二进制及其 global-metadata.dat,将应用的类型结构和方法地址输出为 C# 存根代码、供 ILSpy 和 dnSpy 等反编译器使用的 .NET 程序集垫片 DLL、为 IDA 和 Ghidra 套用符号与类型的 Python 脚本、C++ 类型脚手架以及 JSON 地址映射。三套 API(另以 NuGet 包发布)和插件 SDK 开放二进制元数据、.NET 类型模型和 C++ 模型,供自定义分析使用。README 说明它不是反编译器,不会还原方法源码。

使用条件与局限

  • README 宣布开发在可预见的未来暂停,作者也不会再回复 issue 或拉取请求。所审阅的 master 提交即添加该声明的提交,日期为 2021-11-23,比最后一个发布版 2021.1(2021-01-31)多 16 个提交。README 改为推荐 Cpp2IL;Cpp2IL 与 Il2CppDumper(其条目记载支持到 Unity 2022.2)在本目录中各有独立条目。收录 Il2CppInspector 是因为其已有文档的输出和 API,并不代表它仍在维护。
  • 其版本表将 Unity 5.3.0 至 2020.3.x(IL2CPP 16 至 27.1)标为可用,将 2021.1(27.2)标为部分支持;更新的 Unity 版本不在其列。文档列出的输入包括 ELF、PE、Mach-O、Universal Binary 和 PS4 FSELF 映像(32 位与 64 位,ARMv7、Thumb-2、ARMv8、x86 和 x64 架构),以及 APK、AAB、XAPK、Zip 和已解密的 IPA 包。
  • IL2CPP 二进制及与之匹配的 global-metadata.dat 由分析者自行提供;IPA 中的可执行文件须事先解密,README 也说明加壳、加密或混淆的 IL2CPP 文件不是其预期输入。README 警告,加载加壳的 PE 文件会执行该 DLL 的入口点和初始化代码,因此不应加载不可信的 DLL,也绝不要以管理员身份运行本工具。
  • 从递归克隆的源码用 dotnet publish 构建,目标框架为 .NET Core 3.1;命令行版本可为 Windows、macOS 和 Linux 构建,基于 WPF 的图形界面仅限 Windows,插件需通过 get-plugins 脚本另行获取。采用 AGPL-3.0 许可;Bin2Object 子模块以及 dnlib、CxxDemangler 等库保留各自的许可。针对特定混淆的加载插件和 DLL 注入项目输出不在本条目的分析范围内。本次未分析任何二进制文件,所审来源也未确立与 REA 的关联。

关于此条目

类型
工具
类别
游戏分析工具
关联
基础工具
目标
应用 · 二进制 · 游戏

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.md GitHub · djkaty/Il2CppInspector · 修订 116c635
  2. README.md#L713-L737 GitHub · djkaty/Il2CppInspector · 修订 116c635
  3. LICENSE GitHub · djkaty/Il2CppInspector · 修订 116c635
  4. Il2CppInspector.Common/Il2CppInspector.csproj GitHub · djkaty/Il2CppInspector · 修订 116c635
  5. Il2CppInspector.GUI/Il2CppInspector.GUI.csproj GitHub · djkaty/Il2CppInspector · 修订 116c635
  6. .gitmodules GitHub · djkaty/Il2CppInspector · 修订 116c635
  7. https://github.com/djkaty/Il2CppInspector/releases/tag/2021.1
  8. https://github.com/djkaty/Il2CppInspector/compare/2021.1...116c6355e7ee3656eab85ca753f913d428abc7a3