Skip to content
This repository has been archived by the owner on Jul 1, 2024. It is now read-only.

Releases: knah/Il2CppAssemblyUnhollower

Release 0.4.6.0

13 Jun 15:53
Compare
Choose a tag to compare
Release 0.4.6.0 Pre-release
Pre-release

Read README.md for more info.
This is a minor release. Generated assemblies are fully compatible with 0.4.5.0.

Fixes:

  • Methods and fields with generic-parameter-types should no longer contain invalid bytecode
  • Method resolution will fail much less on methods with generic-parameter-typed parameters
  • Unstripped methods with typeof() should use the correct reference now

Release 0.4.5.0

10 Jun 01:41
Compare
Choose a tag to compare
Release 0.4.5.0 Pre-release
Pre-release

Read README.md for more info.
This is a minor release. Generated assemblies are fully compatible with 0.4.4.0.

New features:

  • Unity unstripping now restores a good fraction of IL methods. Some methods get invalid IL bytecode, some are stubbed with exception throws, but most are restored just fine.
  • A few built-in helpers for xref scanning in obfuscated games.

Fixes:

  • Methods are additionally distinguished based on genericness and return types. This should reduce issues with same-named generic/nongeneric method pairs with same parameters.

Release 0.4.4.0

07 Jun 20:03
Compare
Choose a tag to compare
Release 0.4.4.0 Pre-release
Pre-release

Read README.md for more info.
This is a minor fix release. Generated assemblies are fully compatible with 0.4.3.0.

New features:

  • [HideFromIl2Cpp] attribute can be used to prevent methods on injected classes from being exposed to IL2CPP side.

Fixes:

  • I18N assemblies get Il2Cpp prefix to avoid conflicts
  • Types that have IntPtr constructor originally no longer have it generated, as it clashes with pointer-wrapping constructor

Release 0.4.3.0

31 May 18:16
Compare
Choose a tag to compare
Release 0.4.3.0 Pre-release
Pre-release

Read README.md for more info.
This is a minor fix release. Generated assemblies are fully compatible with 0.4.2.0.

Fixes:

  • No more console spam about missing methods - instead, using them will produce an exception

Release 0.4.2.0

31 May 12:34
Compare
Choose a tag to compare
Release 0.4.2.0 Pre-release
Pre-release

Read README.md for more info.
This is a minor fix release. Generated assemblies are fully compatible with 0.4.1.0.

Fixes:

  • Generic constraints no longer include interfaces (as interfaces are generated into classes, those constraints were impossible to fulfil)

Release 0.4.1.0

29 May 19:28
Compare
Choose a tag to compare
Release 0.4.1.0 Pre-release
Pre-release

Read README.md for more info.
Assemblies generated by this release should be mostly compatible with 0.3.x releases, with the exception of most obfuscated type names changing.

Starting from this release, .zip will be used for easier tooling/autoupdate integration

Fixes:

  • Il2CppTypeOf<T>.Type readded for backwards compatibility
  • Class injection now works on Unity 2019 (tested on 2019.3.14)
  • Fixed nested types of generic types crashing
  • Fixed generic parameter typed field getters crashing

Release 0.4.0.0

08 May 20:53
Compare
Choose a tag to compare
Release 0.4.0.0 Pre-release
Pre-release

Read README.md for more info.
Assemblies generated by this release should be mostly compatible with 0.3.x releases, with the exception of Il2CppTypeOf being replaced.

New features:

  • Class injection - expose managed classes to IL2CPP domain, functional enough to use for custom MonoBehaviors. Make sure you read README before use.
  • Added a method for reliably getting IL2CPP MethodInfo pointer fields for generated methods

Changes:

  • Il2CppTypeOf<T>.Type replaced with Il2CppType.Of<T>()

Fixes:

  • Generics that had struct constraint don't have it anymore as that broke primitives and non-blittable structs

Release 0.3.1.0

30 Apr 19:19
Compare
Choose a tag to compare
Release 0.3.1.0 Pre-release
Pre-release

Read README.md for more info.
This is a bugfix release. It wasn't exactly well-tested, and may be buggier than 0.3.0.0.

New features:

  • Added implicit conversions from string to Il2CppSystem.Object
  • Added Unbox<T> method on Il2CppObjectBase for unboxing value types

Changes:

  • T.Il2CppType was deprecated in favour of Il2CppTypeOf<T>.Type for future expandability

Fixed issues:

  • Static fields with value types have functioning getters
  • Methods returning non-blittable structs should not crash (this includes properties)
  • Length-modifying IList methods are no longer exposed on IL2CPP arrays
  • [Flags] attribute is transferred on enums

Release 0.3.0.0

26 Apr 11:41
Compare
Choose a tag to compare
Release 0.3.0.0 Pre-release
Pre-release

Read README.md for more info.
Assemblies generated with this release are not compatible with previous releases.

New features:

  • Initial implementation for Unity method unstripping, limited to enums and direct InternalCall methods for now
  • Smarter and more stable type name deobfuscation
  • More detailed method/field/property name deobfuscation

Changes:

  • More future-proof CLI interface
  • Il2Cpp prefix is added to Microsoft and Mono namespaces to avoid conflicts with non-unhollowed assemblies

Fixes:

  • Non-generic in/out/ref method parameters should work properly
  • Enum fields are deobfuscated
  • null values can be read from reference arrays
  • null delegates properly convert to null
  • String arrays can be used in unhollowed methods
  • Indexers are properly generated for collection types

Release 0.2.0.0

17 Apr 19:59
Compare
Choose a tag to compare
Release 0.2.0.0 Pre-release
Pre-release

Read README.md for more info.
New features:

  • Built-in delegate support
  • Implicit conversions for strings and delegates

Fixes:

  • Most generic methods should work fine now, including delegates with string in them.
  • Arrays of primitive types should work now

It's likely that new generated assemblies are incompatible with old ones in at least some way, especially on binary level.