From f420434fd331643b4c3f93f469e60f902e403d42 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Sat, 3 Dec 2022 21:59:21 -0800 Subject: [PATCH] Handle overlay data better --- BurnOutSharp.Wrappers/PortableExecutable.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BurnOutSharp.Wrappers/PortableExecutable.cs b/BurnOutSharp.Wrappers/PortableExecutable.cs index a3cd7f46..37bbdc48 100644 --- a/BurnOutSharp.Wrappers/PortableExecutable.cs +++ b/BurnOutSharp.Wrappers/PortableExecutable.cs @@ -346,7 +346,7 @@ namespace BurnOutSharp.Wrappers { var certificateTable = _executable.OptionalHeader.CertificateTable; int certificateTableAddress = (int)certificateTable.VirtualAddress.ConvertVirtualAddress(_executable.SectionTable); - if (certificateTableAddress != 0) + if (certificateTableAddress != 0 && certificateTableAddress < endOfFile) endOfFile = certificateTableAddress; } @@ -380,7 +380,7 @@ namespace BurnOutSharp.Wrappers return null; // If we're at the end of the file, cache an empty byte array - if (endOfSectionData == endOfFile) + if (endOfSectionData >= endOfFile) { _overlayData = new byte[0]; return _overlayData;