rev-dex-dumper
Dump DEX files from a running Android app for unpacking/deobfuscation. Activate when the user wants to unpack an Android APK,…
Dump Unity IL2CPP symbols from iOS/Android builds. Extract method names, addresses, and type info from IL2CPP binaries and global-metadata.dat, then generate IDA/Ghidra import scripts.
$ npx -y skills add p4nda0s/reverse-skills --skill rev-u3d-dump --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/rev-u3d-dumpContext preview
The summary Claude sees to decide when to auto-load this skill.
Dump Unity IL2CPP symbols from iOS/Android builds. Extract method names, addresses, and type info from IL2CPP binaries and global-metadata.dat, then generate IDA/Ghidra import scripts.
name: rev-u3d-dump description: Dump Unity IL2CPP symbols from iOS/Android builds. Extract method names, addresses, and type info from IL2CPP binaries and global-metadata.dat, then generate IDA/Ghidra import scripts.
Extract C# method names, addresses, and type definitions from Unity IL2CPP builds for IDA/Ghidra analysis.
---
Unity IL2CPP compiles C# to native code. The original class/method names are stripped from the binary but preserved in `global-metadata.dat`. This skill recovers the mapping between native function addresses and their original C# names.
| File | Location | Purpose | |------|----------|---------| | Native binary | iOS: `Frameworks/UnityFramework.framework/UnityFramework`<br>Android: `lib/{arch}/libil2cpp.so` | Compiled C# code (Mach-O / ELF) | | Metadata | `Data/Managed/Metadata/global-metadata.dat` | All type/method/string info |
---
Use the **v39 fork** for Unity 6+ builds:
The original Il2CppDumper (`https://github.com/Perfare/Il2CppDumper`) only supports up to v29.
---
**iOS (IPA):**
# Unzip IPA unzip -o app.ipa -d . # Binary BINARY="Payload/<AppName>.app/Frameworks/UnityFramework.framework/UnityFramework" # Metadata METADATA="Payload/<AppName>.app/Data/Managed/Metadata/global-metadata.dat"
**Android (APK):**
# Unzip APK unzip -o app.apk -d . # Binary (pick target arch) BINARY="lib/arm64-v8a/libil2cpp.so" # Metadata METADATA="assets/bin/Data/Managed/Metadata/global-metadata.dat"
# First 8 bytes: magic (4) + version (4), little-endian xxd -l 8 "$METADATA" # Expected: af1b b1fa 2700 0000 → magic OK, version = 0x27 = 39
| Version | Unity | Tool | |---------|-------|------| | ≤ 29 | Unity 2021 and earlier | Original Il2CppDumper | | 31 | Unity 2022 | Original Il2CppDumper (partial) | | 39 | Unity 6 (6000.x) | **roytu/Il2CppDumper v39 fork** |
# Clone v39 fork git clone -b v39 https://github.com/roytu/Il2CppDumper.git # Build cd Il2CppDumper DOTNET_ROLL_FORWARD=LatestMajor dotnet build -c Release # Run (use net8.0 framework) DOTNET_ROLL_FORWARD=LatestMajor dotnet run \ --project Il2CppDumper/Il2CppDumper.csproj \ -c Release --framework net8.0 \ -- "$BINARY" "$METADATA" output_dir
**Notes:**
Successful run produces these files in the output directory:
| File | Size (typical) | Purpose | |------|----------------|---------| | `script.json` | 50–100 MB | Function addresses + names + signatures (IDA/Ghidra import) | | `dump.cs` | 10–30 MB | C# class dump with RVA/VA addresses | | `il2cpp.h` | 50–100 MB | C struct definitions for type import | | `ida_py3.py` | ~2 KB | IDA Python import script |
Check `script.json` format:
{
"ScriptMethod": [
{
"Address": 40865744,
"Name": "ClassName$$MethodName",
"Signature": "ReturnType ClassName__MethodName (args...);",
"TypeSignature": "viii"
}
]
}Check `dump.cs` format:
// RVA: 0x1A2B3C4 Offset: 0x1A2B3C4 VA: 0x1A2B3C4
public void MethodName() { }1. Open the native binary in IDA (UnityFramework / libil2cpp.so) 2. Place `script.json` and `ida_py3.py` in the same directory 3. `File → Script file...` → select `ida_py3.py` 4. The script reads `script.json` and renames all functions automatically 5. Optional: `File → Load file → Parse C header file...` → select `il2cpp.h` for struct types
1. Open the binary in Ghidra 2. Use the `ghidra.py` or `ghidra_with_struct.py` script from Il2CppDumper 3. `Window → Script Manager → Run` with `script.json` in the same directory
---
| Error | Cause | Fix | |-------|-------|-----| | `not a supported version[39]` | Using original Il2CppDumper | Switch to roytu/Il2CppDumper v39 fork | | Exit code 137 (SIGKILL) | macOS unsigned binary | `codesign -s - <binary>` | | `Cannot read keys` (exit 134) | Non-interactive console | Ignore — dump completed successfully | | `DOTNET_ROLL_FORWARD` error | .NET version mismatch | Set `DOTNET_ROLL_FORWARD=LatestMajor` | | Empty output | Wrong binary/metadata pair | Verify both files are from the same build |
---
逆向工程分析技能,支持 40+ 种 AI 编程工具。 专为 IDA-NO-MCP 设计 - 从 IDA 导出反编译结果,然后使用 AI 编程工具进行分析。
Dump DEX files from a running Android app for unpacking/deobfuscation. Activate when the user wants to unpack an Android APK,…
Generate Frida hook scripts using modern Frida API. Activate when the user wants to write Frida scripts, hook functions at…
IDAPython and IDALib script reference for reverse engineering. Activate when the user needs to write IDAPython scripts in IDA,…
Reconstruct data structures by analyzing memory access patterns across functions
Restore function symbols by analyzing code patterns, strings, constants, and cross-references
Debug and emulate specific code fragments or functions using the Unicorn engine. Activate when the user wants to emulate a…