-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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:
-
100% of serialized scene and prefab data (Transforms, Inspector field values, materials, and
UnityEventwiring). - 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.
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).