Skip to content

Releases: knah/Il2CppAssemblyUnhollower

v0.4.18.0

22 Feb 22:30
Compare
Choose a tag to compare

This is a small bugfix update. Generated assemblies should be fully compatible with those generated by 0.4.17.x.

New features:

  • Fixed compatibility with Unity versions 2021.2.0 and above
  • Fixed setters of non-blittable-value-type non-generic fields having invalid IL

v0.4.17.1

04 Jan 23:32
Compare
Choose a tag to compare

This is a small feature update. Generated assemblies should be fully compatible with those generated by 0.4.16.x.

New features:

  • PDB generator project (not bundled in release zip) - see README
  • New CLI option --add-prefix-to to add Il2Cpp prefix to additional assemblies and namespaces to prevent conflicts with managed libs.
  • 0.4.17.1 - strip Optional attribute off unstripped ICall delegates as Mono crashed on those

v0.4.17.0

30 Dec 15:57
Compare
Choose a tag to compare

This is a small feature update. Generated assemblies should be fully compatible with those generated by 0.4.16.x.

New features:

  • PDB generator project (not bundled in release zip) - see README
  • New CLI option --add-prefix-to to add Il2Cpp prefix to additional assemblies and namespaces to prevent conflicts with managed libs.

v0.4.16.2

05 Dec 16:26
Compare
Choose a tag to compare

This is a small bugfix and feature update. Generated assemblies should be mostly compatible with those generated by 0.4.15.x.
However, this version fixes a bug in deobfuscation map handling that can result in more things being renamed. This can lead to some breakage.
New features:

  • Interface implementations for injected classes (contributed by @HookedBehemoth in #71). See README for more details
  • Delegate types get generated operators + and - for easier handling of delegate-typed fields (contributed by @HookedBehemoth).

Changes:

  • Fixed field and enum field renames from deobfuscation map not being applied
  • Xref scanner now considers CMOVcc opcodes for string references
  • Fixed deobfuscation map generator failing to run (it still generates bad maps for deobfuscated types though - some postprocessing is required)
  • Fixed newer Unity versions failing due to wrong native struct description
  • 0.4.16.1 - fixed binary compatibility of ClassInjector API (at the cost of breaking binary compatibility with 0.4.16.0)
  • 0.4.16.2 - fixed invalid IL error when injecting methods returning non-primitive value types (contributed by @Kasuromi in #75)

v0.4.16.1

26 Oct 17:30
Compare
Choose a tag to compare

This is a small bugfix and feature update. Generated assemblies should be mostly compatible with those generated by 0.4.15.x.
However, this version fixes a bug in deobfuscation map handling that can result in more things being renamed. This can lead to some breakage.
New features:

  • Interface implementations for injected classes (contributed by @HookedBehemoth in #71). See README for more details
  • Delegate types get generated operators + and - for easier handling of delegate-typed fields (contributed by @HookedBehemoth).

Changes:

  • Fixed field and enum field renames from deobfuscation map not being applied
  • Xref scanner now considers CMOVcc opcodes for string references
  • Fixed deobfuscation map generator failing to run (it still generates bad maps for deobfuscated types though - some postprocessing is required)
  • Fixed newer Unity versions failing due to wrong native struct description
  • 0.4.16.1 - fixed binary compatibility of ClassInjector API (at the cost of breaking binary compatibility with 0.4.16.0)

v0.4.16.0

25 Oct 23:29
Compare
Choose a tag to compare

This is a small bugfix and feature update. Generated assemblies should be mostly compatible with those generated by 0.4.15.x.
However, this version fixes a bug in deobfuscation map handling that can result in more things being renamed. This can lead to some breakage.
New features:

  • Interface implementations for injected classes (contributed by @HookedBehemoth in #71). See README for more details
  • Delegate types get generated operators + and - for easier handling of delegate-typed fields (contributed by @HookedBehemoth).

Changes:

  • Fixed field and enum field renames from deobfuscation map not being applied
  • Xref scanner now considers CMOVcc opcodes for string references
  • Fixed deobfuscation map generator failing to run (it still generates bad maps for deobfuscated types though - some postprocessing is required)
  • Fixed newer Unity versions failing due to wrong native struct description

v0.4.15.4

11 Jul 14:18
Compare
Choose a tag to compare

This is a small bugfix update. Generated assemblies should be compatible with those generated by 0.4.15.3.
Changes:

  • Support DefaultMemberAttribute as generated by Cpp2IL (as opposed to Dumper's AttributeAttribute)

v0.4.15.3

07 Jul 16:54
Compare
Choose a tag to compare

This is a small bugfix update. Generated assemblies should be mostly compatible with those generated by 0.4.15.2.
Changes (contributed by @ds5678):

  • Improved support for various Unity versions
  • Base types of injected types are automatically injected if necessary

v0.4.15.2

13 Jun 19:45
Compare
Choose a tag to compare

This is a small bugfix update. Generated assemblies should be mostly compatible with those generated by 0.4.15.1.
Changes:

  • Added ClassInjectionAssemblyTargetAttribute (contributed by @ds5678 in #49)
  • Fixed crashes on Unity 2020.1.x and later

v0.4.15.1

08 Jun 21:29
Compare
Choose a tag to compare

This is a small bugfix update. Generated assemblies should be mostly compatible with those generated by 0.4.14.0.
Some external tools that relied on native struct definitions might break though - some structs were moved to used the wrapper model.
Changes:

  • Generic structs are now always (correctly) generated as non-blittable
  • Rewrote native struct handling to enable easy support of different Unity versions.
    • This release should, in theory, support all Unity versions from 2017.1.0 to 2020.2.x and perhaps even above. However, bugs are still a thing.
    • The base of this was contributed by @ghorsington in #35
    • Some fixes and improvements here were contributed by @ds5678 (#39)
  • Added Il2CppObjectBase.WasCollected (contributed by @ds5678 in #37)
  • Added basic support for loading custom components (of injected types) from assetbundles (contributed by @ds5678 in #38)
  • Added an overload of Il2CppType.Of method that doesn't throw exceptions for non-found types (contributed by @ds5678 in #36)
  • Field writes now use il2cpp_gc_wbarrier_set_field if it exists in GameAssembly