Package ghidra.app.util.bin.format.mz
Class DOSHeader
java.lang.Object
ghidra.app.util.bin.format.mz.OldDOSHeader
ghidra.app.util.bin.format.mz.DOSHeader
- All Implemented Interfaces:
Writeable,StructConverter
This class represents the
IMAGE_DOS_HEADER struct
as defined in winnt.h.
typedef struct _IMAGE_DOS_HEADER { // DOS .EXE 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
WORD e_res[4]; // Reserved words
WORD e_oemid; // OEM identifier (for e_oeminfo)
WORD e_oeminfo; // OEM information; e_oemid specific
WORD e_res2[10]; // Reserved words // MANDATORY
LONG e_lfanew; // File address of new exe header
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
-
Field Summary
FieldsChangeModifier and TypeFieldDescriptionstatic final StringThe name to use when converting into a structure data type.static final intREMOVEDRemovedFields inherited from class ghidra.app.util.bin.format.mz.OldDOSHeader
IMAGE_DOS_SIGNATURE, reader -
Constructor Summary
Constructors -
Method Summary
ChangeModifier and TypeMethodDescriptionvoiddecrementStub(int start) inte_lfanew()Returns the file address of new EXE header.shorte_oemid()Returns the OEM identifier (for e_oeminfo).shortReturns the OEM information; e_oemid specific.short[]e_res()Returns the reserved words.short[]e_res2()Returns the reserved words (2).NEWgetName()Helper to override the value of nameintReturns the length (in bytes) of the DOS program.booleanReturns true if a new EXE header exists.booleanReturns true if a PE header exists.protected voidparse()Returns a structure datatype representing the contents of the implementor of this interface.voidwrite(RandomAccessFile raf, DataConverter dc) Writes this object to the specified random access file using the data converter to handle endianness.REMOVEDStringRemovedREMOVEDshorte_magic() RemovedREMOVEDshorte_cblp() RemovedREMOVEDshorte_cp() RemovedREMOVEDshorte_crlc() RemovedREMOVEDshortRemovedREMOVEDshortRemovedREMOVEDshortRemovedREMOVEDshorte_ss() RemovedREMOVEDshorte_sp() RemovedREMOVEDshorte_csum() RemovedREMOVEDshorte_ip() RemovedREMOVEDshorte_cs() RemovedREMOVEDshorte_lfarlc() RemovedREMOVEDshorte_ovno() RemovedREMOVEDbooleanRemovedMethods inherited from class ghidra.app.util.bin.format.mz.OldDOSHeader
e_cblp, e_cp, e_cparhdr, e_crlc, e_cs, e_csum, e_ip, e_lfarlc, e_magic, e_maxalloc, e_minalloc, e_ovno, e_sp, e_ss, getProcessorName, isDosSignature
-
Field Details
-
NAME
The name to use when converting into a structure data type.- See Also:
-
- Constant Field Values
-
IMAGE_DOS_SIGNATURE REMOVED
static int IMAGE_DOS_SIGNATURE
-
SIZEOF_DOS_HEADER
public static final int SIZEOF_DOS_HEADER- See Also:
-
-
Constructor Details
-
DOSHeader
Constructs a new DOS header.- Parameters:
reader- the binary reader- Throws:
IOException- if there was an IO-related error
-
-
Method Details
-
e_res
public short[] e_res()Returns the reserved words.- Returns:
- the reserved words
-
e_oemid
public short e_oemid()Returns the OEM identifier (for e_oeminfo).- Returns:
- the OEM identifier (for e_oeminfo)
-
e_oeminfo
public short e_oeminfo()Returns the OEM information; e_oemid specific.- Returns:
- the OEM information; e_oemid specific
-
e_res2
public short[] e_res2()Returns the reserved words (2).- Returns:
- the reserved words (2)
-
e_lfanew
public int e_lfanew()Returns the file address of new EXE header.- Returns:
- the file address of new EXE header
-
hasNewExeHeader
public boolean hasNewExeHeader()Returns true if a new EXE header exists.- Overrides:
hasNewExeHeaderin classOldDOSHeader- Returns:
- true if a new EXE header exists
-
hasPeHeader
public boolean hasPeHeader()Returns true if a PE header exists.- Overrides:
hasPeHeaderin classOldDOSHeader- Returns:
- true if a PE header exists
-
toDataType
Description copied from interface:StructConverterReturns 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:
toDataTypein interfaceStructConverter- Overrides:
toDataTypein classOldDOSHeader- Returns:
- returns a structure datatype representing the implementor of this interface
- Throws:
DuplicateNameException- when a datatype of the same name already exists- See Also:
-
getName NEW
Helper to override the value of name- Overrides:
getNamein classOldDOSHeader- Returns:
- The name of the header
-
getProgramLen
public int getProgramLen()Returns the length (in bytes) of the DOS program.In other words:
e_lfanew() - SIZEOF_DOS_HEADER- Returns:
- the length (in bytes)
-
parse
- Overrides:
parsein classOldDOSHeader- Throws:
IOException
-
decrementStub
public void decrementStub(int start) -
write
Description copied from interface:WriteableWrites this object to the specified random access file using the data converter to handle endianness.- Specified by:
writein interfaceWriteable- Overrides:
writein classOldDOSHeader- Parameters:
raf- the random access filedc- the data converter- Throws:
IOException- if an I/O error occurs- See Also:
-