Generate PDB debug symbols for a Unity IL2CPP game like Rust
Load a generated PDB into IDA or another debugger to see readable type and function names
Reverse engineer or mod a Unity game built with IL2CPP metadata v39
Reconstruct a C header describing a game's IL2CPP struct layout
| vmx7/rust_pdb | flybroken/sam2-tensorrt | molaorg/rosbag_timing_inspector | |
|---|---|---|---|
| Stars | 36 | 35 | 37 |
| Language | C++ | C++ | C++ |
| Setup difficulty | moderate | hard | hard |
| Complexity | 5/5 | 5/5 | 4/5 |
| Audience | developer | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Visual Studio 2022 and a 64-bit IL2CPP game built with metadata version 39.
rust_pdb is a tool that generates a Windows debug symbol file, called a PDB, directly from a Unity game that was built using IL2CPP, without needing any of Unity's own build tools or compilers. IL2CPP is the technology Unity uses to convert a game's C# code into native machine code, and games built this way lose the readable information a debugger would normally use to make sense of the compiled program. A PDB file restores that information for debugging tools, letting someone see function and type names instead of raw memory addresses. To produce a PDB, the tool reads two files that already ship inside any IL2CPP built game: GameAssembly.dll, the compiled game code, and global-metadata.dat, a file describing the original types, methods, and structure of the game's code. It parses this metadata itself, without relying on any external metadata dumping tool, then reconstructs the type and method information, generates the equivalent of a C header file describing the game's structures, and writes a complete PDB file from scratch, including all of the internal containers and streams a real PDB needs. The tool currently only supports 64-bit Windows executables built with metadata version 39, and the README specifically calls out the game Rust as an example target. If it is run with no arguments at all, it can automatically find a Steam installation of Rust and generate a matching PDB file next to the game's DLL. The author notes that the tool's output is byte-for-byte identical to that of the reference native PDB writer when given the same input, meaning the two produce files with the same cryptographic hash. The project itself is written in C++ and built with Visual Studio 2022 as a 64-bit release build. No license is mentioned in the source material.
A self-contained tool that generates a Windows PDB debug symbol file directly from a Unity IL2CPP game, without needing external dumping tools.
Mainly C++. The stack also includes C++, Windows PE, IL2CPP.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.