Package ghidra.app.util.bin.format.mz
Class DOSHeader
java.lang.Object
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
FieldsModifier and TypeFieldDescriptionstatic final intstatic final StringThe name to use when converting into a structure data type.static final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddecrementStub(int start) shorte_cblp()Returns the number of bytes on the last page of file.shorte_cp()Returns the number of pages in the file.shortReturns the size of header in paragraphs.shorte_crlc()Returns the number of relocations.shorte_cs()Returns the initial (relative) CS value.shorte_csum()Returns the checksum.shorte_ip()Returns the initial IP value.inte_lfanew()Returns the file address of new EXE header.shorte_lfarlc()Returns the file address of relocation table.shorte_magic()Returns the magic number.shortReturns the maximum extra paragraphs needed.shortReturns the minimum extra paragraphs needed.shorte_oemid()Returns the OEM identifier (for e_oeminfo).shortReturns the OEM information; e_oemid specific.shorte_ovno()Returns the overlay number.short[]e_res()Returns the reserved words.short[]e_res2()Returns the reserved words (2).shorte_sp()Returns the initial SP value.shorte_ss()Returns the initial (relative) SS value.Returns the processor name.intReturns the length (in bytes) of the DOS program.booleanReturns true if a new EXE header exists.booleanReturns true if a PE header exists.booleanReturns true if the DOS magic number is correctReturns 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.
-
Field Details
-
NAME
The name to use when converting into a structure data type.- See Also:
-
IMAGE_DOS_SIGNATURE
public static final int IMAGE_DOS_SIGNATURE- See Also:
-
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
-
-
Method Details
-
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
-
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.- 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
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- Returns:
- returns a structure datatype representing the implementor of this interface
- Throws:
DuplicateNameException- when a datatype of the same name already exists- See Also:
-
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)
-
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- Parameters:
raf- the random access filedc- the data converter- Throws:
IOException- if an I/O error occurs- See Also:
-