Il2CppDumper/README.zh-CN.md

91 lines
2.8 KiB
Markdown
Raw Normal View History

2018-03-05 02:29:53 -03:00
# Il2CppDumper
2019-11-06 09:15:03 -03:00
[![Build status](https://ci.appveyor.com/api/projects/status/anhqw33vcpmp8ofa?svg=true)](https://ci.appveyor.com/project/Perfare/il2cppdumper/branch/master/artifacts)
2020-02-12 17:40:09 -03:00
Unity il2cpp逆向工程
2018-03-05 02:29:53 -03:00
## 功能
2020-02-12 17:40:09 -03:00
* 还原DLL文件不包含代码可用于提取`MonoBehaviour`和`MonoScript`
2019-04-11 21:17:29 -04:00
* 支持ELF, ELF64, Mach-O, PE和NSO格式
2020-02-12 17:40:09 -03:00
* 支持Unity 5.3 - 2020
* 生成IDA和Ghidra的脚本帮助IDA和Ghidra更好的分析il2cpp文件
* 支持从内存dump的`libil2cpp.so`文件以绕过99%的保护
2018-03-05 02:29:53 -03:00
## 使用说明
2019-11-06 09:15:03 -03:00
2020-02-12 17:40:09 -03:00
直接运行Il2CppDumper.exe并依次选择il2cpp的可执行文件和global-metadata.dat文件然后根据提示输入相应信息。
程序运行完成后将在当前运行目录下生成输出文件
### 命令行
2019-11-06 09:15:03 -03:00
```
2020-02-25 15:04:13 -03:00
Il2CppDumper.exe <executable-file> <global-metadata>
2019-11-06 09:15:03 -03:00
```
2020-02-12 17:40:09 -03:00
### 输出文件
2019-04-26 07:37:18 -04:00
2020-02-12 17:40:09 -03:00
#### DummyDll
2019-04-26 07:37:18 -04:00
2020-02-12 17:40:09 -03:00
文件夹包含所有还原的DLL文件
2019-04-26 07:37:18 -04:00
2020-02-12 17:40:09 -03:00
使用[dnSpy](https://github.com/0xd4d/dnSpy)[ILSpy](https://github.com/icsharpcode/ILSpy)或者其他.Net反编译工具即可查看具体信息
2018-03-05 02:29:53 -03:00
2020-02-12 17:40:09 -03:00
可用于提取Unity的`MonoBehaviour`和`MonoScript`,适用于[UtinyRipper](https://github.com/mafaca/UtinyRipper)或者[UABE](https://7daystodie.com/forums/showthread.php?22675-Unity-Assets-Bundle-Extractor)等
#### ida.py
2019-11-06 09:15:03 -03:00
2020-02-12 17:40:09 -03:00
用于IDA
2018-03-05 02:29:53 -03:00
2020-02-27 07:57:34 -03:00
#### ida_with_struct.py
用于IDA, 读取il2cpp.h文件并在IDA中应用结构信息
#### il2cpp.h
包含结构体的头文件
2020-02-12 17:40:09 -03:00
#### ghidra.py
用于Ghidra
2018-03-05 02:29:53 -03:00
2020-02-22 15:31:34 -03:00
#### script.json
用于IDA和Ghidra脚本
2019-11-06 09:15:03 -03:00
#### stringliteral.json
2020-02-12 17:40:09 -03:00
包含所有stringLiteral信息
2018-03-05 02:29:53 -03:00
### 关于config.json
2020-02-12 17:40:09 -03:00
2019-11-06 09:15:03 -03:00
* `DumpMethod``DumpField``DumpProperty``DumpAttribute``DumpFieldOffset`, `DumpMethodOffset`, `DumpTypeDefIndex`
* 是否在dump.cs输出相应的内容
2018-03-05 02:29:53 -03:00
2019-11-06 09:15:03 -03:00
* `DummyDll`
* 是否生成DummyDll
2018-03-05 02:29:53 -03:00
2019-11-06 09:15:03 -03:00
* `MakeFunction`
2020-02-25 15:03:23 -03:00
* 是否在script.json中添加MakeFunction代码
2019-11-06 09:15:03 -03:00
* `ForceIl2CppVersion``ForceVersion`
* 当ForceIl2CppVersion为true时程序将根据ForceVersion指定的版本读取il2cpp的可执行文件Metadata仍然使用header里的版本在部分低版本的il2cpp中可能会用到比如安卓20版本下你可能需要设置ForceVersion为16程序才能正常工作
2018-03-05 02:29:53 -03:00
## 常见问题
2020-02-12 17:40:09 -03:00
2019-11-06 09:15:03 -03:00
#### `ERROR: Metadata file supplied is not valid metadata file.`
2018-03-05 02:29:53 -03:00
2020-02-12 17:40:09 -03:00
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%的保护
2019-11-06 09:15:03 -03:00
## 感谢
2020-02-12 17:40:09 -03:00
2019-11-06 09:15:03 -03:00
- Jumboperson - [Il2CppDumper](https://github.com/Jumboperson/Il2CppDumper)