Package ghidra.app.util.bin.format.pe
Interface OptionalHeader
- All Superinterfaces:
StructConverter
- All Known Implementing Classes:
OptionalHeaderImpl
-
Field Summary
Modifier and TypeFieldDescriptionstatic final byte
Architecture Specific Data directory indexstatic final byte
Base Relocation Table directory indexstatic final byte
Bound Import directory indexstatic final byte
COM Runtime Descriptor directory indexstatic final byte
New name for the COM Descriptor directory indexstatic final byte
Debug directory indexstatic final byte
Delay Load Import Descriptors directory indexstatic final byte
Exception directory indexstatic final byte
Export directory indexstatic final byte
Global Pointer directory indexstatic final byte
Import Address Table directory indexstatic final byte
Import directory indexstatic final byte
Load Configuration directory indexstatic final byte
Resource directory indexstatic final byte
Security directory indexstatic final byte
TLS directory indexstatic final int
Image should execute in an AppContainer.static final int
The DLL can be relocated at load time.static final int
Code integrity checks are forced.static final int
Image supports Control Flow Guard.static final int
ASLR with 64 bit address space.static final int
Do not bind the image.static final int
The image is isolation aware, but should not be isolated.static final int
The image does not use structured exception handling (SEH).static final int
The image is compatible with data execution prevention (DEP)static final int
The image is terminal server aware.static final int
A WDM driver.static final byte
The count of data directories in the optional header. -
Method Summary
Modifier and TypeMethodDescriptionlong
long
Returns the RVA of the first byte of code when loaded in memory.long
int
Get the image file checksum.Returns the array of data directories.short
Return flags that describe properties of and features of this binary.int
long
int
Return the flags passed to the loader.short
Get the major version number of the image.byte
Return the major version number of the linker that built this binary.short
Return the major version number of the required operating system.short
Get the major version number of the subsystem.short
Get the minor version number of the image.byte
Return the minor version number of the linker that built this binary.short
Return the minor version number of the required operating system.short
Get the minor version number of the subsystem.long
int
long
Returns the combined total size of all sections with theIMAGE_SCN_CNT_CODE
attribute.long
long
Return the size of the heap to commitlong
Return the size of the heap reservationlong
long
Returns the combined size of all initialized data sections.long
Return the size of the stack to commitlong
Return the size of the stack reservationlong
Returns the size of all sections with the uninitialized data attributes.int
Get the subsystem that is required to run this image.int
This value is reserved, and must be 0boolean
is64bit()
Returns true of this optional header is 64-bit.boolean
isCLI()
void
processDataDirectories
(TaskMonitor monitor) This methods tells this optional header to process its data directories.void
setSizeOfCode
(long size) void
setSizeOfHeaders
(long size) void
setSizeOfImage
(long size) void
setSizeOfInitializedData
(long size) void
setSizeOfUninitializedData
(long size) void
validateDataDirectories
(Program program) void
writeHeader
(RandomAccessFile raf, DataConverter dc) Writes this optional header to the specified random access file.Methods inherited from interface ghidra.app.util.bin.StructConverter
toDataType
-
Field Details
-
IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA
static final int IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VAASLR with 64 bit address space.- See Also:
-
IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
static final int IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASEThe DLL can be relocated at load time.- See Also:
-
IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY
static final int IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITYCode integrity checks are forced.- See Also:
-
IMAGE_DLLCHARACTERISTICS_NX_COMPAT
static final int IMAGE_DLLCHARACTERISTICS_NX_COMPATThe image is compatible with data execution prevention (DEP)- See Also:
-
IMAGE_DLLCHARACTERISTICS_NO_ISOLATION
static final int IMAGE_DLLCHARACTERISTICS_NO_ISOLATIONThe image is isolation aware, but should not be isolated.- See Also:
-
IMAGE_DLLCHARACTERISTICS_NO_SEH
static final int IMAGE_DLLCHARACTERISTICS_NO_SEHThe image does not use structured exception handling (SEH).- See Also:
-
IMAGE_DLLCHARACTERISTICS_NO_BIND
static final int IMAGE_DLLCHARACTERISTICS_NO_BINDDo not bind the image.- See Also:
-
IMAGE_DLLCHARACTERISTICS_APPCONTAINER
static final int IMAGE_DLLCHARACTERISTICS_APPCONTAINERImage should execute in an AppContainer.- See Also:
-
IMAGE_DLLCHARACTERISTICS_WDM_DRIVER
static final int IMAGE_DLLCHARACTERISTICS_WDM_DRIVERA WDM driver.- See Also:
-
IMAGE_DLLCHARACTERISTICS_GUARD_CF
static final int IMAGE_DLLCHARACTERISTICS_GUARD_CFImage supports Control Flow Guard.- See Also:
-
IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE
static final int IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWAREThe image is terminal server aware.- See Also:
-
IMAGE_NUMBEROF_DIRECTORY_ENTRIES
static final byte IMAGE_NUMBEROF_DIRECTORY_ENTRIESThe count of data directories in the optional header.- See Also:
-
IMAGE_DIRECTORY_ENTRY_EXPORT
static final byte IMAGE_DIRECTORY_ENTRY_EXPORTExport directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_IMPORT
static final byte IMAGE_DIRECTORY_ENTRY_IMPORTImport directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_RESOURCE
static final byte IMAGE_DIRECTORY_ENTRY_RESOURCEResource directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_EXCEPTION
static final byte IMAGE_DIRECTORY_ENTRY_EXCEPTIONException directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_SECURITY
static final byte IMAGE_DIRECTORY_ENTRY_SECURITYSecurity directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_BASERELOC
static final byte IMAGE_DIRECTORY_ENTRY_BASERELOCBase Relocation Table directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_DEBUG
static final byte IMAGE_DIRECTORY_ENTRY_DEBUGDebug directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_ARCHITECTURE
static final byte IMAGE_DIRECTORY_ENTRY_ARCHITECTUREArchitecture Specific Data directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_GLOBALPTR
static final byte IMAGE_DIRECTORY_ENTRY_GLOBALPTRGlobal Pointer directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_TLS
static final byte IMAGE_DIRECTORY_ENTRY_TLSTLS directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG
static final byte IMAGE_DIRECTORY_ENTRY_LOAD_CONFIGLoad Configuration directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT
static final byte IMAGE_DIRECTORY_ENTRY_BOUND_IMPORTBound Import directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_IAT
static final byte IMAGE_DIRECTORY_ENTRY_IATImport Address Table directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT
static final byte IMAGE_DIRECTORY_ENTRY_DELAY_IMPORTDelay Load Import Descriptors directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR
static final byte IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTORCOM Runtime Descriptor directory index- See Also:
-
IMAGE_DIRECTORY_ENTRY_COMHEADER
static final byte IMAGE_DIRECTORY_ENTRY_COMHEADERNew name for the COM Descriptor directory index- See Also:
-
-
Method Details
-
is64bit
boolean is64bit()Returns true of this optional header is 64-bit.- Returns:
- true of this optional header is 64-bit
-
getMajorLinkerVersion
byte getMajorLinkerVersion()Return the major version number of the linker that built this binary.- Returns:
-
getMinorLinkerVersion
byte getMinorLinkerVersion()Return the minor version number of the linker that built this binary.- Returns:
-
getMajorOperatingSystemVersion
short getMajorOperatingSystemVersion()Return the major version number of the required operating system.- Returns:
-
getMinorOperatingSystemVersion
short getMinorOperatingSystemVersion()Return the minor version number of the required operating system.- Returns:
-
getMajorImageVersion
short getMajorImageVersion()Get the major version number of the image.- Returns:
-
getMinorImageVersion
short getMinorImageVersion()Get the minor version number of the image.- Returns:
-
getMajorSubsystemVersion
short getMajorSubsystemVersion()Get the major version number of the subsystem. -
getMinorSubsystemVersion
short getMinorSubsystemVersion()Get the minor version number of the subsystem.- Returns:
-
getWin32VersionValue
int getWin32VersionValue()This value is reserved, and must be 0 -
getChecksum
int getChecksum()Get the image file checksum.- Returns:
-
getSubsystem
int getSubsystem()Get the subsystem that is required to run this image.- Returns:
-
getDllCharacteristics
short getDllCharacteristics()Return flags that describe properties of and features of this binary.- Returns:
- See Also:
-
getSizeOfStackReserve
long getSizeOfStackReserve()Return the size of the stack reservation- Returns:
-
getSizeOfStackCommit
long getSizeOfStackCommit()Return the size of the stack to commit- Returns:
-
getSizeOfHeapReserve
long getSizeOfHeapReserve()Return the size of the heap reservation- Returns:
-
getSizeOfHeapCommit
long getSizeOfHeapCommit()Return the size of the heap to commit- Returns:
-
getLoaderFlags
int getLoaderFlags()Return the flags passed to the loader. Obsolete.- Returns:
-
getAddressOfEntryPoint
long getAddressOfEntryPoint()- Returns:
- the RVA of the first code byte in the file that will be executed
-
getImageBase
long getImageBase()- Returns:
- the preferred load address of this file in memory
-
getSizeOfImage
long getSizeOfImage()- Returns:
- the RVA that would be assigned to the next section following the last section
-
setSizeOfImage
void setSizeOfImage(long size) - See Also:
-
getSizeOfHeaders
long getSizeOfHeaders()- Returns:
- the combined size of all headers
-
setSizeOfHeaders
void setSizeOfHeaders(long size) - See Also:
-
getSizeOfCode
long getSizeOfCode()Returns the combined total size of all sections with theIMAGE_SCN_CNT_CODE
attribute.- Returns:
- the combined total size of all sections with
the
IMAGE_SCN_CNT_CODE
attribute.
-
setSizeOfCode
void setSizeOfCode(long size) - See Also:
-
getNumberOfRvaAndSizes
long getNumberOfRvaAndSizes() -
getSizeOfInitializedData
long getSizeOfInitializedData()Returns the combined size of all initialized data sections.- Returns:
- the combined size of all initialized data sections
-
setSizeOfInitializedData
void setSizeOfInitializedData(long size) - See Also:
-
getSizeOfUninitializedData
long getSizeOfUninitializedData()Returns the size of all sections with the uninitialized data attributes.- Returns:
- the size of all sections with the uninitialized data attributes
-
setSizeOfUninitializedData
void setSizeOfUninitializedData(long size) - See Also:
-
getBaseOfCode
long getBaseOfCode()Returns the RVA of the first byte of code when loaded in memory.- Returns:
- the RVA of the first byte of code when loaded in memory
-
getBaseOfData
long getBaseOfData()- Returns:
- the RVA of the first byte of data when loaded into memory
-
processDataDirectories
This methods tells this optional header to process its data directories.- Throws:
IOException
-
getDataDirectories
DataDirectory[] getDataDirectories()Returns the array of data directories.- Returns:
- the array of data directories
-
getSectionAlignment
int getSectionAlignment()- Returns:
- the section alignment
-
getFileAlignment
int getFileAlignment()- Returns:
- the file alignment
-
writeHeader
Writes this optional header to the specified random access file.- Parameters:
raf
- the random access filedc
- the data converter- Throws:
IOException
-
validateDataDirectories
-
isCLI
- Returns:
- true if the PE uses predominantly CLI code; otherwise, false.
- Throws:
IOException
-