Move export table

This commit is contained in:
Matt Nadareski
2025-09-22 12:04:06 -04:00
parent b90d7c5e9a
commit 649ea98a52
7 changed files with 18 additions and 18 deletions

View File

@@ -97,7 +97,7 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// Export table (.edata)
/// </summary>
public ExportTable? ExportTable { get; set; }
public Export.Table? ExportTable { get; set; }
/// <summary>
/// Import table (.idata)

View File

@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace SabreTools.Models.PortableExecutable
namespace SabreTools.Models.PortableExecutable.Export
{
/// <summary>
/// The export address table contains the address of exported entry points
@@ -16,7 +16,7 @@ namespace SabreTools.Models.PortableExecutable
/// </summary>
/// <see href="https://learn.microsoft.com/en-us/windows/win32/debug/pe-format"/>
[StructLayout(LayoutKind.Explicit)]
public sealed class ExportAddressTableEntry
public sealed class AddressTableEntry
{
/// <summary>
/// The address of the exported symbol when loaded into memory, relative to

View File

@@ -1,4 +1,4 @@
namespace SabreTools.Models.PortableExecutable
namespace SabreTools.Models.PortableExecutable.Export
{
/// <summary>
/// The export symbol information begins with the export directory table,
@@ -7,7 +7,7 @@
/// imports to the entry points within this image.
/// </summary>
/// <see href="https://learn.microsoft.com/en-us/windows/win32/debug/pe-format"/>
public sealed class ExportDirectoryTable
public sealed class DirectoryTable
{
/// <summary>
/// Reserved, must be 0.

View File

@@ -1,4 +1,4 @@
namespace SabreTools.Models.PortableExecutable
namespace SabreTools.Models.PortableExecutable.Export
{
/// <summary>
/// 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.
/// </summary>
/// <see href="https://learn.microsoft.com/en-us/windows/win32/debug/pe-format"/>
public sealed class ExportNamePointerTable
public sealed class NamePointerTable
{
/// <summary>
/// The pointers are 32 bits each and are relative to the image base.

View File

@@ -1,4 +1,4 @@
namespace SabreTools.Models.PortableExecutable
namespace SabreTools.Models.PortableExecutable.Export
{
/// <summary>
/// The export name table contains the actual string data that was pointed to by the export
@@ -17,7 +17,7 @@
/// of variable length.
/// </summary>
/// <see href="https://learn.microsoft.com/en-us/windows/win32/debug/pe-format"/>
public sealed class ExportNameTable
public sealed class NameTable
{
/// <summary>
/// A series of null-terminated ASCII strings of variable length.

View File

@@ -1,4 +1,4 @@
namespace SabreTools.Models.PortableExecutable
namespace SabreTools.Models.PortableExecutable.Export
{
/// <summary>
/// The export ordinal table is an array of 16-bit unbiased indexes into the export address table.
@@ -32,7 +32,7 @@
/// name = ExportNameTable[i];
/// </summary>
/// <see href="https://learn.microsoft.com/en-us/windows/win32/debug/pe-format"/>
public sealed class ExportOrdinalTable
public sealed class OrdinalTable
{
/// <summary>
/// An array of 16-bit unbiased indexes into the export address table

View File

@@ -1,4 +1,4 @@
namespace SabreTools.Models.PortableExecutable
namespace SabreTools.Models.PortableExecutable.Export
{
/// <summary>
/// The export data section, named .edata, contains information about symbols that other images
@@ -13,7 +13,7 @@
/// exist to support use of export names.
/// </summary>
/// <see href="https://learn.microsoft.com/en-us/windows/win32/debug/pe-format"/>
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.
/// </summary>
public ExportDirectoryTable? ExportDirectoryTable { get; set; }
public DirectoryTable? ExportDirectoryTable { get; set; }
/// <summary>
/// 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.
/// </summary>
public ExportAddressTableEntry[]? ExportAddressTable { get; set; }
public AddressTableEntry[]? ExportAddressTable { get; set; }
/// <summary>
/// An array of pointers to the public export names, sorted in ascending order.
/// </summary>
public ExportNamePointerTable? NamePointerTable { get; set; }
public NamePointerTable? NamePointerTable { get; set; }
/// <summary>
/// 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.
/// </summary>
public ExportOrdinalTable? OrdinalTable { get; set; }
public OrdinalTable? OrdinalTable { get; set; }
/// <summary>
/// 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.
/// </summary>
public ExportNameTable? ExportNameTable { get; set; }
public NameTable? ExportNameTable { get; set; }
}
}