Skip to content

Get types, methods, fields and so on from Unity Il2Cpp binary file

License

Notifications You must be signed in to change notification settings

david8557/Il2CppDumper

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Il2CppDumper

Build status
从il2cpp中获取types, methods, fields等等数据
基础逻辑代码来源于Il2CppDumper

功能

  • 支持ELF(arm, x86), Mach-O(32bit, 64bit)
  • 支持Metadata版本16, 20, 21, 22, 23, 24
  • 导出包括types, fields, properties, methods, attributes
  • 自动生成IDA脚本(重命名methodName,添加stringLiteral注释和MakeFunction)
  • 生成DummyDll

使用说明

运行Il2CppDumper.exe并依次选择il2cpp的可执行文件(ELF或者Mach-O文件)和global-metadata.dat文件,然后选择运行的模式,将生成dump.cs文件和script.py脚本

关于模式

Manual

你需要手动输入CodeRegistrationMetadataRegistration的指针地址,一般需要依靠反汇编工具来获取地址

Auto

原理是通过函数的特征字节找到il2cpp_codegen_register函数并获取传入il2cpp::vm::MetadataCache::Register中的参数1(CodeRegistration)和参数2(MetadataRegistration)。不过由于不同编译器编译出来的结果有差异,很多情况下无法正常工作。

Auto(Advanced)

支持Metadata 20及以后的版本,在16版本下只能获取到CodeRegistration地址,利用指针特征进行搜索,通用性比Auto强。

Auto(Plus) - Recommend

支持Metadata 20及以后的版本,在16版本下只能获取到CodeRegistration地址,以metadata的数据作为依据,指针特征作为判读条件进行搜索,对于某些文件处理的比Auto(Advanced)好。

Auto(Symbol)

只支持安卓,使用自带的符号进行处理。

关于dump.cs

文本文件,推荐使用有c#语法高亮的编辑器打开

关于script.py

需要安装IDA所需的python。在IDA中File-Script file选择script.py运行即可,会重命名methodName,添加stringLiteral注释和MakeFunction

关于DummyDll

利用Mono.Cecil生成的仿制Dll,使用反编译工具进行查看

关于config.json

DumpMethodDumpFieldDumpPropertyDumpAttributeDumpFieldOffset
控制程序是否在dump.cs输出相应的内容  

DummyDll
控制程序是否生成DummyDll  

ForceIl2CppVersionForceVersion
当ForceIl2CppVersion为true时,程序将根据ForceVersion指定的版本读取il2cpp的可执行文件(Metadata仍然使用header里的版本),这在部分低版本的il2cpp中将会有用(比如安卓20版本下,你可能需要设置ForceVersion为16程序才能正常工作)

常见问题

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,并上传文件,我会尝试解决

About

Get types, methods, fields and so on from Unity Il2Cpp binary file

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%