Skip to content

Milestone Preview: 2022.1.0 #17

Pre-release
Pre-release
Compare
Choose a tag to compare
@SamboyCoding SamboyCoding released this 19 Aug 12:49
· 67 commits to development since this release

Cpp2IL Command Line

  • Fixed more trimming issues which caused plugins, especially the stripped code reg plugin, to fail to load on the net7 builds.

Plugins

  • Added a Control Flow Graph plugin which adds a cfg output format which allows writing .dot graph files for all methods in the binary.

Cpp2IL.Core

  • Added support for performing control-flow analysis of generated ISIL. This is the next big step in a working decompiler to IL. Huge thanks to @gompoc (this was #318)
  • Optimized IsilImmediateOperand.ToString by avoiding exceptions as control flow.
  • Implemented more x86 -> ISIL conversions
  • Added a block processing layer system that works in tandem with the control flow graph analysis system. Currently, strings, unambiguous method calls, and type metadata are resolved via this system.
  • Fixed a bug in the Arm64 instruction set which could lead to attempts to get the method body for some methods disassembling the entire remainder of the binary 4 bytes at a time. This manifested as the application getting stuck processing an assembly.
  • Optimized the call analysis and native method detection processing layers to only get ISIL, instead of fully analyzing methods. Thanks to @ds5678 in #324.

LibCpp2IL

  • Fixed an issue with multiple exported functions at the same address in Mach-O binaries. Thanks to @gabriel-nsiqueira in #316
  • Fixed a thread safety issue in Il2CppBinary.ReadPointerAtVirtualAddress which could cause fields in structures to be corrupted when read from multithreaded code.