Releases: SamboyCoding/Cpp2IL
Releases · SamboyCoding/Cpp2IL
Milestone 2021.5.2
This is a hotfix update.
Analysis
- Fixes an issue with constant definition casting causing exceptions.
Once again, LibCpp2IL has not been updated and remains on 2021.5.0
Milestone 2021.5.1
This is a small hotfix update.
Dummy DLLs
Analysis
- Resolved numerous exceptions that could occur during analysis, hopefully improving the number of methods which analyze and reducing console spam.
LibCpp2IL has not been updated and remains on 2021.5.0.
Milestone 2021.5.0
LibCpp2IL
- Added support for metadata v29 (Unity 2021.2)
Cpp2IL Core
- Added HarmonyX and a method in the API to patch cecil to give more informative error messages in the event of analysis failure.
- Added support for metadata v29 (compressed integers etc).
Dummy DLL
- Correctly set the etype (internal type enum) for System.Object to be
object
- Fixed a lot of explicit method overrides being missed if their declaring type was generic.
Attribute Restoration
- Support Arm64 code-based attribute restoration like on x86 on versions prior to metadata v29.
- Support metadata-based attribute restoration for all instruction sets on metadata v29.
- This is more full-featured than code-based restoration and much faster too
- From an API point of view, because this is data-based, not code-based, you no longer need to provide a non-null value for KeyFunctionAddresses on v29.
Analysis
- Hopefully fixed all the remaining cases of failure to save analysed assemblies.
- Fixed Arm64 KeyFunctionAddresses getting stuck in an infinite loop
- Log the number of types to analyse and thus the (reasonably pessimistic estimate of) expected time.
- Performance enhancements to all analysis, including a huge boost to Arm64 analysis speed.
- Reduced false positives of Arm64 throw helper detection.
- Support Static Field Reads and Writes on Arm64. Thanks to @Futuremappermydud in #47.
- Support Immediate value to registers on Arm64. Should help with fields being set to numerical constants.
- Lots of changes from @gompoc in #48:
- Conditional statements are now much more intelligent so should be much more readable in decompiled generated IL
- Conditional moves are now supported on x86, greatly improving analysis of some methods
- Return values that are constants are now type-corrected to match the expected return type
- Comparisons with enums now show the enum value rather than a number.
Command Line Wrapper (Cpp2Il itself)
- Support data.unity3d files, including in APKs, for determining unity version.
Commit f6f012b68c8810beb02796d727df9279f61a034d
commit_f6f012b68c8810beb02796d727df9279f61a034d Cleanup post-29 restorer, performance optimizations
Commit 6d7c0483599246e4b9f7e41739eb1cbddb070733
commit_6d7c0483599246e4b9f7e41739eb1cbddb070733 Finish fully implementing v29 restoration
Commit 3445771193b71624bb2fe430ea07dd51defd4a27
commit_3445771193b71624bb2fe430ea07dd51defd4a27 Add CondionalMoveAction and correct constant types used in comparison…
Commit c37aea7eee2de033c274bebaaf963656cbec020b
commit_c37aea7eee2de033c274bebaaf963656cbec020b Mostly implement attribute restoration for v29
Commit bec04679f03e9f51a5ba7e55f2625e4551757105
commit_bec04679f03e9f51a5ba7e55f2625e4551757105 Fix v27.1 dying
Commit 80bc423333526309e0b8f0cc423b3489bb68e853
commit_80bc423333526309e0b8f0cc423b3489bb68e853 Enable attribute restoration for arm64
Commit f1e2ebe18bd5d839f5c6c6486f826fd37f5b7f19
commit_f1e2ebe18bd5d839f5c6c6486f826fd37f5b7f19 Add reinterpretbytes utility method