From 98f18c009825b2fe589d24b02a43d17d2e3a0a4c Mon Sep 17 00:00:00 2001 From: Katy Coe Date: Tue, 29 Oct 2019 20:10:51 +0100 Subject: [PATCH] Inspector: Don't crash when field offsets are not mapped in image --- Il2CppInspector/Il2CppInspector.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Il2CppInspector/Il2CppInspector.cs b/Il2CppInspector/Il2CppInspector.cs index 7eaace7..d8dbe23 100644 --- a/Il2CppInspector/Il2CppInspector.cs +++ b/Il2CppInspector/Il2CppInspector.cs @@ -122,10 +122,18 @@ namespace Il2CppInspector var def = TypeDefinitions[i]; var pFieldOffsets = Binary.FieldOffsetPointers[i]; if (pFieldOffsets != 0) { - BinaryImage.Position = BinaryImage.MapVATR((ulong) pFieldOffsets); + bool available = true; + + // If the target address range is not mapped in the file, assume zeroes + try { + BinaryImage.Position = BinaryImage.MapVATR((ulong) pFieldOffsets); + } + catch (InvalidOperationException) { + available = false; + } for (var f = 0; f < def.field_count; f++) - offsets.Add(def.fieldStart + f, BinaryImage.ReadWord()); + offsets.Add(def.fieldStart + f, available? BinaryImage.ReadWord() : 0); } }