Il2CppInspector 2020.1
Il2CppInspector 2020.1 delivers dozens of improvements including several major new features:
-
IDA functionality enhancements: Il2CppInspector now outputs type declarations for all IL2CPP internal types and types used by the application, including all generic instances, plus address mapping for every type definition and method argument types. Boxed types are generated as required. Memory-mapped vtables are generated for every type. Function boundary mapping has also been improved.
-
C++ scaffolding output module: You can now output C++ headers with type declarations for all IL2CPP internal types and types used by the application, including all generic instances and inferred usages from metadata, plus all vtables and applicable boxed types. You can select which C++ compiler to target for the output (MSVC or GCC). Perfect for use with x64dbg among others!
-
Native APK and (decrypted) IPA support: You can now specify an APK or IPA file on the command-line or via the GUI - Il2CppInspector will automatically unzip the package into memory and locate the IL2CPP component files for analysis - no need to find the binary and metadata files first!
-
Generic types overhaul: This is a complete overhaul to the management of .NET generic types, improving the completeness and accuracy of all outputs (C#, IDA, C++). All closed generic types including those not defined directly but referenced by types or methods in the application are now accounted for. Nested and inherited open and closed generic types are handled correctly. New APIs are available for inspecting generic types.
-
Battle-hardened: Il2CppInspector is now compatible with all 205 releases of IL2CPP from Unity 5.3.0 to 2019.4.2+. For IDA and C++ outputs, Il2CppInspector will attempt to auto-detect both the Unity version and C++ compiler used to generate the IL2CPP application and generate a complete set of type definitions for the corresponding Unity version with the corresponding compiler-defined memory layout. You can override these options if you wish. Il2CppInspector will also perform automatic name conflict resolution to avoid the use of pre-defined symbols and keywords in C++, and to handle re-definition of same-named symbols in the application.
-
Many new API calls for the package (
Il2CppInspector
) and .NET type model (Il2CppModel
) for automated analysis of IL2CPP applications (see the source code for details; these are primarily for the handling of generic types and C++ declarations; you can now also useMethodBase.GetMethodBody()
to retrieve the executable machine code for any method) -
Many bug fixes for IL2CPP processing
-
Minor improvements to C# prototypes output
-
Minor improvements to ELF handling and de-obfuscation
-
Using the
generate-binaries.ps1
script now allows you to examine the generated C++, not just the final IL2CPP binary -
Output paths now work correctly for Linux and other POSIX filesystems
We're already working on some exciting new features for the next version, and hope you enjoy this update!
Thanks to @AntyMew , @carterbush and @nneonneo for their contributions to this release!