Il2CppAssemblyUnhollower
Il2CppAssemblyUnhollower copied to clipboard
A tool to generate Managed->IL2CPP proxy assemblies
This simple patch adds support for fetching Generic methods via the `GetIl2CppMethodInfoPointerFieldForGeneratedMethod` API inside `UnhollowerUtils`. Not much to say here, no API changes. I implemented this in order to allow...
At the moment, when trying to access any value that is an unsafe pointer (i.e. `int*`), unhollower tries to construct the return value as `int*(intptr)`, which fails because there is...
Hello, I am getting a NullReferenceException when iterating through the IEnumerable object that is returned by XrefScanner.XrefScan - I have already looked at the generated IL code, and it seems...
* Game has `PlayerCharacter` with property `myUtilities[]` (as Il2CppReferenceArray) of base type `BaseUtilityComponent`. Said class exposes base property `myInputs` which is "unhollowed" as `Il2CppStructArray` where `INPUT` is plain enum. *...
This may seem like a dumb question but this has me alittile stumped, how do i use this tool with dummy .dll's i extracted with cpp2il. Do i need deobf?...
I use this (https://github.com/LavaGang/MelonLoader/blob/master/BaseLibs/Managed/mscorlib.dll) mscorlib. Unity version is 2020.3.14f1 ``` System.NotSupportedException: Version not supported: 3.7.1.6 in Mono.Cecil.BaseAssemblyResolver.GetCorlib(AssemblyNameReference reference, ReaderParameters parameters) in Mono.Cecil.BaseAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters) in Mono.Cecil.DefaultAssemblyResolver.Resolve(AssemblyNameReference name) in Mono.Cecil.MetadataResolver.Resolve(TypeReference...
e.g. `UnityEngine.EventSystems.IPointerDownHandler` extends `UnityEngine.EventSystems.IEventSystemHandler` The current implementation of `RegisterTypeInIl2CppWithInterfaces` doesn't implement the latter on il2cpp side when only specifying the former.
Self explanatory, is it possible to in some way do `await` on an il2cpp async method?
For example, ```cs class A : Il2CppSystem.Object { } class B : A { } class C : A { } var list = new List() { new A(), new...
Currently, Unhollower uses `il2cpp_runtime_invoke`, which boxes returned values if they have value types. This boxing happens in the invoker function, so a simple replacement for runtime_invoke seems non-viable - instead,...