Convert Figma logo to code with AI

Perfare logoIl2CppDumper

Unity il2cpp reverse engineer

7,921
1,588
7,921
118

Top Related Projects

Powerful automated tool for reverse engineering Unity IL2CPP binaries

Quick Overview

Il2CppDumper is a tool designed to reverse engineer Unity IL2CPP games. It can generate dummy DLLs, get structure data, and more from IL2CPP binaries. This project is particularly useful for game modders, security researchers, and developers working with Unity games compiled using IL2CPP.

Pros

  • Supports multiple platforms including Windows, macOS, Linux, Android, iOS, and WebGL
  • Provides detailed output including metadata, global-metadata, and TypeRef
  • Offers both command-line interface and GUI versions for user flexibility
  • Regularly updated to support the latest Unity versions

Cons

  • Requires some technical knowledge to use effectively
  • May not work perfectly with all games, especially those with custom obfuscation
  • Could potentially be used for unethical purposes if misused
  • Might be affected by future changes in Unity's IL2CPP implementation

Getting Started

  1. Download the latest release from the GitHub repository.
  2. Extract the files to a directory of your choice.
  3. Run Il2CppDumper.exe (GUI version) or use the command-line interface:
Il2CppDumper.exe <il2cpp file> <global-metadata>
  1. Select the correct options for your target game (e.g., architecture, Unity version).
  2. Wait for the process to complete. The tool will generate output files in the same directory.

Note: Always ensure you have the legal right to reverse engineer the target application before using this tool.

Competitor Comparisons

Powerful automated tool for reverse engineering Unity IL2CPP binaries

Pros of Il2CppInspector

  • More comprehensive analysis and output options, including C# code generation
  • Better support for newer Unity versions and IL2CPP updates
  • More active development and community support

Cons of Il2CppInspector

  • Slower processing speed for large applications
  • Higher system requirements and more complex setup process

Code Comparison

Il2CppDumper:

public static Il2CppDumper Create(string gameAssemblyPath, string metadataPath)
{
    return new Il2CppDumper(gameAssemblyPath, metadataPath);
}

Il2CppInspector:

public static Il2CppInspector Create(IFileFormatStream[] inputs, IMetadataAccess metadata)
{
    return new Il2CppInspector(inputs, metadata);
}

Both projects aim to analyze and extract information from IL2CPP-compiled Unity games, but Il2CppInspector offers more advanced features and better compatibility with recent Unity versions. Il2CppDumper is simpler and faster for basic dumping tasks, while Il2CppInspector provides more in-depth analysis and code generation capabilities at the cost of increased complexity and processing time.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Il2CppDumper

Build status

中文说明请戳这里

Unity il2cpp reverse engineer

Features

  • Complete DLL restore (except code), can be used to extract MonoBehaviour and MonoScript
  • Supports ELF, ELF64, Mach-O, PE, NSO and WASM format
  • Supports Unity 5.3 - 2022.2
  • Supports generate IDA, Ghidra and Binary Ninja scripts to help them better analyze il2cpp files
  • Supports generate structures header file
  • Supports Android memory dumped libil2cpp.so file to bypass protection
  • Support bypassing simple PE protection

Usage

Run Il2CppDumper.exe and choose the il2cpp executable file and global-metadata.dat file, then enter the information as prompted

The program will then generate all the output files in current working directory

Command-line

Il2CppDumper.exe <executable-file> <global-metadata> <output-directory>

Outputs

DummyDll

Folder, containing all restored dll files

Use dnSpy, ILSpy or other .Net decompiler tools to view

Can be used to extract Unity MonoBehaviour and MonoScript, for UtinyRipper, UABE

ida.py

For IDA

ida_with_struct.py

For IDA, read il2cpp.h file and apply structure information in IDA

il2cpp.h

structure information header file

ghidra.py

For Ghidra

Il2CppBinaryNinja

For BinaryNinja

ghidra_wasm.py

For Ghidra, work with ghidra-wasm-plugin

script.json

For ida.py, ghidra.py and Il2CppBinaryNinja

stringliteral.json

Contains all stringLiteral information

Configuration

All the configuration options are located in config.json

Available options:

  • DumpMethod, DumpField, DumpProperty, DumpAttribute, DumpFieldOffset, DumpMethodOffset, DumpTypeDefIndex

    • Whether to output these information to dump.cs
  • GenerateDummyDll, GenerateScript

    • Whether to generate these things
  • DummyDllAddToken

    • Whether to add token in DummyDll
  • RequireAnyKey

    • Whether to press any key to exit at the end
  • 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 il2cpp v20 (Android) binaries in order to work properly)
  • ForceDump

    • Force files to be treated as dumped
  • NoRedirectedPointer

    • Treat pointers in dumped files as unredirected, This option needs to be true for files dumped from some devices

Common errors

ERROR: Metadata file supplied is not valid metadata file.

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.

If your file is libil2cpp.so and you have a rooted Android phone, you can try my other project Zygisk-Il2CppDumper, it can bypass this protection.

ERROR: Can't use auto mode to process file, try manual mode.

Please note that the executable file for the PC platform is GameAssembly.dll or *Assembly.dll

You can open a new issue and upload the file, I will try to solve.

ERROR: This file may be protected.

Il2CppDumper detected that the executable file has been protected, use GameGuardian to dump libil2cpp.so from the game memory, then use Il2CppDumper to load and follow the prompts, can bypass most protections.

If you have a rooted Android phone, you can try my other project Zygisk-Il2CppDumper, it can bypass almost all protections.

Credits