Skip to content

Milestone 2021.6.0

Compare
Choose a tag to compare
@SamboyCoding 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 Il2CppAssemblyDefinitions.
  • Fixes for NSO support
  • Changed concrete generic methods in the Il2CppBinary object to be of type Il2CppGenericMethodRef, not Il2CppConcreteGenericMethod, 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.