diff --git a/BurnOutSharp.Models/LinearExecutable/Executable.cs b/BurnOutSharp.Models/LinearExecutable/Executable.cs index 732b53da..8b62c9ed 100644 --- a/BurnOutSharp.Models/LinearExecutable/Executable.cs +++ b/BurnOutSharp.Models/LinearExecutable/Executable.cs @@ -49,8 +49,13 @@ namespace BurnOutSharp.Models.LinearExecutable /// public ModuleFormatDirectivesTableEntry[] ModuleFormatDirectivesTable { get; set; } - // TODO: Resident directives data - // TODO: Per-page checksum table + // TODO: Verify Record directives table + + /// + /// Per-Page checksum table + /// + public PerPageChecksumTableEntry[] PerPageChecksumTable { get; set; } + // TODO: Fix-up page table // TODO: Fix-up record table // TODO: Imported modules name table diff --git a/BurnOutSharp.Models/LinearExecutable/PerPageChecksumTableEntry.cs b/BurnOutSharp.Models/LinearExecutable/PerPageChecksumTableEntry.cs new file mode 100644 index 00000000..17209fb4 --- /dev/null +++ b/BurnOutSharp.Models/LinearExecutable/PerPageChecksumTableEntry.cs @@ -0,0 +1,24 @@ +using System.Runtime.InteropServices; + +namespace BurnOutSharp.Models.LinearExecutable +{ + /// + /// The Per-Page Checksum table provides space for a cryptographic checksum for + /// each physical page in the EXE file. + /// + /// The checksum table is arranged such that the first entry in the table corresponds + /// to the first logical page of code/data in the EXE file (usually a preload page) + /// and the last entry corresponds to the last logical page in the EXE file (usually + /// a iterated data page). + /// + /// + /// + [StructLayout(LayoutKind.Sequential)] + public class PerPageChecksumTableEntry + { + /// + /// Cryptographic checksum. + /// + public uint Checksum; + } +}