Skip to content
clericall edited this page Aug 13, 2026 · 2 revisions

IL2CPP Teardown & Reconstruction Guides

This wiki collects field notes, disassembly guides, and repair workflows for working with decompiled Unity IL2CPP builds.

If you decompiled an IL2CPP game using AssetRipper or Cpp2IL, you already know the main problem: every C# method body comes back empty (throw null;). But while the source code is gone, two things survive:

  1. 100% of serialized scene and prefab data (Transforms, Inspector field values, materials, and UnityEvent wiring).
  2. 99.9% of logic inside Cpp2IL's ISIL intermediate representation (lifted instructions with resolved class and method names).

These guides show how to read ISIL side-by-side with serialized scene data to rebuild missing C# logic by hand, repair broken decompiler outputs, and get a build running without original project files.


Index of Guides

A hands-on walkthrough showing how to take raw .isil output from Cpp2IL, figure out register offsets like [rbx+64], match them against AssetRipper C# field declarations, and rewrite the assembly back into compilable C#.

How to read surviving UnityEvent graphs inside decompiled scene and prefab YAML files, find target method signatures, and hook your replacement C# scripts directly into original Inspector event chains.

Cheat sheet covering common ISIL opcodes (Compare, Move, Call), x86_64 register conventions (rcx/rbx for this), struct memory alignment, and field offset calculations on 64-bit Unity runtimes.

Practical scripts and recipes for fixing broken decompiler GUIDs (remap-ugui.py), repairing native plugin DLL headers (fix-plugin-pe.ps1), managing scene dependency imports (import-group.ps1), and serving WebGL builds locally (serve-webgl.py).

Clone this wiki locally