diff --git a/Il2CppDumper/Il2Cpp/Il2Cpp.cs b/Il2CppDumper/Il2Cpp/Il2Cpp.cs index 37e71822..28441fef 100644 --- a/Il2CppDumper/Il2Cpp/Il2Cpp.cs +++ b/Il2CppDumper/Il2Cpp/Il2Cpp.cs @@ -55,6 +55,15 @@ protected bool AutoPlusInit(ulong codeRegistration, ulong metadataRegistration) if (Version >= 24.2) { pCodeRegistration = MapVATR<Il2CppCodeRegistration>(codeRegistration); + if (Version == 29) + { + if (pCodeRegistration.genericMethodPointersCount > 0x50000) //TODO + { + Version = 29.1; + codeRegistration -= PointerSize * 2; + Console.WriteLine($"Change il2cpp version to: {Version}"); + } + } if (Version == 27) { if (pCodeRegistration.reversePInvokeWrapperCount > 0x50000) //TODO diff --git a/Il2CppDumper/Il2Cpp/Il2CppClass.cs b/Il2CppDumper/Il2Cpp/Il2CppClass.cs index cc590825..8ee200e3 100644 --- a/Il2CppDumper/Il2Cpp/Il2CppClass.cs +++ b/Il2CppDumper/Il2Cpp/Il2CppClass.cs @@ -44,9 +44,13 @@ public class Il2CppCodeRegistration [Version(Min = 21, Max = 22)] public ulong guids; // Il2CppGuid [Version(Min = 22)] - public long unresolvedVirtualCallCount; + public long unresolvedVirtualCallCount; //29.1 unresolvedIndirectCallCount; [Version(Min = 22)] public ulong unresolvedVirtualCallPointers; + [Version(Min = 29.1)] + public ulong unresolvedInstanceCallPointers; + [Version(Min = 29.1)] + public ulong unresolvedStaticCallPointers; [Version(Min = 23)] public ulong interopDataCount; [Version(Min = 23)] diff --git a/Il2CppDumper/Outputs/StructGenerator.cs b/Il2CppDumper/Outputs/StructGenerator.cs index 209191e0..83a89d08 100644 --- a/Il2CppDumper/Outputs/StructGenerator.cs +++ b/Il2CppDumper/Outputs/StructGenerator.cs @@ -416,6 +416,7 @@ public void WriteScript(string outputDir) sb.Append(HeaderConstants.HeaderV27); break; case 29: + case 29.1: sb.Append(HeaderConstants.HeaderV29); break; default: