From ec67ca605c4d772fdc13af1e57479310c11ff535 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 10 Nov 2022 12:57:19 -0800 Subject: [PATCH] Fix PE virtual directory size issues --- BurnOutSharp.Builder/Extensions.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/BurnOutSharp.Builder/Extensions.cs b/BurnOutSharp.Builder/Extensions.cs index 03f77db2..b0c5e80a 100644 --- a/BurnOutSharp.Builder/Extensions.cs +++ b/BurnOutSharp.Builder/Extensions.cs @@ -355,7 +355,9 @@ namespace BurnOutSharp.Builder // Attempt to derive the physical address from the current section var section = sections[i]; - if (rva >= section.VirtualAddress && rva <= section.VirtualAddress + section.VirtualSize) + if (rva >= section.VirtualAddress + && (rva <= section.VirtualAddress + section.SizeOfRawData + || rva <= section.VirtualAddress + section.VirtualSize)) return rva - section.VirtualAddress + section.PointerToRawData; }