From d56c8a3d838925d68170eb4a8bd9f80c04d93226 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 12 Feb 2026 16:04:16 -0500 Subject: [PATCH] Move unused parser --- .../Extensions/PortableExecutable.cs | 30 ------------------- .../Readers/PortableExecutable.cs | 25 ++++++++++++++++ 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/SabreTools.Serialization/Extensions/PortableExecutable.cs b/SabreTools.Serialization/Extensions/PortableExecutable.cs index 8f35f19e..c73f67ae 100644 --- a/SabreTools.Serialization/Extensions/PortableExecutable.cs +++ b/SabreTools.Serialization/Extensions/PortableExecutable.cs @@ -1,6 +1,5 @@ using System; using SabreTools.Data.Models.COFF; -using SabreTools.Data.Models.PortableExecutable; using SabreTools.IO.Extensions; #pragma warning disable IDE0017 // Simplify object initialization @@ -143,34 +142,5 @@ namespace SabreTools.Data.Extensions } #endregion - - // TODO: Implement other resource types from https://learn.microsoft.com/en-us/windows/win32/menurc/resource-file-formats - #region Resources - - /// - /// Parse a byte array into a ResourceHeader - /// - /// Data to parse - /// Offset into the byte array - /// A filled ResourceHeader on success, null on error - public static Models.PortableExecutable.Resource.ResourceHeader ParseResourceHeader(this byte[] data, ref int offset) - { - // Read in the table - var obj = new Models.PortableExecutable.Resource.ResourceHeader(); - - obj.DataSize = data.ReadUInt32LittleEndian(ref offset); - obj.HeaderSize = data.ReadUInt32LittleEndian(ref offset); - obj.ResourceType = (ResourceType)data.ReadUInt32LittleEndian(ref offset); // TODO: Could be a string too - obj.Name = data.ReadUInt32LittleEndian(ref offset); // TODO: Could be a string too - obj.DataVersion = data.ReadUInt32LittleEndian(ref offset); - obj.MemoryFlags = (MemoryFlags)data.ReadUInt16LittleEndian(ref offset); - obj.LanguageId = data.ReadUInt16LittleEndian(ref offset); - obj.Version = data.ReadUInt32LittleEndian(ref offset); - obj.Characteristics = data.ReadUInt32LittleEndian(ref offset); - - return obj; - } - - #endregion } } diff --git a/SabreTools.Serialization/Readers/PortableExecutable.cs b/SabreTools.Serialization/Readers/PortableExecutable.cs index be24fcaa..145d9144 100644 --- a/SabreTools.Serialization/Readers/PortableExecutable.cs +++ b/SabreTools.Serialization/Readers/PortableExecutable.cs @@ -14,6 +14,7 @@ using static SabreTools.Data.Models.PortableExecutable.Constants; #pragma warning disable IDE0017 // Simplify object initialization namespace SabreTools.Serialization.Readers { + // TODO: Implement other resource types from https://learn.microsoft.com/en-us/windows/win32/menurc/resource-file-formats public class PortableExecutable : BaseBinaryReader { /// @@ -2582,6 +2583,30 @@ namespace SabreTools.Serialization.Readers return obj; } + /// + /// Parse a byte array into a ResourceHeader + /// + /// Data to parse + /// Offset into the byte array + /// A filled ResourceHeader on success, null on error + public static Data.Models.PortableExecutable.Resource.ResourceHeader ParseResourceHeader(byte[] data, ref int offset) + { + // Read in the table + var obj = new Data.Models.PortableExecutable.Resource.ResourceHeader(); + + obj.DataSize = data.ReadUInt32LittleEndian(ref offset); + obj.HeaderSize = data.ReadUInt32LittleEndian(ref offset); + obj.ResourceType = (ResourceType)data.ReadUInt32LittleEndian(ref offset); // TODO: Could be a string too + obj.Name = data.ReadUInt32LittleEndian(ref offset); // TODO: Could be a string too + obj.DataVersion = data.ReadUInt32LittleEndian(ref offset); + obj.MemoryFlags = (MemoryFlags)data.ReadUInt16LittleEndian(ref offset); + obj.LanguageId = data.ReadUInt16LittleEndian(ref offset); + obj.Version = data.ReadUInt32LittleEndian(ref offset); + obj.Characteristics = data.ReadUInt32LittleEndian(ref offset); + + return obj; + } + /// /// Parse a Stream into a SectionDefinition ///