private void ReadDOSHeader()
{
for (int i=0; i < FileImage.PESigOffset; i++) {
if (FileImage.DOSHeader[i] != ReadByte()) {
InputError();
}
}
uint sigOffset = ReadUInt32();
for (int i = FileImage.PESigOffset+4; i < FileImage.DOSHeader.Length-4; i++) {
if (FileImage.DOSHeader[i] != ReadByte()) { InputError(); }
}
BaseStream.Seek(sigOffset,SeekOrigin.Begin);
if ((char)ReadByte() != 'P') InputError();
if ((char)ReadByte() != 'E') InputError();
if (ReadByte() != 0) InputError();
if (ReadByte() != 0) InputError();
}