From e5ccb385cf4ec8c03840646806e1de3adf6fd4f8 Mon Sep 17 00:00:00 2001 From: Katy Coe Date: Sun, 27 Oct 2019 00:59:42 +0200 Subject: [PATCH] Add version attributes for metadata v16 and v19 --- Il2CppInspector/Il2CppBinaryClasses.cs | 14 ++++++++++---- Il2CppInspector/MetadataClasses.cs | 26 +++++++++++++++++++++++--- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/Il2CppInspector/Il2CppBinaryClasses.cs b/Il2CppInspector/Il2CppBinaryClasses.cs index e659c3c..15d7123 100644 --- a/Il2CppInspector/Il2CppBinaryClasses.cs +++ b/Il2CppInspector/Il2CppBinaryClasses.cs @@ -30,9 +30,9 @@ namespace Il2CppInspector public ulong marshalingFunctionsCount; [Version(Max = 22)] public ulong marshalingFunctions; - [Version(Max = 22)] + [Version(Min = 21, Max = 22)] public ulong ccwMarshalingFunctionsCount; - [Version(Max = 22)] + [Version(Min = 21, Max = 22)] public ulong ccwMarshalingFunctions; public ulong genericMethodPointersCount; @@ -43,9 +43,9 @@ namespace Il2CppInspector public ulong customAttributeGenerators; // Removed in metadata v23 - [Version(Max = 22)] + [Version(Min = 21, Max = 22)] public long guidCount; - [Version(Max = 22)] + [Version(Min = 21, Max = 22)] public ulong guids; // Il2CppGuid // Added in metadata v22 @@ -96,13 +96,19 @@ namespace Il2CppInspector public ulong ptypes; public long methodSpecsCount; public ulong methodSpecs; + [Version(Max = 16)] + public long methodReferencesCount; + [Version(Max = 16)] + public ulong methodReferences; public long fieldOffsetsCount; public ulong pfieldOffsets; public long typeDefinitionsSizesCount; public ulong typeDefinitionsSizes; + [Version(Min = 19)] public ulong metadataUsagesCount; + [Version(Min = 19)] public ulong metadataUsages; } #pragma warning restore CS0649 diff --git a/Il2CppInspector/MetadataClasses.cs b/Il2CppInspector/MetadataClasses.cs index aa78b6b..8235e8b 100644 --- a/Il2CppInspector/MetadataClasses.cs +++ b/Il2CppInspector/MetadataClasses.cs @@ -19,7 +19,6 @@ namespace Il2CppInspector #pragma warning disable CS0649 public class Il2CppGlobalMetadataHeader { - // Metadata v21 public uint sanity; public int version; public int stringLiteralOffset; // string data for managed code @@ -72,17 +71,31 @@ namespace Il2CppInspector public int imagesCount; public int assembliesOffset; // Il2CppAssemblyDefinition public int assembliesCount; + + [Version(Min = 19)] public int metadataUsageListsOffset; // Il2CppMetadataUsageList + [Version(Min = 19)] public int metadataUsageListsCount; + [Version(Min = 19)] public int metadataUsagePairsOffset; // Il2CppMetadataUsagePair + [Version(Min = 19)] public int metadataUsagePairsCount; + [Version(Min = 19)] public int fieldRefsOffset; // Il2CppFieldRef + [Version(Min = 19)] public int fieldRefsCount; + [Version(Min = 19)] public int referencedAssembliesOffset; // int + [Version(Min = 19)] public int referencedAssembliesCount; + + [Version(Min = 21)] public int attributesInfoOffset; // Il2CppCustomAttributeTypeRange + [Version(Min = 21)] public int attributesInfoCount; + [Version(Min = 21)] public int attributeTypesOffset; // TypeIndex + [Version(Min = 21)] public int attributeTypesCount; // Added in metadata v22 @@ -122,6 +135,8 @@ namespace Il2CppInspector public uint exportedTypeCount; public int entryPointIndex; + + [Version(Min = 19)] public uint token; [Version(Min = 24.1)] @@ -159,9 +174,9 @@ namespace Il2CppInspector public int delegateWrapperFromManagedToNativeIndex; // (was renamed to reversePInvokeWrapperIndex in v22) [Version(Max = 22)] public int marshalingFunctionsIndex; - [Version(Max = 22)] + [Version(Min = 21, Max = 22)] public int ccwFunctionIndex; - [Version(Max = 22)] + [Version(Min = 21, Max = 22)] public int guidIndex; public uint flags; @@ -193,6 +208,8 @@ namespace Il2CppInspector // 06 - is_import; (from v22: is_import_or_windows_runtime) // 07-10 - One of nine possible PackingSize values (0, 1, 2, 4, 8, 16, 32, 64, or 128) public uint bitfield; + + [Version(Min = 19)] public uint token; } @@ -245,6 +262,7 @@ namespace Il2CppInspector [Version(Max = 24.0)] public int customAttributeIndex; + [Version(Min = 19)] public uint token; } @@ -265,6 +283,7 @@ namespace Il2CppInspector [Version(Max = 24.0)] public int customAttributeIndex; + [Version(Min = 19)] public uint token; } @@ -279,6 +298,7 @@ namespace Il2CppInspector [Version(Max = 24.0)] public int customAttributeIndex; + [Version(Min = 19)] public uint token; } }