From 26db75853baad49e5b190704482c2ba7588168d1 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Sat, 3 Dec 2022 23:09:45 -0800 Subject: [PATCH] Fix malformed PE certificates --- BurnOutSharp.Builder/PortableExecutable.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BurnOutSharp.Builder/PortableExecutable.cs b/BurnOutSharp.Builder/PortableExecutable.cs index 5c6383fa..2244c91f 100644 --- a/BurnOutSharp.Builder/PortableExecutable.cs +++ b/BurnOutSharp.Builder/PortableExecutable.cs @@ -707,7 +707,7 @@ namespace BurnOutSharp.Builder entry.Length = data.ReadUInt32(ref offset); entry.Revision = (WindowsCertificateRevision)data.ReadUInt16(ref offset); entry.CertificateType = (WindowsCertificateType)data.ReadUInt16(ref offset); - if (entry.Length > 0) + if (entry.Length - 8 > 0) entry.Certificate = data.ReadBytes(ref offset, (int)entry.Length - 8); attributeCertificateTable.Add(entry); @@ -1856,7 +1856,7 @@ namespace BurnOutSharp.Builder entry.Length = data.ReadUInt32(); entry.Revision = (WindowsCertificateRevision)data.ReadUInt16(); entry.CertificateType = (WindowsCertificateType)data.ReadUInt16(); - if (entry.Length > 0) + if (entry.Length - 8 > 0) entry.Certificate = data.ReadBytes((int)entry.Length - 8); attributeCertificateTable.Add(entry);