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 implements 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 Details

    • IMAGE_SIZEOF_EXPORT_DIRECTORY

      public static final int IMAGE_SIZEOF_EXPORT_DIRECTORY
      The size of the IMAGE_EXPORT_DIRECTORY in bytes.
      See Also:
  • Method Details

    • 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 String 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 interface PeMarkupable
      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

      public String getDirectoryName()
      Specified by:
      getDirectoryName in class DataDirectory
    • parse

      public boolean parse() throws IOException
      Description copied from class: DataDirectory
      Parses this data directory.
      Specified by:
      parse in class DataDirectory
      Returns:
      True if parsing completed successfully; otherwise, false.
      Throws:
      IOException - If there was an IO problem while parsing.
    • toString

      public String toString()
      Overrides:
      toString in class DataDirectory
      See Also:
    • toDataType

      public DataType toDataType() throws DuplicateNameException
      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 interface StructConverter
      Returns:
      returns a structure datatype representing the implementor of this interface
      Throws:
      DuplicateNameException - when a datatype of the same name already exists
      See Also: