Refine translation

This commit is contained in:
dogtopus 2018-03-06 01:01:51 -04:00
parent d1e41bba10
commit 6c8b343909

View file

@ -2,18 +2,20 @@
[![Build status](https://ci.appveyor.com/api/projects/status/anhqw33vcpmp8ofa?svg=true)](https://ci.appveyor.com/project/Perfare/il2cppdumper/branch/master/artifacts)
Extract assembly-related metadata from il2cpp binaries. (types, methods, fields, etc.)
Extract .NET metadata from il2cpp binaries. (types, methods, fields, etc.)
Extraction code is based on [Il2CppDumper](https://github.com/Jumboperson/Il2CppDumper)
(For Chinese version please click [here](README_zh.md))
(For Chinese version of this document please click [here](README_zh.md))
## Features
* Supports binary format in ELF(arm, x86) and Mach-O(32bit, 64bit)
* Supports il2cpp binaries in ELF(arm, x86) and Mach-O(32bit, 64bit) format
* Supports global-metadata version 16 and 20-24
* Extracts C# metadata including types, fields, properties, methods and attributes
* Supports automated IDA script generation (name and tag methodsstore dynamic string literals in comments)
* Extracts .NET metadata including types, fields, properties, methods and attributes
* Supports automated IDA script generation
* name and tag methods
* store dynamic string literals in comments
* Generates dummy DLLs that can be viewed in .NET decompilers
## Usage
@ -28,23 +30,23 @@ The parameters (`CodeRegistration` and `MetadataRegistration`) that are passed t
#### Auto
Automatically finds the `il2cpp_codegen_register()` function by signature matching and read out the first (`CodeRegistration`) and second (`MetadataRegistration`) parameter passed to `il2cpp::vm::MetadataCache::Register()` that is invoked in that function. May not work well due to compiler optimizations.
Automatically finds the `il2cpp_codegen_register()` function by signature matching and read out the first (`CodeRegistration`) and second (`MetadataRegistration`) parameter passed to the `il2cpp::vm::MetadataCache::Register()` method that will be invoked in the registration function. May not work well due to compiler optimizations.
#### Auto(Advanced)
Matches possible pointers in the data section. Works better than `Auto` mode.
Matches possible pointers in the data section. Generally works better than `Auto` mode.
Supports metadata version 20 and later (only `CodeRegistration` address can be found on version 16).
Supports metadata version 20 and later (only `CodeRegistration` address can be found on metadata version 16).
#### Auto(Plus) - **Recommended**
Matches possible pointers in the data section with the guide from metadata. Works better than `Auto(Advanced)` mode on certain binaries.
Matches possible pointers in the data section with some guidance from global-metadata. Works better than `Auto(Advanced)` mode on certain binaries.
Supports metadata version 20 and later (only `CodeRegistration` address can be found on version 16).
Supports metadata version 20 and later (only `CodeRegistration` address can be found on metadata version 16).
#### Auto(Symbol)
Uses symbols to locate addresses.
Uses symbols in the il2cpp binary to locate `CodeRegistration` and `MetadataRegistration`.
Only supports certain Android ELF files.
@ -56,7 +58,7 @@ C# pseudocode. Can be viewed in text editors (syntax highlighting recommended)
#### script.py
Requires IDA and python. Can be loaded in IDA via `File-Script file`.
Requires IDA and IDAPython. Can be loaded in IDA via `File -> Script file`.
#### DummyDll
@ -67,23 +69,23 @@ DLLs generated by Mono.Cecil which contain the .NET metadata extracted from the
All the configuration options are located in `config.json`
Available options:
* `DumpMethod``DumpField``DumpProperty``DumpAttribute``DumpFieldOffset`
* Whether or not the program should extract these information
* `DumpMethod`, `DumpField`, `DumpProperty`, `DumpAttribute`, `DumpFieldOffset`
* Whether or not the program should extract these information
* `DummyDll`
* Whether or not the program should generate dummy DLLs
* `DummyDll`
* Whether or not the program should generate dummy DLLs
* `ForceIl2CppVersion``ForceVersion`
* If `ForceIl2CppVersion` is `true`, the program will use the version number specified in `ForceVersion` to choose parser for il2cpp binaries (does not affect the choice of metadata parser). This may be useful on some older il2cpp version (e.g. the program may need to use v16 parser on ilcpp v20 (Android) binaries in order to work properly)
* `ForceIl2CppVersion`, `ForceVersion`
* If `ForceIl2CppVersion` is `true`, the program will use the version number specified in `ForceVersion` to choose parser for il2cpp binaries (does not affect the choice of metadata parser). This may be useful on some older il2cpp version (e.g. the program may need to use v16 parser on ilcpp v20 (Android) binaries in order to work properly)
## Common errors
#### `ERROR: Metadata file supplied is not valid metadata file.`
The `global-metadata.dat` specified is invalid. Sometimes games will obfuscate this file for content protection purposes and so on. Deobfuscating is beyond the scope of this program, so please **DO NOT** file an issue regarding to deobfuscating.
The specified `global-metadata.dat` is invalid and the program cannot recognize it. Make sure you choose the correct file. Sometimes games may obfuscate this file for content protection purposes and so on. Deobfuscating of such files is beyond the scope of this program, so please **DO NOT** file an issue regarding to deobfuscating.
#### `ERROR: Can't use this mode to process file, try another mode.`
Try other extraction modes.
If all automated extraction mode fails with this error, please file an issue with the logs and sample files.
If all automated extraction modes failed with this error and you are sure that the files you supplied are not corrupted/obfuscated, please file an issue with the logs and sample files.