├── Mono.Cecil.dll ├── Il2CppDumper.exe ├── Il2CppDumper.pdb ├── ScreenShots ├── img1.png └── img2.png ├── config.json └── README.md /Mono.Cecil.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Shubzz-02/Il2CppDumper/HEAD/Mono.Cecil.dll -------------------------------------------------------------------------------- /Il2CppDumper.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Shubzz-02/Il2CppDumper/HEAD/Il2CppDumper.exe -------------------------------------------------------------------------------- /Il2CppDumper.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Shubzz-02/Il2CppDumper/HEAD/Il2CppDumper.pdb -------------------------------------------------------------------------------- /ScreenShots/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Shubzz-02/Il2CppDumper/HEAD/ScreenShots/img1.png -------------------------------------------------------------------------------- /ScreenShots/img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Shubzz-02/Il2CppDumper/HEAD/ScreenShots/img2.png -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "DumpMethod": true, 3 | "DumpField": true, 4 | "DumpProperty": true, 5 | "DumpAttribute": true, 6 | "DumpFieldOffset": true, 7 | "DumpMethodOffset": true, 8 | "DumpTypeDefIndex": true, 9 | "DummyDll": true, 10 | "MakeFunction": true, 11 | "ForceIl2CppVersion": false, 12 | "ForceVersion": 16 13 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Il2CppDumper! 2 | 3 | Extract .NET metadata from il2cpp binaries. (types, methods, fields, etc.) 4 | 5 | 6 | # Output files 7 | 8 | - `DummyDll` :- DLLs generated by Mono.Cecil which contain the .NET metadata extracted from the binary (no code included). Can be viewed in .NET decompilers (ILSPy, DnsPy, JetBrains dotPeek (recommended) ). 9 | - `script.py` :- Requires IDA (I use IDA 7.0 Pro ) and IDAPython. 10 | - `dump.cs` :- C# pseudocode. Can be viewed in text editors (syntax highlighting recommended) 11 | 12 | # Usage 13 | 14 | - ### To extract Dlls 15 | 1. `git clone https://github.com/Shubzz-02/Il2CppDumper.git` 16 | 2. Copy your `libil2cpp.so` and `global-metadata.dat` to Il2CppDumper/ folder. 17 | 3. Run `Il2CppDumper.exe` choose `libil2cpp.so` and `global-metadata.dat`. 18 | 4. To find unity version open `/assets/bin/Data/Resources/unity_builtin_extra` in any hex editor ( try [hexed](https://hexed.it/?hl=en)) and look at address `0x00000014` (see [screenshots](https://github.com/Shubzz-02/Il2CppDumper#screenshots) attached below) you will find something like `2018.3.14f` this is the unity version you need, type this in terminal and press enter. 19 | 5. In mode selection Select 3 (recommended) wait until process finish. 20 | 6. Now in DummyDll folder you will find some .dll files these contain .NET metadata extracted from the binary, Open `Assembly-CSharp.dll` in any .NET decompilers (ILSPy, DnsPy, JetBrains dotPeek (recommended) ). 21 | - ### To extract method name In IDA 22 | 1. Follow above Step 1 to 5. 23 | 2. Open `libil2cpp.so` in Ida (Note :- Use IDA Pro ) and wait until Ida load it completely. 24 | 3. Load `script.py` in Ida via `File -> Script file`, and wait for script to execute. 25 | 4. Now you will see functions name in Ida Function Window. 26 | 5. Done! happy Reversing 27 | 28 | 29 | # ScreenShots 30 | ![Hex](ScreenShots/img1.png ) ![IDA](ScreenShots/img2.png ) --------------------------------------------------------------------------------