Update README.md

This commit is contained in:
Perfare 2018-01-08 05:10:00 +08:00 committed by GitHub
parent 8224601928
commit 4289bc18cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -7,7 +7,7 @@
* 支持ELF(arm, x86), Mach-O(32bit, 64bit)
* 支持Metadata版本16, 20, 21, 22, 23, 24
* 导出包括types, fields, properties, methods, attributes
* 自动生成IDA脚本(重命名methodName和添加stringLiteral注释)
* 自动生成IDA脚本(重命名methodName添加stringLiteral注释和MakeFunction)
* 生成DummyDll
## 使用说明
@ -15,34 +15,38 @@
### 关于模式
#### Manual
你需要手动输入CodeRegistration和MetadataRegistration的指针地址,一般需要依靠反汇编工具来获取地址
你需要手动输入`CodeRegistration``MetadataRegistration`的指针地址,一般需要依靠反汇编工具来获取地址
#### Auto
原理是通过函数的特征字节找到il2cpp_codegen_register函数并获取传入il2cpp::vm::MetadataCache::Register中的参数1CodeRegistration和参数2MetadataRegistration。不过由于不同编译器编译出来的结果有差异对于不常见的形式将无法正常工作。
原理是通过函数的特征字节找到`il2cpp_codegen_register`函数并获取传入`il2cpp::vm::MetadataCache::Register`中的参数1`CodeRegistration`和参数2`MetadataRegistration`)。不过由于不同编译器编译出来的结果有差异,很多情况下无法正常工作。
#### Auto(Advanced)
支持Metadata 20及以后的版本在16版本下只能获取到CodeRegistration地址利用指针特征进行搜索通用性比Auto强。
#### Auto(Plus)
支持Metadata 20及以后的版本在16版本下只能获取到CodeRegistration地址以metadata的数据作为依据指针特征作为判读条件进行搜索对于某些文件处理的比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注释
需要安装IDA所需的python。在IDA中File-Script file选择script.py运行即可会重命名methodName添加stringLiteral注释和MakeFunction
### 关于DummyDll
利用Mono.Cecil生成的仿制Dll可以使用反编译工具打开进行查看
部分功能完善中
利用Mono.Cecil生成的仿制Dll使用反编译工具进行查看
### 关于config.json
`dumpmethod``dumpfield``dumpproperty``dumpattribute``dumpfieldoffset`
`DumpMethod``DumpField``DumpProperty``DumpAttribute``DumpFieldOffset`
控制程序是否在dump.cs输出相应的内容  
`forceil2cppversion``forceversion`
当forceil2cppversion为true时程序将根据forceversion指定的版本读取il2cpp的可执行文件Metadata仍然使用header里的版本这在部分低版本的il2cpp中将会有用比如安卓20版本下你可能需要设置forceversion为16程序才能正常工作
`DummyDll`
控制程序是否生成DummyDll  
`ForceIl2CppVersion``ForceVersion`
当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: Unable to process file automatically, try to use other mode.`  
两种自动模式都无法工作时你可以打开一个新的issue并上传文件我会尝试解决
#### `ERROR: Can't use this mode to process file, try another mode.`  
所有自动模式都无法工作时你可以打开一个新的issue并上传文件我会尝试解决