Package ghidra.app.util.bin.format.pe
Class ExportDataDirectory
java.lang.Object
ghidra.app.util.bin.format.pe.DataDirectory
ghidra.app.util.bin.format.pe.ExportDataDirectory
- All Implemented Interfaces:
PeMarkupable
,StructConverter
A class to represent the
IMAGE_EXPORT_DIRECTORY
data structure defined in winnt.h
.
typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD Name; DWORD Base; DWORD NumberOfFunctions; DWORD NumberOfNames; DWORD AddressOfFunctions; // RVA from base of image DWORD AddressOfNames; // RVA from base of image DWORD AddressOfNameOrdinals; // RVA from base of image };
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The size of theIMAGE_EXPORT_DIRECTORY
in bytes.Fields inherited from class ghidra.app.util.bin.format.pe.DataDirectory
hasParsed, IMAGE_SIZEOF_IMAGE_DIRECTORY_ENTRY, ntHeader, reader, size, TITLE, virtualAddress
-
Method Summary
Modifier and TypeMethodDescriptionint
int
int
int
getBase()
int
Returns an array of the exports defined in this export data directory.short
short
int
getName()
int
int
int
void
markup
(Program program, boolean isBinary, TaskMonitor monitor, MessageLog log, NTHeader nt) Marks up a PE structure.boolean
parse()
Parses this data directory.Returns a structure datatype representing the contents of the implementor of this interface.toString()
Methods inherited from class ghidra.app.util.bin.format.pe.DataDirectory
createDirectoryBookmark, createFragment, createTerminatedString, getPointer, getSize, getVirtualAddress, hasParsedCorrectly, processDataDirectory, setBookmark, setEolComment, setPlateComment, setPreComment, setSize, setVirtualAddress, va, validateSize, writeBytes
-
Field Details
-
IMAGE_SIZEOF_EXPORT_DIRECTORY
public static final int IMAGE_SIZEOF_EXPORT_DIRECTORYThe size of theIMAGE_EXPORT_DIRECTORY
in bytes.- See Also:
-
-
Method Details
-
getExports
Returns an array of the exports defined in this export data directory.- Returns:
- an array of the exports defined in this export data directory
-
getAddressOfFunctions
public int getAddressOfFunctions() -
getAddressOfNames
public int getAddressOfNames() -
getAddressOfNameOrdinals
public int getAddressOfNameOrdinals() -
getNumberOfFunctions
public int getNumberOfFunctions() -
getNumberOfNames
public int getNumberOfNames() -
getName
public int getName() -
getBase
public int getBase() -
getCharacteristics
public int getCharacteristics() -
getTimeDateStamp
public int getTimeDateStamp() -
getMajorVersion
public short getMajorVersion() -
getMinorVersion
public short getMinorVersion() -
getExportName
-
markup
public void markup(Program program, boolean isBinary, TaskMonitor monitor, MessageLog log, NTHeader nt) throws DuplicateNameException, CodeUnitInsertionException, IOException Description copied from interface:PeMarkupable
Marks up a PE structure.- Specified by:
markup
in interfacePeMarkupable
- Parameters:
program
- The program to markup.isBinary
- True if the program is binary; otherwise, false.monitor
- The monitor.log
- The log.nt
- The PE's NT Header structure.- Throws:
DuplicateNameException
CodeUnitInsertionException
IOException
-
getDirectoryName
- Specified by:
getDirectoryName
in classDataDirectory
-
parse
Description copied from class:DataDirectory
Parses this data directory.- Specified by:
parse
in classDataDirectory
- Returns:
- True if parsing completed successfully; otherwise, false.
- Throws:
IOException
- If there was an IO problem while parsing.
-
toString
- Overrides:
toString
in classDataDirectory
- See Also:
-
toDataType
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 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:
-