Il2CppDumper 是一款强大的工具,它能够从 il2cpp 中提取类型、方法和字段等关键数据信息。除了支持 NSO 格式的 switch 游戏,它最关键的特性是详细解决了 MetadataUsage 问题。现在在 IDA 中执行 script.py 脚本后,使用 F5 功能,你将能够看到启用案例类和静态类的实际名称。另外它还简化了剖析优化算法和进行花样改动的操作。
软件特点
支持多种格式: Il2CppDumper 支持 ELF、ELF64、Mach-O、PE 和 NSO 格式。
支持 Metadata 版本: 它支持 Metadata 版本 16、19~24,并能够导出包含 types、fields、properties、methods 和 attributes 的信息。
全自动生成 IDA 脚本: 软件能够自动生成 IDA 脚本,包括重新命名函数和注解功能。
MetadataMakeFunction: 它能够健全 IDA 剖析并生成 DummyDll。
多种运作方式: 包括 Manual(手动输入 CodeRegistration 和 MetadataRegistration 的指针地址)、Auto(根据函数特点字节数自动寻找 il2cpp_codegen_register 函数)、Auto(Plus)(优先使用 metadata 信息作为根据,指针特点作为判断标准进行检索)和 Auto(Symbol)(仅支持 ELF,使用内置的符号进行解决)。
高级设置: 包括 DumpMethod、DumpField、DumpProperty、DumpAttribute、DumpFieldOffset、DumpMethodOffset、DumpTypeDefIndex 等管理选项,以控制输出内容和 DummyDll 生成。
强制版本设置: 当 ForceIl2CppVersion 为 true 时,程序将根据 ForceVersion 指定的版本加载 il2cpp 可执行文件(Metadata 仍然使用 header 里的版本)。这在处理低版本的 il2cpp 时非常有用,例如在安卓系统 20 版本下,你可能需要设置 ForceVersion 为 16 才能正常工作。
如何使用
运行 Il2CppDumper.exe。
选择 il2cpp 可执行文件(ELF、Mach-O 或 PE 文件)和 global-metadata.dat 文件。
选择运作方式。
程序将在可执行文件目录下生成 dump.cs 文件和 script.py 脚本。
使用支持 C# 语法高亮的在线编辑器打开 dump.cs 文件。
安装 IDA 需要的 Python。
在 IDA 中,选择 File - Script file,选择 script.py 运行。
脚本将重新命名 methodName,添加 stringLiteral 注解,并执行 MakeFunction。
常见问题
ERROR: Metadata file supplied is not valid metadata file.
global-metadata.dat 不是一个有效的 metadata 文件,这通常是因为游戏数据加密了 global-metadata.dat 文件。关于破解的问题,最好去相关论坛求助,请不要在 issues 中提出。
ERROR: Can't use this mode to process file, try another mode.
当所有自动方式都无法工作时,确保可执行文件未加壳或受保护后,你可以开启一个新的 issue,并上传文件,我将尝试处理。