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
FieldsModifier and TypeFieldDescriptionstatic final intThe size of theIMAGE_EXPORT_DIRECTORYin 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 TypeMethodDescriptionintintintintgetBase()intReturns an array of the exports defined in this export data directory.shortshortintgetName()intintintvoidmarkup(Program program, boolean isBinary, TaskMonitor monitor, MessageLog log, NTHeader nt) Marks up a PE structure.booleanparse()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_DIRECTORYin 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:PeMarkupableMarks up a PE structure.- Specified by:
markupin 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:
DuplicateNameExceptionCodeUnitInsertionExceptionIOException
-
getDirectoryName
- Specified by:
getDirectoryNamein classDataDirectory
-
parse
Description copied from class:DataDirectoryParses this data directory.- Specified by:
parsein classDataDirectory- Returns:
- True if parsing completed successfully; otherwise, false.
- Throws:
IOException- If there was an IO problem while parsing.
-
toString
- Overrides:
toStringin classDataDirectory- See Also:
-
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:
-