About this project

Cpp2IL is a work-in-progress tool designed to reverse Unity's IL2CPP build process back to the original managed DLLs. It uses LibCpp2IL for initial parsing and loading of metadata structures, and supports decompilation of CIL code, though the output is currently messy and may require pattern matching to convert IL2CPP-specific constructs into C#. The tool has undergone a major rewrite, moving away from Mono.Cecil to AsmResolver.DotNet, and now uses an intermediate representation called ISIL (Instruction-Set-Independent Language) for analysis. It includes a plugin system for custom instruction sets, binary formats, and obfuscated metadata. The command-line interface has been simplified with output formats and processing layers, such as `dll_il_recovery` for analysis and `attributeinjector` for suppressing attributes. It supports Windows, Linux, macOS, and .NET Framework builds, and can handle APK files. The project is actively developed with CI builds and a Discord community for support.