工具
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 的关联。
关于此条目
- 类型
- 工具
- 类别
- 游戏分析工具
- 关联
- 基础工具
- 目标
- 应用 · 二进制 · 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · djkaty/Il2CppInspector · 修订 116c635
- README.md#L713-L737 GitHub · djkaty/Il2CppInspector · 修订 116c635
- LICENSE GitHub · djkaty/Il2CppInspector · 修订 116c635
- Il2CppInspector.Common/Il2CppInspector.csproj GitHub · djkaty/Il2CppInspector · 修订 116c635
- Il2CppInspector.GUI/Il2CppInspector.GUI.csproj GitHub · djkaty/Il2CppInspector · 修订 116c635
- .gitmodules GitHub · djkaty/Il2CppInspector · 修订 116c635
- https://github.com/djkaty/Il2CppInspector/releases/tag/2021.1
- https://github.com/djkaty/Il2CppInspector/compare/2021.1...116c6355e7ee3656eab85ca753f913d428abc7a3