SamboyCoding / Cpp2IL

Work-in-progress tool to reverse unity's IL2CPP toolchain.
MIT License
1.56k stars 178 forks source link

IndexOutOfRangeException at LibCpp2IL.Metadata.Il2CppTypeDefinition.get_DeclaringType() #235

Closed mosamadeeb closed 6 months ago

mosamadeeb commented 10 months ago

Game: MEGA MAN X DiVE Offline Unity version: 2020.3.41f1

Original GameAssembly.dll is protected, so I dumped it in runtime using this fork of KsDumper. Original global-metadata.dat does not appear to be encrypted.

Dumped assembly can be used with https://github.com/Perfare/Il2CppDumper along with https://github.com/knah/Il2CppAssemblyUnhollower, but I cannot get Cpp2IL to work with it.

Using this build: https://github.com/SamboyCoding/Cpp2IL/actions/runs/6027736406. Also tested multiple other versions, including nightly and latest milestone, same issue.

E:\Modding\cpp2il new\actions>Cpp2IL.exe --game-path="E:\SteamLibrary\steamapps\common\MEGA MAN X DiVE Offline" --force-metadata-path="E:\SteamLibrary\steamapps\common\MEGA MAN X DiVE Offline\Game_Data\il2cpp_data\Metadata\global-metadata.dat" --force-binary-path="E:\Modding\KsDumper-mod\GameAssembly.dll" --force-unity-version="2020.3.41"
===Cpp2IL by Samboy063===
A Tool to Reverse Unity's "il2cpp" Build Process.
Version 2022.1.0-development.898+ef427a9

[Info] [Program] Running on Win32NT
[Info] [Plugins] Loading plugins from E:\Modding\cpp2il new\actions\Plugins...
[Info] [Plugins] Using Plugin: Cpp2IL Built-In
[Warn] [Program] Using force options, I sure hope you know what you're doing!
[Info] [Library] Initializing Metadata...
[Info] [Library]        Using actual IL2CPP Metadata version 27.1
[Info] [Library] Initialized Metadata in 531ms
[Info] [Library] Using binary type Portable Executable (from LibCpp2IL)
[Info] [Library] Searching Binary for Required Data...
[Info] [Library] Got Binary codereg: 0x7FF8C4FB0C60, metareg: 0x7FF8C4FB5040 in 283ms.
[Info] [Library] Initializing Binary...
[Info] [Library] Initialized Binary in 215ms
[Info] [Library] Mapping pointers to Il2CppMethodDefinitions...Processed 89123 OK (191ms)
[Info] [Program] Creating application model...
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at LibCpp2IL.Metadata.Il2CppTypeDefinition.get_DeclaringType() in /home/runner/work/Cpp2IL/Cpp2IL/LibCpp2IL/Metadata/Il2CppTypeDefinition.cs:line 340
   at LibCpp2IL.Metadata.Il2CppTypeDefinition.get_FullName() in /home/runner/work/Cpp2IL/Cpp2IL/LibCpp2IL/Metadata/Il2CppTypeDefinition.cs:line 208
   at Cpp2IL.Core.Model.Contexts.AssemblyAnalysisContext..ctor(Il2CppAssemblyDefinition assemblyDefinition, ApplicationAnalysisContext appContext) in /_/Cpp2IL.Core/Model/Contexts/AssemblyAnalysisContext.cs:line 65
   at Cpp2IL.Core.Model.Contexts.ApplicationAnalysisContext..ctor(Il2CppBinary binary, Il2CppMetadata metadata, Single metadataVersion) in /_/Cpp2IL.Core/Model/Contexts/ApplicationAnalysisContext.cs:line 93
   at Cpp2IL.Core.Cpp2IlApi.OnLibInitialized() in /_/Cpp2IL.Core/Cpp2IlApi.cs:line 102
   at Cpp2IL.Core.Cpp2IlApi.InitializeLibCpp2Il(String assemblyPath, String metadataPath, UnityVersion unityVersion, Boolean allowUserToInputAddresses) in /_/Cpp2IL.Core/Cpp2IlApi.cs:line 70
   at Cpp2IL.Program.MainWithArgs(Cpp2IlRuntimeArgs runtimeArgs) in /home/runner/work/Cpp2IL/Cpp2IL/Cpp2IL/Program.cs:line 500
   at Cpp2IL.Program.Main(String[] args) in /home/runner/work/Cpp2IL/Cpp2IL/Cpp2IL/Program.cs:line 444
SamboyCoding commented 10 months ago

Can you upload a log file generated with --verbose?

mosamadeeb commented 10 months ago

Sorry, should've done that from the start.

E:\Modding\cpp2il new\actions>Cpp2IL.exe --game-path="E:\SteamLibrary\steamapps\common\MEGA MAN X DiVE Offline" --force-metadata-path="E:\SteamLibrary\steamapps\common\MEGA MAN X DiVE Offline\Game_Data\il2cpp_data\Metadata\global-metadata.dat" --force-binary-path="E:\Modding\KsDumper-mod\GameAssembly.dll" --force-unity-version="2020.3.41" --verbose
===Cpp2IL by Samboy063===
A Tool to Reverse Unity's "il2cpp" Build Process.
Version 2022.1.0-development.898+ef427a9

[Info] [Program] Running on Win32NT
[Info] [Plugins] Loading plugins from E:\Modding\cpp2il new\actions\Plugins...
[Verb] [Plugins] Collecting and instantiating plugins...
[Verb] [Plugins]        Loading plugin Cpp2IL.Core.Cpp2IlCorePlugin from assembly: Cpp2IL.Core.dll
[Verb] [Plugins] Invoking OnLoad on 1 plugins.
[Verb] [Plugin: Cpp2IL Built-In] Initializing...
[Verb] [Plugin: Cpp2IL Built-In]        Registering built-in instruction set handlers...
[Verb] [Plugin: Cpp2IL Built-In]        Registering built-in binary parsers...
[Verb] [Plugin: Cpp2IL Built-In]        Registering built-in output formats...
[Verb] [Plugin: Cpp2IL Built-In]        Registering built-in processing layers
[Verb] [Plugin: Cpp2IL Built-In] Core plugin loaded in 167150 ticks (16.715ms)
[Info] [Plugins] Using Plugin: Cpp2IL Built-In
[Verb] [Plugins] OnLoad complete
[Warn] [Program] Using force options, I sure hope you know what you're doing!
[Verb] [Program] No processing layers requested
[Info] [Library] Initializing Metadata...
[Verb] [Library]        IL2CPP Metadata Declares its version as 27
[Info] [Library]        Using actual IL2CPP Metadata version 27.1
[Verb] [Library]        Reading image definitions...OK (9.0592 ms)
[Verb] [Library]        Reading assembly definitions...OK (3.0462 ms)
[Verb] [Library]        Reading type definitions...14196 OK (29.3878 ms)
[Verb] [Library]        Reading interface offsets...OK (5.0345 ms)
[Verb] [Library]        Reading vtable indices...OK (34.582 ms)
[Verb] [Library]        Reading method definitions...OK (163.6769 ms)
[Verb] [Library]        Reading method parameter definitions...OK (63.2478 ms)
[Verb] [Library]        Reading field definitions...OK (380.7193 ms)
[Verb] [Library]        Reading default field values...OK (11.2804 ms)
[Verb] [Library]        Reading default parameter values...OK (1.0114 ms)
[Verb] [Library]        Reading property definitions...OK (16.6989 ms)
[Verb] [Library]        Reading interface definitions...OK (1.0005 ms)
[Verb] [Library]        Reading nested type definitions...OK (0.7224 ms)
[Verb] [Library]        Reading event definitions...OK (0.5017 ms)
[Verb] [Library]        Reading generic container definitions...OK (0.7172 ms)
[Verb] [Library]        Reading generic parameter definitions...OK (2.5521 ms)
[Verb] [Library]        Reading generic parameter constraint indices...OK (1.6213 ms)
[Verb] [Library]        Reading referenced assemblies...OK (0.1073 ms)
[Verb] [Library]        Reading string definitions...OK (6.3876 ms)
[Verb] [Library]        Reading field references...OK (0.3412 ms)
[Verb] [Library]        Reading attribute types...OK (17.4345 ms)
[Verb] [Library]        Building Lookup Table for field defaults...OK (23.671 ms)
[Info] [Library] Initialized Metadata in 799ms
[Info] [Library] Using binary type Portable Executable (from LibCpp2IL)
[Info] [Library] Searching Binary for Required Data...
[Verb] [Library]        Reading PE File Header...OK (2.7858 ms)
[Verb] [Library]                Image Base at 0x7FF8C21B0000
[Verb] [Library]                DLL is 64-bit
[Verb] [Library]        Attempting to locate code and metadata registration functions...
[Verb] [Library]                -Searching for MetadataReg...
[Verb] [Library]                        Looking for the number of type definitions, 0x3774
[Verb] [Library]                        Looking for bytes: 74 37 00 00 00 00 00 00
[Verb] [Library]                        Found 2 instances of the number of type definitions: [7FF8C4FB5090, 7FF8C4FB50A0]
[Verb] [Library]                        Found 2 potential metadata registrations: [7FF8C4FB5030, 7FF8C4FB5040]
[Verb] [Library]                        Rejecting metadata registration 0x7FF8C4FB5030 because the pointer at index 1 is 0.
[Verb] [Library]                        Accepting metadata reg as VA 0x7FF8C4FB5040
[Verb] [Library]                -Searching for CodeReg...
[Verb] [Library]                        Using mscorlib full-disassembly approach to get codereg, this may take a while...
[Verb] [Library]                        Looking for bytes: 6d 73 63 6f 72 6c 69 62 2e 64 6c 6c 00
[Verb] [Library]                        Found 1 occurrences of mscorlib.dll: [7FF8C4E94DE0]
[Verb] [Library]                        Looking for bytes: e0 4d e9 c4 f8 7f 00 00
[Verb] [Library]                        Found 1 potential codegen modules for mscorlib: [7FF8C4E94D50]
[Verb] [Library]                        Looking for bytes: 50 4d e9 c4 f8 7f 00 00
[Verb] [Library]                        Found 1 address for potential codegen modules in potential codegen module lists: [7FF8C55627B0]
[Verb] [Library]                        Looking for bytes: 98 25 56 c5 f8 7f 00 00
[Verb] [Library]                        Looking for bytes: 90 25 56 c5 f8 7f 00 00
[Verb] [Library]                        Looking for bytes: 88 25 56 c5 f8 7f 00 00
[Verb] [Library]                        Looking for bytes: 80 25 56 c5 f8 7f 00 00
[Verb] [Library]                        Looking for bytes: 78 25 56 c5 f8 7f 00 00
[Verb] [Library]                        Looking for bytes: 70 25 56 c5 f8 7f 00 00
[Verb] [Library]                        Looking for bytes: 68 25 56 c5 f8 7f 00 00
[Verb] [Library]                        Looking for bytes: 60 25 56 c5 f8 7f 00 00
[Verb] [Library]                        Looking for bytes: 58 25 56 c5 f8 7f 00 00
[Verb] [Library]                        Looking for bytes: 50 25 56 c5 f8 7f 00 00
[Verb] [Library]                        Found valid address for pCodegenModules after a backtrack of 76, module count is 77
[Verb] [Library]                        Found 1 potential pCodegenModules addresses: [7FF8C4FB0CD0]
[Verb] [Library]                        pCodegenModules is the second-to-last field of the codereg struct. Therefore on this version and architecture, we need to subtract 112 bytes from its address to get pCodeReg
[Verb] [Library]                        Only found one codegen module pointer, so assuming it's correct and returning pCodeReg = 0x7FF8C4FB0C60
[Info] [Library] Got Binary codereg: 0x7FF8C4FB0C60, metareg: 0x7FF8C4FB5040 in 309ms.
[Info] [Library] Initializing Binary...
[Verb] [Library]        Reading generic instances...OK (5.3881 ms)
[Verb] [Library]        Reading generic method pointers...OK (4.6677 ms)
[Verb] [Library]        Reading field offsets...OK (4.2968 ms)
[Verb] [Library]        Reading types...OK (64.3605 ms)
[Verb] [Library]        Reading type definition sizes...OK (0.8321 ms)
[Verb] [Library]        Reading code gen modules...
[Verb] [Library]                -Read module data for ACTk.Examples.Genuine.Runtime.dll, contains 9 method pointers starting at 0x7FF8C55630F0
[Verb] [Library]                        -Read 9 method pointers.
[Verb] [Library]                -Read module data for ACTk.Examples.Runtime.dll, contains 82 method pointers starting at 0x7FF8C5560BE0
[Verb] [Library]                        -Read 82 method pointers.
[Verb] [Library]                -Read module data for ACTk.Runtime.dll, contains 1113 method pointers starting at 0x7FF8C5544A80
[Verb] [Library]                        -Read 1113 method pointers.
[Verb] [Library]                        -Read 4 RGCTX ranges.
[Verb] [Library]                        -Read 24 RGCTXs.
[Verb] [Library]                -Read module data for Assembly-CSharp-firstpass.dll, contains 974 method pointers starting at 0x7FF8C554F6D0
[Verb] [Library]                        -Read 974 method pointers.
[Verb] [Library]                        -Read 6 RGCTX ranges.
[Verb] [Library]                        -Read 32 RGCTXs.
[Verb] [Library]                -Read module data for Assembly-CSharp.dll, contains 31958 method pointers starting at 0x7FF8C544DD30
[Verb] [Library]                        -Read 31958 method pointers.
[Verb] [Library]                        -Read 174 RGCTX ranges.
[Verb] [Library]                        -Read 684 RGCTXs.
[Verb] [Library]                -Read module data for CapCommon.dll, contains 110 method pointers starting at 0x7FF8C5560550
[Verb] [Library]                        -Read 110 method pointers.
[Verb] [Library]                        -Read 11 RGCTX ranges.
[Verb] [Library]                        -Read 50 RGCTXs.
[Verb] [Library]                -Read module data for Cinemachine.dll, contains 953 method pointers starting at 0x7FF8C554BC20
[Verb] [Library]                        -Read 953 method pointers.
[Verb] [Library]                        -Read 6 RGCTX ranges.
[Verb] [Library]                        -Read 17 RGCTXs.
[Verb] [Library]                -Read module data for Coffee.SoftMaskForUGUI.dll, contains 80 method pointers starting at 0x7FF8C55612C0
[Verb] [Library]                        -Read 80 method pointers.
[Verb] [Library]                        -Read 1 RGCTX ranges.
[Verb] [Library]                        -Read 2 RGCTXs.
[Verb] [Library]                -Read module data for Coffee.UIParticle.dll, contains 39 method pointers starting at 0x7FF8C55627C0
[Verb] [Library]                        -Read 39 method pointers.
[Verb] [Library]                -Read module data for Coffee.UIParticle.Demo.dll, contains 23 method pointers starting at 0x7FF8C5562E20
[Verb] [Library]                        -Read 23 method pointers.
[Verb] [Library]                -Read module data for ConsoleService.dll, contains 672 method pointers starting at 0x7FF8C5553C60
[Verb] [Library]                        -Read 672 method pointers.
[Verb] [Library]                        -Read 2 RGCTX ranges.
[Verb] [Library]                        -Read 5 RGCTXs.
[Verb] [Library]                -Read module data for CriMw.CriWare.Runtime.dll, contains 2189 method pointers starting at 0x7FF8C55336C0
[Verb] [Library]                        -Read 2189 method pointers.
[Verb] [Library]                        -Read 1 RGCTX ranges.
[Verb] [Library]                        -Read 3 RGCTXs.
[Verb] [Library]                -Read module data for DataProvider.dll, contains 3153 method pointers starting at 0x7FF8C5528720
[Verb] [Library]                        -Read 3153 method pointers.
[Verb] [Library]                -Read module data for Facepunch.Steamworks.Win64.dll, contains 987 method pointers starting at 0x7FF8C55497F0
[Verb] [Library]                        -Read 987 method pointers.
[Verb] [Library]                        -Read 6 RGCTX ranges.
[Verb] [Library]                        -Read 12 RGCTXs.
[Verb] [Library]                -Read module data for JsonFx.Json.dll, contains 99 method pointers starting at 0x7FF8C5560230
[Verb] [Library]                        -Read 99 method pointers.
[Verb] [Library]                        -Read 1 RGCTX ranges.
[Verb] [Library]                        -Read 2 RGCTXs.
[Verb] [Library]                -Read module data for LZ4.dll, contains 79 method pointers starting at 0x7FF8C5561540
[Verb] [Library]                        -Read 79 method pointers.
[Verb] [Library]                        -Read 2 RGCTX ranges.
[Verb] [Library]                        -Read 3 RGCTXs.
[Verb] [Library]                -Read module data for Mono.Security.dll, contains 415 method pointers starting at 0x7FF8C55576C0
[Verb] [Library]                        -Read 415 method pointers.
[Verb] [Library]                -Read module data for NaughtyAttributes.Core.dll, contains 20 method pointers starting at 0x7FF8C5562F70
[Verb] [Library]                        -Read 20 method pointers.
[Verb] [Library]                -Read module data for Newtonsoft.Json.dll, contains 2265 method pointers starting at 0x7FF8C552E9B0
[Verb] [Library]                        -Read 2265 method pointers.
[Verb] [Library]                        -Read 55 RGCTX ranges.
[Verb] [Library]                        -Read 218 RGCTXs.
[Verb] [Library]                -Read module data for PathCreator.dll, contains 137 method pointers starting at 0x7FF8C555F2F0
[Verb] [Library]                        -Read 137 method pointers.
[Verb] [Library]                -Read module data for ProtocolWeb.dll, contains 299 method pointers starting at 0x7FF8C555CDA0
[Verb] [Library]                        -Read 299 method pointers.
[Verb] [Library]                -Read module data for System.dll, contains 4343 method pointers starting at 0x7FF8C54E7660
[Verb] [Library]                        -Read 4343 method pointers.
[Verb] [Library]                        -Read 36 RGCTX ranges.
[Verb] [Library]                        -Read 393 RGCTXs.
[Verb] [Library]                -Read module data for System.Configuration.dll, contains 17 method pointers starting at 0x7FF8C5563010
[Verb] [Library]                        -Read 17 method pointers.
[Verb] [Library]                -Read module data for System.Core.dll, contains 3281 method pointers starting at 0x7FF8C54EFE20
[Verb] [Library]                        -Read 3281 method pointers.
[Verb] [Library]                        -Read 221 RGCTX ranges.
[Verb] [Library]                        -Read 1040 RGCTXs.
[Verb] [Library]                -Read module data for System.Data.dll, contains 3270 method pointers starting at 0x7FF8C54FE910
[Verb] [Library]                        -Read 3270 method pointers.
[Verb] [Library]                        -Read 17 RGCTX ranges.
[Verb] [Library]                        -Read 122 RGCTXs.
[Verb] [Library]                -Read module data for System.Numerics.dll, contains 122 method pointers starting at 0x7FF8C555ED90
[Verb] [Library]                        -Read 122 method pointers.
[Verb] [Library]                -Read module data for System.Runtime.CompilerServices.Unsafe.dll, contains 2 method pointers starting at 0x7FF8C5563560
[Verb] [Library]                        -Read 2 method pointers.
[Verb] [Library]                -Read module data for System.Runtime.Serialization.dll, contains 7 method pointers starting at 0x7FF8C55633E0
[Verb] [Library]                        -Read 7 method pointers.
[Verb] [Library]                -Read module data for System.Xml.dll, contains 6710 method pointers starting at 0x7FF8C54BE130
[Verb] [Library]                        -Read 6710 method pointers.
[Verb] [Library]                        -Read 1 RGCTX ranges.
[Verb] [Library]                        -Read 7 RGCTXs.
[Verb] [Library]                -Read module data for System.Xml.Linq.dll, contains 314 method pointers starting at 0x7FF8C555BAE0
[Verb] [Library]                        -Read 314 method pointers.
[Verb] [Library]                        -Read 10 RGCTX ranges.
[Verb] [Library]                        -Read 30 RGCTXs.
[Verb] [Library]                -Read module data for UnityEngine.AIModule.dll, contains 5 method pointers starting at 0x7FF8C55634B8
[Verb] [Library]                        -Read 5 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.AndroidJNIModule.dll, contains 193 method pointers starting at 0x7FF8C555DD80
[Verb] [Library]                        -Read 193 method pointers.
[Verb] [Library]                        -Read 10 RGCTX ranges.
[Verb] [Library]                        -Read 18 RGCTXs.
[Verb] [Library]                -Read module data for UnityEngine.AnimationModule.dll, contains 272 method pointers starting at 0x7FF8C555AEC0
[Verb] [Library]                        -Read 272 method pointers.
[Verb] [Library]                        -Read 1 RGCTX ranges.
[Verb] [Library]                        -Read 1 RGCTXs.
[Verb] [Library]                -Read module data for UnityEngine.AssetBundleModule.dll, contains 25 method pointers starting at 0x7FF8C5562CA0
[Verb] [Library]                        -Read 25 method pointers.
[Verb] [Library]                        -Read 1 RGCTX ranges.
[Verb] [Library]                        -Read 2 RGCTXs.
[Verb] [Library]                -Read module data for UnityEngine.AudioModule.dll, contains 94 method pointers starting at 0x7FF8C555F840
[Verb] [Library]                        -Read 94 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.ClothModule.dll, contains 3 method pointers starting at 0x7FF8C5563520
[Verb] [Library]                        -Read 3 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.dll, contains 0 method pointers starting at 0x0
[Verb] [Library]                -Read module data for UnityEngine.CoreModule.dll, contains 3045 method pointers starting at 0x7FF8C55227D0
[Verb] [Library]                        -Read 3045 method pointers.
[Verb] [Library]                        -Read 121 RGCTX ranges.
[Verb] [Library]                        -Read 275 RGCTXs.
[Verb] [Library]                -Read module data for UnityEngine.DirectorModule.dll, contains 26 method pointers starting at 0x7FF8C5562BD0
[Verb] [Library]                        -Read 26 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.GridModule.dll, contains 1 method pointers starting at 0x7FF8C5563580
[Verb] [Library]                        -Read 1 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.IMGUIModule.dll, contains 444 method pointers starting at 0x7FF8C5556720
[Verb] [Library]                        -Read 444 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.InputLegacyModule.dll, contains 72 method pointers starting at 0x7FF8C55617C0
[Verb] [Library]                        -Read 72 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.InputModule.dll, contains 10 method pointers starting at 0x7FF8C55630A0
[Verb] [Library]                        -Read 10 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.JSONSerializeModule.dll, contains 6 method pointers starting at 0x7FF8C5563488
[Verb] [Library]                        -Read 6 method pointers.
[Verb] [Library]                        -Read 1 RGCTX ranges.
[Verb] [Library]                        -Read 2 RGCTXs.
[Verb] [Library]                -Read module data for UnityEngine.ParticleSystemModule.dll, contains 242 method pointers starting at 0x7FF8C5559C50
[Verb] [Library]                        -Read 242 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.Physics2DModule.dll, contains 128 method pointers starting at 0x7FF8C555E990
[Verb] [Library]                        -Read 128 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.PhysicsModule.dll, contains 169 method pointers starting at 0x7FF8C555D830
[Verb] [Library]                        -Read 169 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.SharedInternalsModule.dll, contains 65 method pointers starting at 0x7FF8C5561AD0
[Verb] [Library]                        -Read 65 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.SpriteShapeModule.dll, contains 0 method pointers starting at 0x0
[Verb] [Library]                -Read module data for UnityEngine.SubsystemsModule.dll, contains 28 method pointers starting at 0x7FF8C5562AF0
[Verb] [Library]                        -Read 28 method pointers.
[Verb] [Library]                        -Read 1 RGCTX ranges.
[Verb] [Library]                        -Read 6 RGCTXs.
[Verb] [Library]                -Read module data for UnityEngine.TerrainModule.dll, contains 47 method pointers starting at 0x7FF8C55620E0
[Verb] [Library]                        -Read 47 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.TextRenderingModule.dll, contains 57 method pointers starting at 0x7FF8C5561CE0
[Verb] [Library]                        -Read 57 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.TilemapModule.dll, contains 35 method pointers starting at 0x7FF8C55623D0
[Verb] [Library]                        -Read 35 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.UIElementsNativeModule.dll, contains 22 method pointers starting at 0x7FF8C5562D70
[Verb] [Library]                        -Read 22 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.UIModule.dll, contains 99 method pointers starting at 0x7FF8C555FB30
[Verb] [Library]                        -Read 99 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.UI.dll, contains 1750 method pointers starting at 0x7FF8C5540F50
[Verb] [Library]                        -Read 1750 method pointers.
[Verb] [Library]                        -Read 16 RGCTX ranges.
[Verb] [Library]                        -Read 69 RGCTXs.
[Verb] [Library]                -Read module data for UnityEngine.UnityAnalyticsModule.dll, contains 18 method pointers starting at 0x7FF8C5562EE0
[Verb] [Library]                        -Read 18 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.UnityWebRequestModule.dll, contains 87 method pointers starting at 0x7FF8C5560920
[Verb] [Library]                        -Read 87 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.VFXModule.dll, contains 29 method pointers starting at 0x7FF8C55629F0
[Verb] [Library]                        -Read 29 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.VRModule.dll, contains 2 method pointers starting at 0x7FF8C5563550
[Verb] [Library]                        -Read 2 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.VideoModule.dll, contains 26 method pointers starting at 0x7FF8C5562900
[Verb] [Library]                        -Read 26 method pointers.
[Verb] [Library]                -Read module data for UnityEngine.XRModule.dll, contains 57 method pointers starting at 0x7FF8C55610F0
[Verb] [Library]                        -Read 57 method pointers.
[Verb] [Library]                -Read module data for Unity.Burst.dll, contains 62 method pointers starting at 0x7FF8C5561EF0
[Verb] [Library]                        -Read 62 method pointers.
[Verb] [Library]                        -Read 7 RGCTX ranges.
[Verb] [Library]                        -Read 14 RGCTXs.
[Verb] [Library]                -Read module data for Unity.Burst.Unsafe.dll, contains 2 method pointers starting at 0x7FF8C5563570
[Verb] [Library]                        -Read 2 method pointers.
[Verb] [Library]                -Read module data for Unity.Collections.dll, contains 571 method pointers starting at 0x7FF8C55515A0
[Verb] [Library]                        -Read 571 method pointers.
[Verb] [Library]                        -Read 61 RGCTX ranges.
[Verb] [Library]                        -Read 220 RGCTXs.
[Verb] [Library]                -Read module data for Unity.Entities.dll, contains 2350 method pointers starting at 0x7FF8C54F9080
[Verb] [Library]                        -Read 2350 method pointers.
[Verb] [Library]                        -Read 234 RGCTX ranges.
[Verb] [Library]                        -Read 1520 RGCTXs.
[Verb] [Library]                -Read module data for Unity.Entities.Hybrid.dll, contains 303 method pointers starting at 0x7FF8C555A540
[Verb] [Library]                        -Read 303 method pointers.
[Verb] [Library]                        -Read 11 RGCTX ranges.
[Verb] [Library]                        -Read 26 RGCTXs.
[Verb] [Library]                -Read module data for Unity.Mathematics.dll, contains 309 method pointers starting at 0x7FF8C5558B60
[Verb] [Library]                        -Read 309 method pointers.
[Verb] [Library]                -Read module data for Unity.Mathematics.Extensions.dll, contains 1 method pointers starting at 0x7FF8C5563538
[Verb] [Library]                        -Read 1 method pointers.
[Verb] [Library]                -Read module data for Unity.Properties.dll, contains 650 method pointers starting at 0x7FF8C55552D0
[Verb] [Library]                        -Read 650 method pointers.
[Verb] [Library]                        -Read 83 RGCTX ranges.
[Verb] [Library]                        -Read 411 RGCTXs.
[Verb] [Library]                -Read module data for Unity.Scenes.Hybrid.dll, contains 231 method pointers starting at 0x7FF8C555C660
[Verb] [Library]                        -Read 231 method pointers.
[Verb] [Library]                        -Read 9 RGCTX ranges.
[Verb] [Library]                        -Read 26 RGCTXs.
[Verb] [Library]                -Read module data for Unity.Serialization.dll, contains 120 method pointers starting at 0x7FF8C555E440
[Verb] [Library]                        -Read 120 method pointers.
[Verb] [Library]                        -Read 27 RGCTX ranges.
[Verb] [Library]                        -Read 143 RGCTXs.
[Verb] [Library]                -Read module data for Unity.Timeline.dll, contains 856 method pointers starting at 0x7FF8C554DC10
[Verb] [Library]                        -Read 856 method pointers.
[Verb] [Library]                        -Read 7 RGCTX ranges.
[Verb] [Library]                        -Read 29 RGCTXs.
[Verb] [Library]                -Read module data for Unity.Transforms.dll, contains 87 method pointers starting at 0x7FF8C555FE50
[Verb] [Library]                        -Read 87 method pointers.
[Verb] [Library]                -Read module data for Unity.Transforms.Hybrid.dll, contains 30 method pointers starting at 0x7FF8C5562270
[Verb] [Library]                        -Read 30 method pointers.
[Verb] [Library]                -Read module data for UnsafeGeneric.dll, contains 9 method pointers starting at 0x7FF8C5563440
[Verb] [Library]                        -Read 9 method pointers.
[Verb] [Library]                -Read module data for mscorlib.dll, contains 12763 method pointers starting at 0x7FF8C54A46C0
[Verb] [Library]                        -Read 12763 method pointers.
[Verb] [Library]                        -Read 198 RGCTX ranges.
[Verb] [Library]                        -Read 1030 RGCTXs.
[Verb] [Library]        OK (29.4184 ms)
[Verb] [Library]        Reading generic method tables...OK (30.5304 ms)
[Verb] [Library]        Reading method specifications...OK (20.5533 ms)
[Verb] [Library]        Reading generic methods...OK (40.0889 ms)
[Info] [Library] Initialized Binary in 207ms
[Info] [Library] Mapping pointers to Il2CppMethodDefinitions...Processed 89123 OK (154ms)
[Info] [Program] Creating application model...
[Verb] [Program]        Using instruction set handler: Cpp2IL.Core.InstructionSets.X86InstructionSet
[Verb] [Program]        Processing assembly: mscorlib...
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at LibCpp2IL.Metadata.Il2CppTypeDefinition.get_DeclaringType() in /home/runner/work/Cpp2IL/Cpp2IL/LibCpp2IL/Metadata/Il2CppTypeDefinition.cs:line 340
   at LibCpp2IL.Metadata.Il2CppTypeDefinition.get_FullName() in /home/runner/work/Cpp2IL/Cpp2IL/LibCpp2IL/Metadata/Il2CppTypeDefinition.cs:line 208
   at Cpp2IL.Core.Model.Contexts.AssemblyAnalysisContext..ctor(Il2CppAssemblyDefinition assemblyDefinition, ApplicationAnalysisContext appContext) in /_/Cpp2IL.Core/Model/Contexts/AssemblyAnalysisContext.cs:line 65
   at Cpp2IL.Core.Model.Contexts.ApplicationAnalysisContext..ctor(Il2CppBinary binary, Il2CppMetadata metadata, Single metadataVersion) in /_/Cpp2IL.Core/Model/Contexts/ApplicationAnalysisContext.cs:line 93
   at Cpp2IL.Core.Cpp2IlApi.OnLibInitialized() in /_/Cpp2IL.Core/Cpp2IlApi.cs:line 102
   at Cpp2IL.Core.Cpp2IlApi.InitializeLibCpp2Il(String assemblyPath, String metadataPath, UnityVersion unityVersion, Boolean allowUserToInputAddresses) in /_/Cpp2IL.Core/Cpp2IlApi.cs:line 70
   at Cpp2IL.Program.MainWithArgs(Cpp2IlRuntimeArgs runtimeArgs) in /home/runner/work/Cpp2IL/Cpp2IL/Cpp2IL/Program.cs:line 500
   at Cpp2IL.Program.Main(String[] args) in /home/runner/work/Cpp2IL/Cpp2IL/Cpp2IL/Program.cs:line 444
SamboyCoding commented 6 months ago

From investigation on another game with the same error (I posted my findings in Discord), the result was that this would appear to be a game using a modified IL2CPP. On the other game, I suppressed this error, and immediately hit another one that was even less recoverable, and absolutely concretely indicated the format of the global-metadata file had been changed from the default. So for now I'm considering this issue closed as unsupported.