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

# Class LoadConfigDirectory

java.lang.Object
ghidra.app.util.bin.format.pe.LoadConfigDirectory

All Implemented Interfaces:
  `StructConverter`

public class LoadConfigDirectory extends Object implements StructConverter
A class to represent the `IMAGE_LOAD_CONFIG_DIRECTORY` data structure which is defined in `winnt.h`.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `NAME32`
  `static final String`
  `NAME64`

  ### Fields inherited from interface ghidra.app.util.bin.StructConverter

  `ASCII, BYTE, DWORD, IBO32, IBO64, POINTER, QWORD, SLEB128, STRING, ULEB128, UTF16, UTF8, VOID, WORD`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `long`
  `getCfgCheckFunctionPointer()`
  Gets the ControlFlowGuard check function pointer address.
  `long`
  `getCfgDispatchFunctionPointer()`
  Gets the ControlFlowGuard dispatch function pointer address.
  `long`
  `getCfgFunctionCount()`
  Gets the ControlFlowGuard function count.
  `long`
  `getCfgFunctionTablePointer()`
  Gets the ControlFlowGuard function table pointer address.
  `ghidra.app.util.bin.format.pe.LoadConfigDirectory.GuardFlags`
  `getCfgGuardFlags()`
  Gets the ControlFlowGuard `LoadConfigDirectory.GuardFlags`.
  `int`
  `getCriticalSectionDefaultTimeout()`
  Returns the critical section default time-out value.
  `long`
  `getGuardAddressIatTableCount()`
  Gets the ControlFlowGuard IAT entries count.
  `long`
  `getGuardAddressIatTableTablePointer()`
  Gets the ControlFlowGuard IAT table pointer address.
  `long`
  `getRfgFailureRoutine()`
  Gets the ReturnFlowGuard failure routine address.
  `long`
  `getRfgFailureRoutineFunctionPointer()`
  Gets the ReturnFlowGuard failure routine function pointer address.
  `long`
  `getRfgVerifyStackPointerFunctionPointer()`
  Gets the ReturnFlowGuard verify stack pointer function pointer address.
  `long`
  `getSeHandlerCount()`
  Gets the safe exception handler table count.
  `long`
  `getSeHandlerTable()`
  Gets the safe exception handler table.
  `int`
  `getSize()`
  Returns the size (in bytes) of this structure.
  `DataType`
  `toDataType()`
  Returns a structure datatype representing the contents of the implementor of this interface.

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

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

- ## Field Details

  - ### NAME32

    public static final String NAME32
    See Also:
      - Constant Field Values

  - ### NAME64

    public static final String NAME64
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getSize

    public int getSize()
    Returns the size (in bytes) of this structure.
    Returns:
      the size (in bytes) of this structure

  - ### getCriticalSectionDefaultTimeout

    public int getCriticalSectionDefaultTimeout()
    Returns the critical section default time-out value.
    Returns:
      the critical section default time-out value

  - ### getSeHandlerTable

    public long getSeHandlerTable()
    Gets the safe exception handler table.
    Returns:
      the safe exception handler table.

  - ### getSeHandlerCount

    public long getSeHandlerCount()
    Gets the safe exception handler table count.
    Returns:
      the safe exception handler table count.

  - ### getCfgGuardFlags

    public ghidra.app.util.bin.format.pe.LoadConfigDirectory.GuardFlags getCfgGuardFlags()
    Gets the ControlFlowGuard `LoadConfigDirectory.GuardFlags`.
    Returns:
      The ControlFlowGuard `LoadConfigDirectory.GuardFlags`.

  - ### getCfgCheckFunctionPointer

    public long getCfgCheckFunctionPointer()
    Gets the ControlFlowGuard check function pointer address.
    Returns:
      The ControlFlowGuard check function pointer address. Could be 0 if ControlFlowGuard is not being used.

  - ### getCfgDispatchFunctionPointer

    public long getCfgDispatchFunctionPointer()
    Gets the ControlFlowGuard dispatch function pointer address.
    Returns:
      The ControlFlowGuard dispatch function pointer address. Could be 0 if ControlFlowGuard is not being used.

  - ### getCfgFunctionTablePointer

    public long getCfgFunctionTablePointer()
    Gets the ControlFlowGuard function table pointer address.
    Returns:
      The ControlFlowGuard function table function pointer address. Could be 0 if ControlFlowGuard is not being used.

  - ### getCfgFunctionCount

    public long getCfgFunctionCount()
    Gets the ControlFlowGuard function count.
    Returns:
      The ControlFlowGuard function count. Could be 0 if ControlFlowGuard is not being used.

  - ### getGuardAddressIatTableTablePointer

    public long getGuardAddressIatTableTablePointer()
    Gets the ControlFlowGuard IAT table pointer address.
    Returns:
      The ControlFlowGuard IAT table function pointer address. Could be 0 if ControlFlowGuard is not being used

  - ### getGuardAddressIatTableCount

    public long getGuardAddressIatTableCount()
    Gets the ControlFlowGuard IAT entries count.
    Returns:
      The ControlFlowGuard IAT entries count. Could be 0 if ControlFlowGuard is not being used

  - ### getRfgFailureRoutine

    public long getRfgFailureRoutine()
    Gets the ReturnFlowGuard failure routine address.
    Returns:
      The ReturnFlowGuard failure routine address. Could be 0 if ReturnFlowGuard is not being used.

  - ### getRfgFailureRoutineFunctionPointer

    public long getRfgFailureRoutineFunctionPointer()
    Gets the ReturnFlowGuard failure routine function pointer address.
    Returns:
      The ReturnFlowGuard failure routine function pointer address. Could be 0 if ReturnFlowGuard is not being used.

  - ### getRfgVerifyStackPointerFunctionPointer

    public long getRfgVerifyStackPointerFunctionPointer()
    Gets the ReturnFlowGuard verify stack pointer function pointer address.
    Returns:
      The ReturnFlowGuard verify stack pointer function pointer address. Could be 0 if ReturnFlowGuard is not being used.

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