{"repo":"SamboyCoding/Cpp2IL","free":true,"listed":false,"github":"https://github.com/SamboyCoding/Cpp2IL","clone":"git clone https://github.com/SamboyCoding/Cpp2IL.git","description":"Work-in-progress tool to reverse unity's IL2CPP toolchain.","language":"C#","stars":2574,"topics":["il2cpp-metadata","analysis","unity","static-analysis","il2cpp","decompiler","reverse-engineering"],"license":"MIT","category":"game-templates","readme_excerpt":"Cpp2IL Need Help? Join the discord! WIP Tool to reverse Unity's IL2CPP build process back to the original managed DLLs. The information below almost entirely applies to the CLI application available on github releases. For documentation on using the \"core\" module - which the CLI is just a wrapper around - in your own projects, see README CORE.md Uses LibCpp2IL for the initial parsing and loading of metadata structures. LibCpp2IL is obtainable from the build artifacts if you want to do something yourself with IL2CPP metadata, and is released under the MIT license. The link above will take you to the documentation for LibCpp2IL. Decompiler The decompiled CIL is pretty messy right now, the next thing is probably pattern matching to convert il2cpp specific stuff into C# (generic ISIL should be converted into more C# specific ISIL, new object, throw, etc. instructions should be added to ISIL), but most of the times it's at least possible to see what the method does. Use ILSpy because it works with broken CIL better than dnSpy. The entry point to decompilation is MethodAnalysisContext.Analyze() , it translates platform specific assembly into ISIL with Cpp2IlInstructionSet , builds the control flow graph and dominator info, and the rest of the decompilation is done with IAction classes ( MethodAnalysisContext.analysisActions ), these include stack analysis, simplification, applying metadata, etc. and then Ilgenerator.GenerateIl() translates the ISIL into CIL that's saved into manage","default_branch":null,"files":null,"tree":[],"storefront":"/r/SamboyCoding","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/SamboyCoding/Cpp2IL/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}