From 649ea98a521d9e225857ad03223f4e484e580e55 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Mon, 22 Sep 2025 12:04:06 -0400 Subject: [PATCH] Move export table --- SabreTools.Models/PortableExecutable/Executable.cs | 2 +- .../AddressTableEntry.cs} | 4 ++-- .../DirectoryTable.cs} | 4 ++-- .../NamePointerTable.cs} | 4 ++-- .../{ExportNameTable.cs => Export/NameTable.cs} | 4 ++-- .../OrdinalTable.cs} | 4 ++-- .../{ExportTable.cs => Export/Table.cs} | 14 +++++++------- 7 files changed, 18 insertions(+), 18 deletions(-) rename SabreTools.Models/PortableExecutable/{ExportAddressTableEntry.cs => Export/AddressTableEntry.cs} (94%) rename SabreTools.Models/PortableExecutable/{ExportDirectoryTable.cs => Export/DirectoryTable.cs} (96%) rename SabreTools.Models/PortableExecutable/{ExportNamePointerTable.cs => Export/NamePointerTable.cs} (87%) rename SabreTools.Models/PortableExecutable/{ExportNameTable.cs => Export/NameTable.cs} (93%) rename SabreTools.Models/PortableExecutable/{ExportOrdinalTable.cs => Export/OrdinalTable.cs} (95%) rename SabreTools.Models/PortableExecutable/{ExportTable.cs => Export/Table.cs} (86%) diff --git a/SabreTools.Models/PortableExecutable/Executable.cs b/SabreTools.Models/PortableExecutable/Executable.cs index 42f1257..306871c 100644 --- a/SabreTools.Models/PortableExecutable/Executable.cs +++ b/SabreTools.Models/PortableExecutable/Executable.cs @@ -97,7 +97,7 @@ namespace SabreTools.Models.PortableExecutable /// /// Export table (.edata) /// - public ExportTable? ExportTable { get; set; } + public Export.Table? ExportTable { get; set; } /// /// Import table (.idata) diff --git a/SabreTools.Models/PortableExecutable/ExportAddressTableEntry.cs b/SabreTools.Models/PortableExecutable/Export/AddressTableEntry.cs similarity index 94% rename from SabreTools.Models/PortableExecutable/ExportAddressTableEntry.cs rename to SabreTools.Models/PortableExecutable/Export/AddressTableEntry.cs index 2da75a6..8676d6e 100644 --- a/SabreTools.Models/PortableExecutable/ExportAddressTableEntry.cs +++ b/SabreTools.Models/PortableExecutable/Export/AddressTableEntry.cs @@ -1,6 +1,6 @@ using System.Runtime.InteropServices; -namespace SabreTools.Models.PortableExecutable +namespace SabreTools.Models.PortableExecutable.Export { /// /// The export address table contains the address of exported entry points @@ -16,7 +16,7 @@ namespace SabreTools.Models.PortableExecutable /// /// [StructLayout(LayoutKind.Explicit)] - public sealed class ExportAddressTableEntry + public sealed class AddressTableEntry { /// /// The address of the exported symbol when loaded into memory, relative to diff --git a/SabreTools.Models/PortableExecutable/ExportDirectoryTable.cs b/SabreTools.Models/PortableExecutable/Export/DirectoryTable.cs similarity index 96% rename from SabreTools.Models/PortableExecutable/ExportDirectoryTable.cs rename to SabreTools.Models/PortableExecutable/Export/DirectoryTable.cs index 838c4f9..f1d037d 100644 --- a/SabreTools.Models/PortableExecutable/ExportDirectoryTable.cs +++ b/SabreTools.Models/PortableExecutable/Export/DirectoryTable.cs @@ -1,4 +1,4 @@ -namespace SabreTools.Models.PortableExecutable +namespace SabreTools.Models.PortableExecutable.Export { /// /// The export symbol information begins with the export directory table, @@ -7,7 +7,7 @@ /// imports to the entry points within this image. /// /// - public sealed class ExportDirectoryTable + public sealed class DirectoryTable { /// /// Reserved, must be 0. diff --git a/SabreTools.Models/PortableExecutable/ExportNamePointerTable.cs b/SabreTools.Models/PortableExecutable/Export/NamePointerTable.cs similarity index 87% rename from SabreTools.Models/PortableExecutable/ExportNamePointerTable.cs rename to SabreTools.Models/PortableExecutable/Export/NamePointerTable.cs index 83db9fb..6c268ae 100644 --- a/SabreTools.Models/PortableExecutable/ExportNamePointerTable.cs +++ b/SabreTools.Models/PortableExecutable/Export/NamePointerTable.cs @@ -1,4 +1,4 @@ -namespace SabreTools.Models.PortableExecutable +namespace SabreTools.Models.PortableExecutable.Export { /// /// The export name pointer table is an array of addresses (RVAs) into the export name table. @@ -8,7 +8,7 @@ /// An export name is defined only if the export name pointer table contains a pointer to it. /// /// - public sealed class ExportNamePointerTable + public sealed class NamePointerTable { /// /// The pointers are 32 bits each and are relative to the image base. diff --git a/SabreTools.Models/PortableExecutable/ExportNameTable.cs b/SabreTools.Models/PortableExecutable/Export/NameTable.cs similarity index 93% rename from SabreTools.Models/PortableExecutable/ExportNameTable.cs rename to SabreTools.Models/PortableExecutable/Export/NameTable.cs index c3df14c..6c25ffa 100644 --- a/SabreTools.Models/PortableExecutable/ExportNameTable.cs +++ b/SabreTools.Models/PortableExecutable/Export/NameTable.cs @@ -1,4 +1,4 @@ -namespace SabreTools.Models.PortableExecutable +namespace SabreTools.Models.PortableExecutable.Export { /// /// The export name table contains the actual string data that was pointed to by the export @@ -17,7 +17,7 @@ /// of variable length. /// /// - public sealed class ExportNameTable + public sealed class NameTable { /// /// A series of null-terminated ASCII strings of variable length. diff --git a/SabreTools.Models/PortableExecutable/ExportOrdinalTable.cs b/SabreTools.Models/PortableExecutable/Export/OrdinalTable.cs similarity index 95% rename from SabreTools.Models/PortableExecutable/ExportOrdinalTable.cs rename to SabreTools.Models/PortableExecutable/Export/OrdinalTable.cs index 1025e92..b10f03b 100644 --- a/SabreTools.Models/PortableExecutable/ExportOrdinalTable.cs +++ b/SabreTools.Models/PortableExecutable/Export/OrdinalTable.cs @@ -1,4 +1,4 @@ -namespace SabreTools.Models.PortableExecutable +namespace SabreTools.Models.PortableExecutable.Export { /// /// The export ordinal table is an array of 16-bit unbiased indexes into the export address table. @@ -32,7 +32,7 @@ /// name = ExportNameTable[i]; /// /// - public sealed class ExportOrdinalTable + public sealed class OrdinalTable { /// /// An array of 16-bit unbiased indexes into the export address table diff --git a/SabreTools.Models/PortableExecutable/ExportTable.cs b/SabreTools.Models/PortableExecutable/Export/Table.cs similarity index 86% rename from SabreTools.Models/PortableExecutable/ExportTable.cs rename to SabreTools.Models/PortableExecutable/Export/Table.cs index 9020089..0ccfc3a 100644 --- a/SabreTools.Models/PortableExecutable/ExportTable.cs +++ b/SabreTools.Models/PortableExecutable/Export/Table.cs @@ -1,4 +1,4 @@ -namespace SabreTools.Models.PortableExecutable +namespace SabreTools.Models.PortableExecutable.Export { /// /// The export data section, named .edata, contains information about symbols that other images @@ -13,7 +13,7 @@ /// exist to support use of export names. /// /// - public sealed class ExportTable + public sealed class Table { // TODO: Look into splitting this up // Technically speaking, even though all of these should live in the same @@ -26,7 +26,7 @@ /// A table with just one row (unlike the debug directory). This table indicates the /// locations and sizes of the other export tables. /// - public ExportDirectoryTable? ExportDirectoryTable { get; set; } + public DirectoryTable? ExportDirectoryTable { get; set; } /// /// An array of RVAs of exported symbols. These are the actual addresses of the exported @@ -34,12 +34,12 @@ /// can import a symbol by using an index to this table (an ordinal) or, optionally, by /// using the public name that corresponds to the ordinal if a public name is defined. /// - public ExportAddressTableEntry[]? ExportAddressTable { get; set; } + public AddressTableEntry[]? ExportAddressTable { get; set; } /// /// An array of pointers to the public export names, sorted in ascending order. /// - public ExportNamePointerTable? NamePointerTable { get; set; } + public NamePointerTable? NamePointerTable { get; set; } /// /// An array of the ordinals that correspond to members of the name pointer table. The @@ -47,7 +47,7 @@ /// must have the same number of members. Each ordinal is an index into the export address /// table. /// - public ExportOrdinalTable? OrdinalTable { get; set; } + public OrdinalTable? OrdinalTable { get; set; } /// /// A series of null-terminated ASCII strings. Members of the name pointer table point into @@ -55,6 +55,6 @@ /// exported; they are not necessarily the same as the private names that are used within /// the image file. /// - public ExportNameTable? ExportNameTable { get; set; } + public NameTable? ExportNameTable { get; set; } } }