mirror of
https://github.com/SabreTools/BinaryObjectScanner.git
synced 2026-07-17 14:25:12 +00:00
BOS.* -> BOS.*
This commit is contained in:
29
BinaryObjectScanner.Models/MSDOS/Executable.cs
Normal file
29
BinaryObjectScanner.Models/MSDOS/Executable.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
namespace BinaryObjectScanner.Models.MSDOS
|
||||
{
|
||||
/// <summary>
|
||||
/// The MS-DOS EXE format, also known as MZ after its signature (the initials of Microsoft engineer Mark Zbykowski),
|
||||
/// was introduced with MS-DOS 2.0 (version 1.0 only sported the simple COM format). It is designed as a relocatable
|
||||
/// executable running under real mode. As such, only DOS and Windows 9x can use this format natively, but there are
|
||||
/// several free DOS emulators (e.g., DOSBox) that support it and that run under various operating systems (e.g.,
|
||||
/// Linux, Amiga, Windows NT, etc.). Although they can exist on their own, MZ executables are embedded in all NE, LE,
|
||||
/// and PE executables, usually as stubs so that when they are ran under DOS, they display a warning.
|
||||
/// </summary>
|
||||
/// <see href="https://wiki.osdev.org/MZ"/>
|
||||
public sealed class Executable
|
||||
{
|
||||
/// <summary>
|
||||
/// MS-DOS executable header
|
||||
/// </summary>
|
||||
public ExecutableHeader Header { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// After loading the executable into memory, the program loader goes through
|
||||
/// every entry in relocation table. For each relocation entry, the loader
|
||||
/// adds the start segment address into word value pointed to by the
|
||||
/// segment:offset pair. So, for example, a relocation entry 0001:001A will
|
||||
/// make the loader add start segment address to the value at offset
|
||||
/// 1*0x10+0x1A=0x2A within the program data.
|
||||
/// </summary>
|
||||
public RelocationEntry[] RelocationTable { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user