Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion Il2CppInterop.Runtime/Injection/InjectorHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,12 @@ internal static IntPtr GetIl2CppMethodPointer(MethodBase proxyMethod)

private static readonly MemoryUtils.SignatureDefinition[] s_ClassInitSignatures =
{
new MemoryUtils.SignatureDefinition
{
pattern = "\xE8\x00\x00\x00\x00\x8B\x3B\x48\x83\xC3",
mask = "x????xxxxx",
xref = true
},
new MemoryUtils.SignatureDefinition
{
pattern = "\xE8\x00\x00\x00\x00\x0F\xB7\x47\x28\x83",
Expand All @@ -162,7 +168,12 @@ private static d_ClassInit FindClassInit()
{
static nint GetClassInitSubstitute()
{
if (TryGetIl2CppExport("mono_class_instance_size", out nint classInit))
if (TryGetIl2CppExport("il2cpp_runtime_class_init", out nint classInit))
{
Logger.Instance.LogTrace("Picked il2cpp_runtime_class_init as a Class::Init substitute");
return classInit;
}
if (TryGetIl2CppExport("mono_class_instance_size", out classInit))
{
Logger.Instance.LogTrace("Picked mono_class_instance_size as a Class::Init substitute");
return classInit;
Expand Down
Loading