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: