Package ghidra.app.util.bin.format.mz

# Class OldDOSHeader

java.lang.Object
ghidra.app.util.bin.format.mz.OldDOSHeader

All Implemented Interfaces:
  `Writeable`, `StructConverter`

Direct Known Subclasses:
  `DOSHeader`

public class OldDOSHeader extends Object implements StructConverter, Writeable
This class represents a DOS Header

         WORD   e_magic;                     // Magic number                                                                // MANDATORY
         WORD   e_cblp;                      // Bytes on last page of file
         WORD   e_cp;                        // Pages in file
         WORD   e_crlc;                      // Relocations
         WORD   e_cparhdr;                   // Size of header in paragraphs
         WORD   e_minalloc;                  // Minimum extra paragraphs needed
         WORD   e_maxalloc;                  // Maximum extra paragraphs needed
         WORD   e_ss;                        // Initial (relative) SS value
         WORD   e_sp;                        // Initial SP value
         WORD   e_csum;                      // Checksum
         WORD   e_ip;                        // Initial IP value
         WORD   e_cs;                        // Initial (relative) CS value
         WORD   e_lfarlc;                    // File address of relocation table
         WORD   e_ovno;                      // Overlay number

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `IMAGE_DOS_SIGNATURE`
  `static final String`
  `NAME`
  The name to use when converting into a structure data type.
  `protected BinaryReader`
  `reader`

  ### Fields inherited from interface ghidra.app.util.bin.StructConverter

  `ASCII, BYTE, DWORD, IBO32, IBO64, POINTER, QWORD, SLEB128, STRING, ULEB128, UTF16, UTF8, VOID, WORD`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `OldDOSHeader(BinaryReader reader)`
  Constructs a new DOS header.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `short`
  `e_cblp()`
  Returns the number of bytes on the last page of file.
  `short`
  `e_cp()`
  Returns the number of pages in the file.
  `short`
  `e_cparhdr()`
  Returns the size of header in paragraphs.
  `short`
  `e_crlc()`
  Returns the number of relocations.
  `short`
  `e_cs()`
  Returns the initial (relative) CS value.
  `short`
  `e_csum()`
  Returns the checksum.
  `short`
  `e_ip()`
  Returns the initial IP value.
  `short`
  `e_lfarlc()`
  Returns the file address of relocation table.
  `short`
  `e_magic()`
  Returns the magic number.
  `short`
  `e_maxalloc()`
  Returns the maximum extra paragraphs needed.
  `short`
  `e_minalloc()`
  Returns the minimum extra paragraphs needed.
  `short`
  `e_ovno()`
  Returns the overlay number.
  `short`
  `e_sp()`
  Returns the initial SP value.
  `short`
  `e_ss()`
  Returns the initial (relative) SS value.
  `protected String`
  `getName()`
  Helper to override the value of name
  `String`
  `getProcessorName()`
  Returns the processor name.
  `boolean`
  `hasNewExeHeader()`
  Returns true if a new EXE header exists.
  `boolean`
  `hasPeHeader()`
  Returns true if a PE header exists.
  `boolean`
  `isDosSignature()`
  Returns true if the DOS magic number is correct
  `protected void`
  `parse()`
  `DataType`
  `toDataType()`
  Returns a structure datatype representing the contents of the implementor of this interface.
  `void`
  `write(RandomAccessFile raf, DataConverter dc)`
  Writes this object to the specified random access file using the data converter to handle endianness.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### NAME

    public static final String NAME
    The name to use when converting into a structure data type.
    See Also:
      - Constant Field Values

  - ### IMAGE_DOS_SIGNATURE

    public static final int IMAGE_DOS_SIGNATURE
    See Also:
      - Constant Field Values

  - ### reader

    protected BinaryReader reader

- ## Constructor Details

  - ### OldDOSHeader

    public OldDOSHeader(BinaryReader reader) throws IOException
    Constructs a new DOS header.
    Parameters:
      `reader` - the binary reader
    Throws:
      `IOException` - if there was an IO-related error

- ## Method Details

  - ### getProcessorName

    public String getProcessorName()
    Returns the processor name.
    Returns:
      the processor name

  - ### e_magic

    public short e_magic()
    Returns the magic number.
    Returns:
      the magic number

  - ### e_cblp

    public short e_cblp()
    Returns the number of bytes on the last page of file.
    Returns:
      the number of bytes on the last page of the file

  - ### e_cp

    public short e_cp()
    Returns the number of pages in the file.
    Returns:
      the number of pages in the file

  - ### e_crlc

    public short e_crlc()
    Returns the number of relocations.
    Returns:
      the number of relocations

  - ### e_cparhdr

    public short e_cparhdr()
    Returns the size of header in paragraphs.
    Returns:
      the size of header in paragraphs

  - ### e_minalloc

    public short e_minalloc()
    Returns the minimum extra paragraphs needed.
    Returns:
      the minimum extra paragraphs needed

  - ### e_maxalloc

    public short e_maxalloc()
    Returns the maximum extra paragraphs needed.
    Returns:
      the maximum extra paragraphs needed

  - ### e_ss

    public short e_ss()
    Returns the initial (relative) SS value.
    Returns:
      the initial (relative) SS value

  - ### e_sp

    public short e_sp()
    Returns the initial SP value.
    Returns:
      the initial SP value

  - ### e_csum

    public short e_csum()
    Returns the checksum.
    Returns:
      the checksum

  - ### e_ip

    public short e_ip()
    Returns the initial IP value.
    Returns:
      the initial IP value

  - ### e_cs

    public short e_cs()
    Returns the initial (relative) CS value.
    Returns:
      the initial (relative) CS value

  - ### e_lfarlc

    public short e_lfarlc()
    Returns the file address of relocation table.
    Returns:
      the file address of relocation table

  - ### e_ovno

    public short e_ovno()
    Returns the overlay number.
    Returns:
      the overlay number

  - ### hasNewExeHeader

    public boolean hasNewExeHeader()
    Returns true if a new EXE header exists.
    Returns:
      true if a new EXE header exists

  - ### hasPeHeader

    public boolean hasPeHeader()
    Returns true if a PE header exists.
    Returns:
      true if a PE header exists

  - ### isDosSignature

    public boolean isDosSignature()
    Returns true if the DOS magic number is correct
    Returns:
      true if the DOS magic number is correct

  - ### toDataType

    public DataType toDataType() throws DuplicateNameException
    Description copied from interface: `StructConverter`
    Returns a structure datatype representing the contents of the implementor of this interface.

    For example, given:

         class A {
             int foo;
             double bar;
         }

    The return value should be a structure data type with two data type components; an INT and a DOUBLE. The structure should contain field names and, if possible, field comments.

    Specified by:
      `toDataType` in interface `StructConverter`
    Returns:
      returns a structure datatype representing the implementor of this interface
    Throws:
      `DuplicateNameException` - when a datatype of the same name already exists
    See Also:
      - `StructureDataType`

  - ### getName

    protected String getName()
    Helper to override the value of name
    Returns:
      The name of the header

  - ### parse

    protected void parse() throws IOException
    Throws:
      `IOException`

  - ### write

    public void write(RandomAccessFile raf, DataConverter dc) throws IOException
    Description copied from interface: `Writeable`
    Writes this object to the specified random access file using the data converter to handle endianness.
    Specified by:
      `write` in interface `Writeable`
    Parameters:
      `raf` - the random access file
      `dc` - the data converter
    Throws:
      `IOException` - if an I/O error occurs