Milestone 2021.6.0
SamboyCoding
released this
18 Nov 16:41
·
110 commits
to new-analysis
since this release
LibCpp2IL
- Removed CppMethodBodyBytes from MethodDefinition as it didn't work very well anyway
- Removed the dependency on Iced
- Implemented support for
Il2CppAssemblyDefinition
s. - Fixes for NSO support
- Changed concrete generic methods in the Il2CppBinary object to be of type
Il2CppGenericMethodRef
, notIl2CppConcreteGenericMethod
, which has been removed. The main advantage is that non-generic methods on generic types (e.g.List<T>.Add
) are now supported. - Minor performance improvements (on the order of about half a second saved, of 6-7 total) to file reading
- Added more verbose logging to BinarySearcher for help in resolving any future issues.
Analysis
- Arm64: STP and LDP instructions are now supported
- Arm64: Functions which return a struct in X8 are now supported
- Arm64: Key function addresses will now be partially reconstructed if the binary strips them from its export table
- X86: Various improvements by @gompoc in #56, including:
- Support for imul reg, reg.
- Better IL for enums being implicitly read
- Locals can be used for length parameter in array instantiation
- Field pointers can be directly boxed
- Unboxing is supported
- Improvements to generic method calls
- Support for sete and setl conditional moves.
- Support for addition and subtraction done via the LEA instruction
- We no longer could crash if a namespace was present in the assembly which was on the list of forbidden file names under NTFS (e.g. CON).
Attribute Restoration
- Metadata v29: Fixes for new attribute restoration of Types and constructor params of type Object.
Dummy DLLs
- As a result of support for Il2CppAssemblyDefinitions being added to LibCpp2IL, generated assemblies now have the correct version number.
Core API
- General code cleanup to reduce hard dependencies on capstone or iced
- Fix Capstone loading on non-windows platforms
- Fix IL not being generated if the method dump path was not provided
- Improved support for determining the unity version. Thanks to @ds5678 in #52
Command Line Wrapper
- Added several new command line arguments, detailed in the README:
--skip-method-dumps
--simple-attribute-restoration
--just-give-me-dlls-asap-dammit
- Upgraded to .NET 6 (from 5), which brings a host of performance improvements on its own.