2025-09-26 13:06:18 -04:00
|
|
|
|
namespace SabreTools.Data.Models.COFF
|
2025-09-26 12:09:34 -04:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Immediately following the COFF symbol table is the COFF string table. The
|
|
|
|
|
|
/// position of this table is found by taking the symbol table address in the
|
|
|
|
|
|
/// COFF header and adding the number of symbols multiplied by the size of a symbol.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <see href="https://learn.microsoft.com/en-us/windows/win32/debug/pe-format"/>
|
|
|
|
|
|
public sealed class StringTable
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// At the beginning of the COFF string table are 4 bytes that contain the
|
|
|
|
|
|
/// total size (in bytes) of the rest of the string table. This size includes
|
|
|
|
|
|
/// the size field itself, so that the value in this location would be 4 if no
|
|
|
|
|
|
/// strings were present.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public uint TotalSize { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Following the size are null-terminated strings that are pointed to by symbols
|
|
|
|
|
|
/// in the COFF symbol table.
|
|
|
|
|
|
/// </summary>
|
2025-10-31 13:59:28 -04:00
|
|
|
|
public string[] Strings { get; set; } = [];
|
2025-09-26 12:09:34 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|