Releases: knah/Il2CppAssemblyUnhollower
Release 0.4.6.0
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
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
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
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
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
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
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 withIl2CppType.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
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 ofIl2CppTypeOf<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
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
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.