Il2CppDumper/README.zh-CN.md
2020-02-27 18:57:34 +08:00

91 lines
No EOL
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Il2CppDumper
[![Build status](https://ci.appveyor.com/api/projects/status/anhqw33vcpmp8ofa?svg=true)](https://ci.appveyor.com/project/Perfare/il2cppdumper/branch/master/artifacts)
Unity il2cpp逆向工程
## 功能
* 还原DLL文件不包含代码可用于提取`MonoBehaviour`和`MonoScript`
* 支持ELF, ELF64, Mach-O, PE和NSO格式
* 支持Unity 5.3 - 2020
* 生成IDA和Ghidra的脚本帮助IDA和Ghidra更好的分析il2cpp文件
* 支持从内存dump的`libil2cpp.so`文件以绕过99%的保护
## 使用说明
直接运行Il2CppDumper.exe并依次选择il2cpp的可执行文件和global-metadata.dat文件然后根据提示输入相应信息。
程序运行完成后将在当前运行目录下生成输出文件
### 命令行
```
Il2CppDumper.exe <executable-file> <global-metadata>
```
### 输出文件
#### DummyDll
文件夹包含所有还原的DLL文件
使用[dnSpy](https://github.com/0xd4d/dnSpy)[ILSpy](https://github.com/icsharpcode/ILSpy)或者其他.Net反编译工具即可查看具体信息
可用于提取Unity的`MonoBehaviour`和`MonoScript`,适用于[UtinyRipper](https://github.com/mafaca/UtinyRipper)或者[UABE](https://7daystodie.com/forums/showthread.php?22675-Unity-Assets-Bundle-Extractor)等
#### ida.py
用于IDA
#### ida_with_struct.py
用于IDA, 读取il2cpp.h文件并在IDA中应用结构信息
#### il2cpp.h
包含结构体的头文件
#### ghidra.py
用于Ghidra
#### script.json
用于IDA和Ghidra脚本
#### stringliteral.json
包含所有stringLiteral信息
### 关于config.json
* `DumpMethod``DumpField``DumpProperty``DumpAttribute``DumpFieldOffset`, `DumpMethodOffset`, `DumpTypeDefIndex`
* 是否在dump.cs输出相应的内容
* `DummyDll`
* 是否生成DummyDll
* `MakeFunction`
* 是否在script.json中添加MakeFunction代码
* `ForceIl2CppVersion``ForceVersion`
* 当ForceIl2CppVersion为true时程序将根据ForceVersion指定的版本读取il2cpp的可执行文件Metadata仍然使用header里的版本在部分低版本的il2cpp中可能会用到比如安卓20版本下你可能需要设置ForceVersion为16程序才能正常工作
## 常见问题
#### `ERROR: Metadata file supplied is not valid metadata file.`
global-metadata.dat已被加密。关于解密的问题请去相关破解论坛寻求帮助请不要在issues提问
#### `ERROR: Can't use auto mode to process file, try manual mode.`
确认可执行文件未受保护后你可以打开一个新的issue并上传文件我会尝试解决
#### `ERROR: This file may be protected.`
Il2CppDumper检测到可执行文件已被保护使用`GameGuardian`从游戏内存中dump `libil2cpp.so`然后使用Il2CppDumper载入按提示操作即可绕过99%的保护
## 感谢
- Jumboperson - [Il2CppDumper](https://github.com/Jumboperson/Il2CppDumper)