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
public class ExportDataDirectory extends DataDirectory
A class to represent theIMAGE_EXPORT_DIRECTORY
data structure defined inwinnt.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
Fields Modifier and Type Field Description static int
IMAGE_SIZEOF_EXPORT_DIRECTORY
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
-
-
Constructor Summary
Constructors Constructor Description ExportDataDirectory()
DO NOT USE THIS CONSTRUCTOR, USE create*(GenericFactory ...) FACTORY METHODS INSTEAD.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getAddressOfFunctions()
int
getAddressOfNameOrdinals()
int
getAddressOfNames()
int
getBase()
int
getCharacteristics()
java.lang.String
getDirectoryName()
java.lang.String
getExportName()
ExportInfo[]
getExports()
Returns an array of the exports defined in this export data directory.short
getMajorVersion()
short
getMinorVersion()
int
getName()
int
getNumberOfFunctions()
int
getNumberOfNames()
int
getTimeDateStamp()
void
markup(Program program, boolean isBinary, TaskMonitor monitor, MessageLog log, NTHeader ntHeader)
Marks up a PE structure.boolean
parse()
Parses this data directory.DataType
toDataType()
This method should return a datatype representing the data stored in this directory.java.lang.String
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, writeBytes
-
-
-
-
Field Detail
-
IMAGE_SIZEOF_EXPORT_DIRECTORY
public static final int IMAGE_SIZEOF_EXPORT_DIRECTORY
The size of theIMAGE_EXPORT_DIRECTORY
in bytes.- See Also:
- Constant Field Values
-
-
Method Detail
-
getExports
public ExportInfo[] 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
public java.lang.String getExportName()
-
markup
public void markup(Program program, boolean isBinary, TaskMonitor monitor, MessageLog log, NTHeader ntHeader) throws DuplicateNameException, CodeUnitInsertionException, DataTypeConflictException, java.io.IOException
Description copied from interface:PeMarkupable
Marks up a PE structure.- Parameters:
program
- The program to markup.isBinary
- True if the program is binary; otherwise, false.monitor
- The monitor.log
- The log.ntHeader
- The PE's NT Header structure.- Throws:
DuplicateNameException
CodeUnitInsertionException
java.io.IOException
DataTypeConflictException
-
getDirectoryName
public java.lang.String getDirectoryName()
- Specified by:
getDirectoryName
in classDataDirectory
-
parse
public boolean parse() throws java.io.IOException
Description copied from class:DataDirectory
Parses this data directory.- Specified by:
parse
in classDataDirectory
- Returns:
- True if parsing completed successfully; otherwise, false.
- Throws:
java.io.IOException
- If there was an IO problem while parsing.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classDataDirectory
- See Also:
Object.toString()
-
toDataType
public DataType toDataType() throws DuplicateNameException
Description copied from class:DataDirectory
This method should return a datatype representing the data stored in this directory.- Specified by:
toDataType
in interfaceStructConverter
- Specified by:
toDataType
in classDataDirectory
- Returns:
- returns a structure datatype representing the implementor of this interface
- Throws:
DuplicateNameException
- when a datatype of the same name already exists- See Also:
StructureDataType
-
-