/Il2CppDumper-Genshin

Modified version of Il2CppDumper allows you to dump methods of UserAssembly.dll of the game Genshin Impact.

Primary LanguageC#MIT LicenseMIT

Il2CppDumper

If this project affects you, please contact: 1582421598@badguys.club

Modified version of Il2CppDumper allows you to dump methods of UserAssembly.dll of the game Genshin Impact

Only supports Genshin Impact 2.7 and above

中文说明请戳这里

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 - 2021.3
  • 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

Shouldn't execute to here.

An update may have occurred in global-metadata.dat, and there is an unsupported situation.

ERROR: It not genshin's metadata!

An update may have occurred in global-metadata.dat, the file structure has changed.

Credits