Package ghidra.app.util.bin.format.pe

# Class SecurityDataDirectory

java.lang.Object
ghidra.app.util.bin.format.pe.DataDirectory
ghidra.app.util.bin.format.pe.SecurityDataDirectory

All Implemented Interfaces:
  `ByteArrayConverter`, `PeMarkupable`

public class SecurityDataDirectory extends DataDirectory implements ByteArrayConverter

- ## Field Summary

  ### 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 Type
  Method
  Description
  `SecurityCertificate[]`
  `getCertificate()`
  Returns an array of security certificates.
  `String`
  `getDirectoryName()`
  `Address`
  `getMarkupAddress(Program program, boolean isBinary)`
  `void`
  `markup(Program program, boolean isBinary, TaskMonitor monitor, MessageLog log, NTHeader nt)`
  Marks up a PE structure.
  `boolean`
  `parse()`
  Parses this data directory.
  `byte[]`
  `toBytes(DataConverter dc)`
  Returns a byte array representing this implementor of this interface.
  `void`
  `writeBytes(RandomAccessFile raf, DataConverter dc, PortableExecutable template)`
  Directories that are not contained inside of sections should override this method to write their bytes into the specified file.

  ### 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, toString, va, validateSize`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Method Details

  - ### getCertificate

    public SecurityCertificate[] getCertificate()
    Returns an array of security certificates.
    Returns:
      an array of security certificates

  - ### getDirectoryName

    public String getDirectoryName()
    Specified by:
      `getDirectoryName` in class `DataDirectory`

  - ### 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`

  - ### 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.

  - ### toBytes

    public byte[] toBytes(DataConverter dc)
    Description copied from interface: `ByteArrayConverter`
    Returns a byte array representing this implementor of this interface.
    Specified by:
      `toBytes` in interface `ByteArrayConverter`
    Parameters:
      `dc` - the data converter to use
    Returns:
      a byte array representing this object

  - ### writeBytes

    public void writeBytes(RandomAccessFile raf, DataConverter dc, PortableExecutable template) throws IOException
    Description copied from class: `DataDirectory`
    Directories that are not contained inside of sections should override this method to write their bytes into the specified file.
    Overrides:
      `writeBytes` in class `DataDirectory`
    Parameters:
      `raf` - the random access file used for output
      `dc` - the data converter for endianness
      `template` - the original unadulterated PE
    Throws:
      `IOException` - if an I/O error occurs

  - ### getMarkupAddress

    public Address getMarkupAddress(Program program, boolean isBinary)