### Analyze Dumped C# Definitions Source: https://context7.com/perfare/il2cppdumper/llms.txt An example of the generated dump.cs file, showing how classes, fields, properties, and methods are represented with their memory offsets. ```csharp // Image 0: Assembly-CSharp.dll - 0 // Namespace: GameLogic [Serializable] public class PlayerController : MonoBehaviour // TypeDefIndex: 1234 { public float moveSpeed; // 0x18 private int health; // 0x1C public static PlayerController instance; // 0x0 public int Health { get; set; } // RVA: 0x1A2B3C Offset: 0x1A1B3C VA: 0x181A2B3C public void Start() { } // RVA: 0x1A2B80 Offset: 0x1A1B80 VA: 0x181A2B80 Slot: 4 public override void Update() { } // RVA: 0x1A2C00 Offset: 0x1A1C00 VA: 0x181A2C00 public void TakeDamage(int damage) { } } ``` -------------------------------- ### Binary Ninja Plugin Initialization Source: https://context7.com/perfare/il2cppdumper/llms.txt Entry point for the Binary Ninja plugin that imports Il2CppDumper analysis data. It defines the installation path and usage instructions for loading script.json. ```python # Il2CppBinaryNinja/__init__.py # Install to Binary Ninja plugins folder # Installation: # 1. Copy Il2CppBinaryNinja folder to: # - Windows: %APPDATA%\Binary Ninja\plugins\ # - macOS: ~/Library/Application Support/Binary Ninja/plugins/ # - Linux: ~/.binaryninja/plugins/ ``` -------------------------------- ### Inspect Dummy DLLs in Decompilers Source: https://context7.com/perfare/il2cppdumper/llms.txt Generated dummy DLLs allow for type inspection in tools like dnSpy or ILSpy. This example shows the structure of a class as it appears after being processed by Il2CppDumper. ```csharp namespace GameLogic { public class PlayerController : MonoBehaviour { public float moveSpeed; private int health; public void Start() { } public override void Update() { } public void TakeDamage(int damage) { } } } ``` -------------------------------- ### Execute Il2CppDumper via Command Line Source: https://context7.com/perfare/il2cppdumper/llms.txt Demonstrates how to run the tool to process different Unity game binaries by providing the executable path, metadata file, and output directory. ```bash Il2CppDumper.exe Il2CppDumper.exe libil2cpp.so global-metadata.dat ./output/ Il2CppDumper.exe GameAssembly.dll global-metadata.dat ./output/ Il2CppDumper.exe GameName.app/Contents/Frameworks/GameAssembly.dylib global-metadata.dat ./output/ Il2CppDumper.exe -h ``` -------------------------------- ### Process Memory Dumps Source: https://context7.com/perfare/il2cppdumper/llms.txt Instructions for processing memory-dumped files from Android devices. This involves running the executable with the library and metadata files, then providing the base address for relocation. ```bash Il2CppDumper.exe libil2cpp.so global-metadata.dat ./output/ ``` ```json { "ForceDump": true, "NoRedirectedPointer": true } ``` -------------------------------- ### Automate Reverse Engineering with IDA Pro Scripts Source: https://context7.com/perfare/il2cppdumper/llms.txt Scripts for IDA Pro to import method names, string literals, and metadata. Includes a version that supports C structure definitions for better decompilation. ```python # ida.py - Run in IDA Pro's Python console # File > Script file... > Select ida.py # ida_with_struct.py - Run in IDA Pro for full struct support # Requires: il2cpp.h and script.json in the same directory # 1. File > Load file > Parse C header file > il2cpp.h # 2. Then run ida_with_struct.py ``` -------------------------------- ### Configure Il2CppDumper Behavior Source: https://context7.com/perfare/il2cppdumper/llms.txt A JSON configuration file used to toggle specific dumping features such as methods, fields, and properties, or to force specific versions. ```json { "DumpMethod": true, "DumpField": true, "DumpProperty": true, "DumpAttribute": true, "DumpFieldOffset": true, "DumpMethodOffset": true, "DumpTypeDefIndex": true, "GenerateDummyDll": true, "GenerateStruct": true, "DummyDllAddToken": true, "RequireAnyKey": true, "ForceIl2CppVersion": false, "ForceVersion": 24.3, "ForceDump": false, "NoRedirectedPointer": false } ``` -------------------------------- ### Force Unity Version Override Source: https://context7.com/perfare/il2cppdumper/llms.txt Configure the dumper to use a specific il2cpp version parser when automatic detection fails. This is useful for Unity versions that report incorrectly or require specific parsing logic. ```json { "ForceIl2CppVersion": true, "ForceVersion": 24.3 } ``` ```bash Il2CppDumper.exe GameAssembly.dll global-metadata.dat ./output/ ``` -------------------------------- ### Ghidra WebAssembly Analysis Script Source: https://context7.com/perfare/il2cppdumper/llms.txt A Python script designed to be run within Ghidra to analyze Unity WebGL builds. It requires the ghidra-wasm-plugin to map linear memory and handle WASM function indices. ```python # ghidra_wasm.py - For WebGL Unity builds # Requires: ghidra-wasm-plugin (https://github.com/nneonneo/ghidra-wasm-plugin) # Usage: # 1. Install ghidra-wasm-plugin # 2. Open the .wasm file in Ghidra # 3. Run ghidra_wasm.py # 4. Select script.json ``` -------------------------------- ### Import Metadata into Ghidra Source: https://context7.com/perfare/il2cppdumper/llms.txt A Python script designed to be run within Ghidra's Script Manager to import Il2CppDumper output for enhanced analysis. ```python # ghidra.py - Run in Ghidra's Script Manager # Window > Script Manager > Run Script > ghidra.py ``` -------------------------------- ### Il2Cpp Type Structure Header Source: https://context7.com/perfare/il2cppdumper/llms.txt A C header file containing struct definitions for il2cpp types. This enables disassemblers like IDA and Ghidra to provide accurate type information for objects and fields. ```c struct PlayerController_Fields { float moveSpeed; int32_t health; UnityEngine_Transform_o* transform; UnityEngine_Rigidbody_o* rb; }; struct PlayerController_o { PlayerController_c* klass; void* monitor; PlayerController_Fields fields; }; ``` -------------------------------- ### Il2CppDumper Script JSON Schema Source: https://context7.com/perfare/il2cppdumper/llms.txt The structure of the script.json file, which maps method addresses, signatures, string literals, and metadata for automated labeling in disassemblers. ```json { "ScriptMethod": [ { "Address": 1715004, "Name": "UnityEngine.Object$$Destroy", "Signature": "void UnityEngine_Object$$Destroy (UnityEngine_Object_o* obj, const MethodInfo* method);", "TypeSignature": "vii" } ], "ScriptString": [ { "Address": 2048576, "Value": "Player has died" } ], "ScriptMetadata": [ { "Address": 3145728, "Name": "PlayerController_TypeInfo", "Signature": "PlayerController_c*" } ] } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.