mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2025-07-03 05:10:27 +03:00
refactorings
This commit is contained in:
@ -1,3 +1,5 @@
|
||||
using X86Disassembler.PE.Types;
|
||||
|
||||
namespace X86Disassembler.PE.Parsers;
|
||||
|
||||
/// <summary>
|
||||
@ -6,23 +8,18 @@ namespace X86Disassembler.PE.Parsers;
|
||||
public class DOSHeaderParser : IParser<DOSHeader>
|
||||
{
|
||||
// DOS Header constants
|
||||
private const ushort DOS_SIGNATURE = 0x5A4D; // 'MZ'
|
||||
|
||||
/// <summary>
|
||||
/// Parse the DOS header from the binary reader
|
||||
/// </summary>
|
||||
/// <param name="reader">The binary reader positioned at the start of the DOS header</param>
|
||||
/// <returns>The parsed DOS header</returns>
|
||||
private const ushort DOS_SIGNATURE = 0x5A4D; // 'MZ'
|
||||
|
||||
public DOSHeader Parse(BinaryReader reader)
|
||||
{
|
||||
DOSHeader header = new DOSHeader();
|
||||
|
||||
var header = new DOSHeader();
|
||||
|
||||
header.e_magic = reader.ReadUInt16();
|
||||
if (header.e_magic != DOS_SIGNATURE)
|
||||
{
|
||||
throw new InvalidDataException("Invalid DOS signature (MZ)");
|
||||
}
|
||||
|
||||
|
||||
header.e_cblp = reader.ReadUInt16();
|
||||
header.e_cp = reader.ReadUInt16();
|
||||
header.e_crlc = reader.ReadUInt16();
|
||||
@ -36,24 +33,24 @@ public class DOSHeaderParser : IParser<DOSHeader>
|
||||
header.e_cs = reader.ReadUInt16();
|
||||
header.e_lfarlc = reader.ReadUInt16();
|
||||
header.e_ovno = reader.ReadUInt16();
|
||||
|
||||
|
||||
header.e_res = new ushort[4];
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
header.e_res[i] = reader.ReadUInt16();
|
||||
}
|
||||
|
||||
|
||||
header.e_oemid = reader.ReadUInt16();
|
||||
header.e_oeminfo = reader.ReadUInt16();
|
||||
|
||||
|
||||
header.e_res2 = new ushort[10];
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
header.e_res2[i] = reader.ReadUInt16();
|
||||
}
|
||||
|
||||
|
||||
header.e_lfanew = reader.ReadUInt32();
|
||||
|
||||
|
||||
return header;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user