LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF::PE::LoadConfiguration Class Reference

This class represents the load configuration data associated with the IMAGE_LOAD_CONFIG_DIRECTORY. More...

#include <LoadConfiguration.hpp>

Inheritance diagram for LIEF::PE::LoadConfiguration:
Collaboration diagram for LIEF::PE::LoadConfiguration:

Classes

struct  guard_function_t

Public Types

enum class  IMAGE_GUARD : uint32_t {
  NONE = 0x00000000 , CF_INSTRUMENTED = 0x100 , CFW_INSTRUMENTED = 0x200 , CF_FUNCTION_TABLE_PRESENT = 0x400 ,
  SECURITY_COOKIE_UNUSED = 0x800 , PROTECT_DELAYLOAD_IAT = 0x1000 , DELAYLOAD_IAT_IN_ITS_OWN_SECTION = 0x2000 , CF_EXPORT_SUPPRESSION_INFO_PRESENT = 0x4000 ,
  CF_ENABLE_EXPORT_SUPPRESSION = 0x8000 , CF_LONGJUMP_TABLE_PRESENT = 0x10000 , RF_INSTRUMENTED = 0x00020000 , RF_ENABLE = 0x00040000 ,
  RF_STRICT = 0x00080000 , RETPOLINE_PRESENT = 0x00100000 , EH_CONTINUATION_TABLE_PRESENT = 0x400000 , XFG_ENABLED = 0x00800000 ,
  CASTGUARD_PRESENT = 0x01000000 , MEMCPY_PRESENT = 0x02000000
}
using guard_functions_t = std::vector<guard_function_t>
using it_guard_functions = ref_iterator<guard_functions_t&>
using it_const_guard_functions = const_ref_iterator<const guard_functions_t&>
using dynamic_relocations_t = std::vector<std::unique_ptr<DynamicRelocation>>
using it_dynamic_relocations_t = ref_iterator<dynamic_relocations_t&, DynamicRelocation*>
using it_const_dynamic_relocations_t = const_ref_iterator<const dynamic_relocations_t&, const DynamicRelocation*>
Public Types inherited from LIEF::Object
template<class T>
using output_t = add_pointer_t<decay_t<T>>
template<class T>
using output_const_t = add_pointer_t<add_const_t<decay_t<T>>>

Public Member Functions

 LoadConfiguration ()
LoadConfigurationoperator= (const LoadConfiguration &)
 LoadConfiguration (const LoadConfiguration &)
 LoadConfiguration (LoadConfiguration &&)
LoadConfigurationoperator= (LoadConfiguration &&)
uint32_t characteristics () const
 Characteristics of the structure which is defined by its size.
uint32_t size () const
 Size of the current structure.
uint32_t timedatestamp () const
 The date and time stamp value.
uint16_t major_version () const
 Major version.
uint16_t minor_version () const
 Minor version.
uint32_t global_flags_clear () const
 The global flags that control system behavior. For more information, see Gflags.exe.
uint32_t global_flags_set () const
 The global flags that control system behavior. For more information, see Gflags.exe.
uint32_t critical_section_default_timeout () const
 The critical section default time-out value.
uint64_t decommit_free_block_threshold () const
 The size of the minimum block that must be freed before it is freed (de-committed), in bytes. This value is advisory.
uint64_t decommit_total_free_threshold () const
 The size of the minimum total memory that must be freed in the process heap before it is freed (de-committed), in bytes. This value is advisory.
uint64_t lock_prefix_table () const
 The VA of a list of addresses where the LOCK prefix is used. These will be replaced by NOP on single-processor systems. This member is available only for x86.
uint64_t maximum_allocation_size () const
 The maximum allocation size, in bytes. This member is obsolete and is used only for debugging purposes.
uint64_t virtual_memory_threshold () const
 The maximum block size that can be allocated from heap segments, in bytes.
uint64_t process_affinity_mask () const
 The process affinity mask. For more information, see GetProcessAffinityMask. This member is available only for .exe files.
uint32_t process_heap_flags () const
 The process heap flags. For more information, see HeapCreate.
uint16_t csd_version () const
 The service pack version.
uint16_t reserved1 () const
 See: dependent_load_flags().
uint16_t dependent_load_flags () const
 Alias for reserved1().
uint64_t editlist () const
 Reserved for use by the system.
uint64_t security_cookie () const
 A pointer to a cookie that is used by Visual C++ or GS implementation.
optional< uint64_t > se_handler_table () const
 The VA of the sorted table of RVAs of each valid, unique handler in the image. This member is available only for x86.
optional< uint64_t > se_handler_count () const
 The count of unique handlers in the table. This member is available only for x86.
const std::vector< uint32_t > & seh_functions () const
 Return the list of the function RVA in the SEH table (if any).
optional< uint64_t > guard_cf_check_function_pointer () const
 The VA where Control Flow Guard check-function pointer is stored.
optional< uint64_t > guard_cf_dispatch_function_pointer () const
 The VA where Control Flow Guard dispatch-function pointer is stored.
optional< uint64_t > guard_cf_function_table () const
 The VA of the sorted table of RVAs of each Control Flow Guard function in the image.
optional< uint64_t > guard_cf_function_count () const
 The count of unique RVAs in the guard_cf_function_table() table.
it_const_guard_functions guard_cf_functions () const
 Iterator over the Control Flow Guard functions referenced by guard_cf_function_table().
it_guard_functions guard_cf_functions ()
optional< uint32_t > guard_flags () const
 Control Flow Guard related flags.
bool has (IMAGE_GUARD flag) const
 Check if the given flag is present.
std::vector< IMAGE_GUARDguard_cf_flags_list () const
 List of flags.
const CodeIntegritycode_integrity () const
 Code integrity information.
CodeIntegritycode_integrity ()
optional< uint64_t > guard_address_taken_iat_entry_table () const
 The VA where Control Flow Guard address taken IAT table is stored.
optional< uint64_t > guard_address_taken_iat_entry_count () const
 The count of unique RVAs in the table pointed by guard_address_taken_iat_entry_table().
it_const_guard_functions guard_address_taken_iat_entries () const
 List of RVA pointed by guard_address_taken_iat_entry_table().
it_guard_functions guard_address_taken_iat_entries ()
optional< uint64_t > guard_long_jump_target_table () const
 The VA where Control Flow Guard long jump target table is stored.
optional< uint64_t > guard_long_jump_target_count () const
 The count of unique RVAs in the table pointed by guard_long_jump_target_table.
it_const_guard_functions guard_long_jump_targets () const
 List of RVA pointed by guard_address_taken_iat_entry_table().
it_guard_functions guard_long_jump_targets ()
optional< uint64_t > dynamic_value_reloc_table () const
 VA pointing to a IMAGE_DYNAMIC_RELOCATION_TABLE.
it_dynamic_relocations_t dynamic_relocations ()
 Return an iterator over the Dynamic relocations (DVRT).
it_const_dynamic_relocations_t dynamic_relocations () const
optional< uint64_t > hybrid_metadata_pointer () const
 Alias for chpe_metadata_pointer().
optional< uint64_t > chpe_metadata_pointer () const
 VA to the extra Compiled Hybrid Portable Executable (CHPE) metadata.
const CHPEMetadatachpe_metadata () const
 Compiled Hybrid Portable Executable (CHPE) metadata (if any).
CHPEMetadatachpe_metadata ()
optional< uint64_t > guard_rf_failure_routine () const
 VA of the failure routine.
optional< uint64_t > guard_rf_failure_routine_function_pointer () const
 VA of the failure routine fptr.
optional< uint32_t > dynamic_value_reloctable_offset () const
 Offset of dynamic relocation table relative to the relocation table.
optional< uint16_t > dynamic_value_reloctable_section () const
 The section index of the dynamic value relocation table.
optional< uint16_t > reserved2 () const
 Must be zero.
optional< uint64_t > guard_rf_verify_stackpointer_function_pointer () const
 VA of the Function verifying the stack pointer.
optional< uint32_t > hotpatch_table_offset () const
 Offset to the hotpatch table.
optional< uint32_t > reserved3 () const
optional< uint64_t > enclave_configuration_ptr () const
const EnclaveConfigurationenclave_config () const
EnclaveConfigurationenclave_config ()
optional< uint64_t > volatile_metadata_pointer () const
const VolatileMetadatavolatile_metadata () const
VolatileMetadatavolatile_metadata ()
optional< uint64_t > guard_eh_continuation_table () const
optional< uint64_t > guard_eh_continuation_count () const
it_const_guard_functions guard_eh_continuation_functions () const
it_guard_functions guard_eh_continuation_functions ()
optional< uint64_t > guard_xfg_check_function_pointer () const
optional< uint64_t > guard_xfg_dispatch_function_pointer () const
optional< uint64_t > guard_xfg_table_dispatch_function_pointer () const
optional< uint64_t > cast_guard_os_determined_failure_mode () const
optional< uint64_t > guard_memcpy_function_pointer () const
optional< uint64_t > uma_function_pointers () const
LoadConfigurationcharacteristics (uint32_t characteristics)
LoadConfigurationsize (uint32_t value)
LoadConfigurationtimedatestamp (uint32_t timedatestamp)
LoadConfigurationmajor_version (uint16_t major_version)
LoadConfigurationminor_version (uint16_t minor_version)
LoadConfigurationglobal_flags_clear (uint32_t global_flags_clear)
LoadConfigurationglobal_flags_set (uint32_t global_flags_set)
LoadConfigurationcritical_section_default_timeout (uint32_t critical_section_default_timeout)
LoadConfigurationdecommit_free_block_threshold (uint64_t decommit_free_block_threshold)
LoadConfigurationdecommit_total_free_threshold (uint64_t decommit_total_free_threshold)
LoadConfigurationlock_prefix_table (uint64_t lock_prefix_table)
LoadConfigurationmaximum_allocation_size (uint64_t maximum_allocation_size)
LoadConfigurationvirtual_memory_threshold (uint64_t virtual_memory_threshold)
LoadConfigurationprocess_affinity_mask (uint64_t process_affinity_mask)
LoadConfigurationprocess_heap_flags (uint32_t process_heap_flagsid)
LoadConfigurationcsd_version (uint16_t csd_version)
LoadConfigurationreserved1 (uint16_t reserved1)
LoadConfigurationdependent_load_flags (uint16_t flags)
LoadConfigurationeditlist (uint64_t editlist)
LoadConfigurationsecurity_cookie (uint64_t security_cookie)
LoadConfigurationse_handler_table (uint64_t se_handler_table)
LoadConfigurationse_handler_count (uint64_t se_handler_count)
LoadConfigurationguard_cf_check_function_pointer (uint64_t check_pointer)
LoadConfigurationguard_cf_dispatch_function_pointer (uint64_t dispatch_pointer)
LoadConfigurationguard_cf_function_table (uint64_t guard_cf_function_table)
LoadConfigurationguard_cf_function_count (uint64_t guard_cf_function_count)
LoadConfigurationguard_flags (IMAGE_GUARD flags)
LoadConfigurationguard_flags (uint32_t flags)
LoadConfigurationcode_integrity (CodeIntegrity CI)
LoadConfigurationguard_address_taken_iat_entry_table (uint64_t value)
LoadConfigurationguard_address_taken_iat_entry_count (uint64_t value)
LoadConfigurationguard_long_jump_target_table (uint64_t value)
LoadConfigurationguard_long_jump_target_count (uint64_t value)
LoadConfigurationdynamic_value_reloc_table (uint64_t value)
LoadConfigurationhybrid_metadata_pointer (uint64_t value)
LoadConfigurationguard_rf_failure_routine (uint64_t value)
LoadConfigurationguard_rf_failure_routine_function_pointer (uint64_t value)
LoadConfigurationdynamic_value_reloctable_offset (uint32_t value)
LoadConfigurationdynamic_value_reloctable_section (uint16_t value)
LoadConfigurationreserved2 (uint16_t value)
LoadConfigurationguard_rf_verify_stackpointer_function_pointer (uint64_t value)
LoadConfigurationhotpatch_table_offset (uint32_t value)
LoadConfigurationreserved3 (uint32_t value)
LoadConfigurationenclave_configuration_ptr (uint64_t value)
LoadConfigurationvolatile_metadata_pointer (uint64_t value)
LoadConfigurationguard_eh_continuation_table (uint64_t value)
LoadConfigurationguard_eh_continuation_count (uint64_t value)
LoadConfigurationguard_xfg_check_function_pointer (uint64_t value)
LoadConfigurationguard_xfg_dispatch_function_pointer (uint64_t value)
LoadConfigurationguard_xfg_table_dispatch_function_pointer (uint64_t value)
LoadConfigurationcast_guard_os_determined_failure_mode (uint64_t value)
LoadConfigurationguard_memcpy_function_pointer (uint64_t value)
LoadConfigurationuma_function_pointers (uint64_t value)
 ~LoadConfiguration () override
void accept (Visitor &visitor) const override
std::string to_string () const
Public Member Functions inherited from LIEF::Object
 Object ()
 Object (const Object &other)
Objectoperator= (const Object &other)
 Object (Object &&other) noexcept=default
Objectoperator= (Object &&other) noexcept=default
template<class T>
output_t< T > as ()
template<class T>
output_const_t< T > as () const
virtual bool operator== (const Object &other) const
virtual bool operator!= (const Object &other) const
virtual ~Object ()

Static Public Member Functions

template<class PE_T>
static std::unique_ptr< LoadConfigurationparse (Parser &ctx, BinaryStream &stream)

Detailed Description

This class represents the load configuration data associated with the IMAGE_LOAD_CONFIG_DIRECTORY.

This structure is frequently updated by Microsoft to add new metadata.

Reference: https://github.com/MicrosoftDocs/sdk-api/blob/cbeab4d371e8bc7e352c4d3a4c5819caa08c6a1c/sdk-api-src/content/winnt/ns-winnt-image_load_config_directory64.md#L2

Member Typedef Documentation

◆ dynamic_relocations_t

◆ guard_functions_t

◆ it_const_dynamic_relocations_t

◆ it_const_guard_functions

◆ it_dynamic_relocations_t

◆ it_guard_functions

Member Enumeration Documentation

◆ IMAGE_GUARD

enum class LIEF::PE::LoadConfiguration::IMAGE_GUARD : uint32_t
strong
Enumerator
NONE 
CF_INSTRUMENTED 

Module performs control flow integrity checks using system-supplied support.

CFW_INSTRUMENTED 

Module performs control flow and write integrity checks.

CF_FUNCTION_TABLE_PRESENT 

Module contains valid control flow target metadata.

SECURITY_COOKIE_UNUSED 

Module does not make use of the /GS security cookie.

PROTECT_DELAYLOAD_IAT 

Module supports read only delay load IAT.

DELAYLOAD_IAT_IN_ITS_OWN_SECTION 

Delayload import table in its own .didat section (with nothing else in it) that can be freely reprotected.

CF_EXPORT_SUPPRESSION_INFO_PRESENT 

Module contains suppressed export information. This also infers that the address taken IAT table is also present in the load config.

CF_ENABLE_EXPORT_SUPPRESSION 

Module enables suppression of exports.

CF_LONGJUMP_TABLE_PRESENT 

Module contains longjmp target information.

RF_INSTRUMENTED 

Module contains return flow instrumentation and metadata.

RF_ENABLE 

Module requests that the OS enable return flow protection.

RF_STRICT 

Module requests that the OS enable return flow protection in strict mode.

RETPOLINE_PRESENT 

Module was built with retpoline support.

EH_CONTINUATION_TABLE_PRESENT 

Module contains EH continuation target information.

XFG_ENABLED 

Module was built with xfg (deprecated).

CASTGUARD_PRESENT 

Module has CastGuard instrumentation present.

MEMCPY_PRESENT 

Module has Guarded Memcpy instrumentation present.

Constructor & Destructor Documentation

◆ LoadConfiguration() [1/3]

LIEF::PE::LoadConfiguration::LoadConfiguration ( )

Referenced by cast_guard_os_determined_failure_mode(), characteristics(), code_integrity(), critical_section_default_timeout(), csd_version(), decommit_free_block_threshold(), decommit_total_free_threshold(), dependent_load_flags(), dynamic_value_reloc_table(), dynamic_value_reloctable_offset(), dynamic_value_reloctable_section(), editlist(), enclave_configuration_ptr(), global_flags_clear(), global_flags_set(), guard_address_taken_iat_entry_count(), guard_address_taken_iat_entry_table(), guard_cf_check_function_pointer(), guard_cf_dispatch_function_pointer(), guard_cf_function_count(), guard_cf_function_table(), guard_eh_continuation_count(), guard_eh_continuation_table(), guard_flags(), guard_flags(), guard_long_jump_target_count(), guard_long_jump_target_table(), guard_memcpy_function_pointer(), guard_rf_failure_routine(), guard_rf_failure_routine_function_pointer(), guard_rf_verify_stackpointer_function_pointer(), guard_xfg_check_function_pointer(), guard_xfg_dispatch_function_pointer(), guard_xfg_table_dispatch_function_pointer(), hotpatch_table_offset(), hybrid_metadata_pointer(), LoadConfiguration(), LoadConfiguration(), lock_prefix_table(), major_version(), maximum_allocation_size(), minor_version(), operator<<, operator=(), operator=(), process_affinity_mask(), process_heap_flags(), reserved1(), reserved2(), reserved3(), se_handler_count(), se_handler_table(), security_cookie(), size(), timedatestamp(), uma_function_pointers(), virtual_memory_threshold(), and volatile_metadata_pointer().

◆ LoadConfiguration() [2/3]

LIEF::PE::LoadConfiguration::LoadConfiguration ( const LoadConfiguration & )

References LoadConfiguration().

◆ LoadConfiguration() [3/3]

LIEF::PE::LoadConfiguration::LoadConfiguration ( LoadConfiguration && )

References LoadConfiguration().

◆ ~LoadConfiguration()

LIEF::PE::LoadConfiguration::~LoadConfiguration ( )
override

Member Function Documentation

◆ accept()

void LIEF::PE::LoadConfiguration::accept ( Visitor & visitor) const
overridevirtual

Implements LIEF::Object.

◆ cast_guard_os_determined_failure_mode() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::cast_guard_os_determined_failure_mode ( ) const
inline

◆ cast_guard_os_determined_failure_mode() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::cast_guard_os_determined_failure_mode ( uint64_t value)
inline

References LoadConfiguration().

◆ characteristics() [1/2]

uint32_t LIEF::PE::LoadConfiguration::characteristics ( ) const
inline

Characteristics of the structure which is defined by its size.

Referenced by characteristics(), and size().

◆ characteristics() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::characteristics ( uint32_t characteristics)
inline

◆ chpe_metadata() [1/2]

CHPEMetadata * LIEF::PE::LoadConfiguration::chpe_metadata ( )
inline

◆ chpe_metadata() [2/2]

const CHPEMetadata * LIEF::PE::LoadConfiguration::chpe_metadata ( ) const
inline

Compiled Hybrid Portable Executable (CHPE) metadata (if any).

◆ chpe_metadata_pointer()

optional< uint64_t > LIEF::PE::LoadConfiguration::chpe_metadata_pointer ( ) const
inline

VA to the extra Compiled Hybrid Portable Executable (CHPE) metadata.

References hybrid_metadata_pointer().

◆ code_integrity() [1/3]

CodeIntegrity * LIEF::PE::LoadConfiguration::code_integrity ( )
inline

◆ code_integrity() [2/3]

const CodeIntegrity * LIEF::PE::LoadConfiguration::code_integrity ( ) const
inline

Code integrity information.

◆ code_integrity() [3/3]

LoadConfiguration & LIEF::PE::LoadConfiguration::code_integrity ( CodeIntegrity CI)
inline

References LoadConfiguration().

◆ critical_section_default_timeout() [1/2]

uint32_t LIEF::PE::LoadConfiguration::critical_section_default_timeout ( ) const
inline

The critical section default time-out value.

Referenced by critical_section_default_timeout().

◆ critical_section_default_timeout() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::critical_section_default_timeout ( uint32_t critical_section_default_timeout)
inline

◆ csd_version() [1/2]

uint16_t LIEF::PE::LoadConfiguration::csd_version ( ) const
inline

The service pack version.

Referenced by csd_version().

◆ csd_version() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::csd_version ( uint16_t csd_version)
inline

◆ decommit_free_block_threshold() [1/2]

uint64_t LIEF::PE::LoadConfiguration::decommit_free_block_threshold ( ) const
inline

The size of the minimum block that must be freed before it is freed (de-committed), in bytes. This value is advisory.

Referenced by decommit_free_block_threshold().

◆ decommit_free_block_threshold() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::decommit_free_block_threshold ( uint64_t decommit_free_block_threshold)
inline

◆ decommit_total_free_threshold() [1/2]

uint64_t LIEF::PE::LoadConfiguration::decommit_total_free_threshold ( ) const
inline

The size of the minimum total memory that must be freed in the process heap before it is freed (de-committed), in bytes. This value is advisory.

Referenced by decommit_total_free_threshold().

◆ decommit_total_free_threshold() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::decommit_total_free_threshold ( uint64_t decommit_total_free_threshold)
inline

◆ dependent_load_flags() [1/2]

uint16_t LIEF::PE::LoadConfiguration::dependent_load_flags ( ) const
inline

Alias for reserved1().

The default load flags used when the operating system resolves the statically linked imports of a module. For more information, see LoadLibraryEx.

◆ dependent_load_flags() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::dependent_load_flags ( uint16_t flags)
inline

References LoadConfiguration(), and reserved1().

◆ dynamic_relocations() [1/2]

it_dynamic_relocations_t LIEF::PE::LoadConfiguration::dynamic_relocations ( )
inline

Return an iterator over the Dynamic relocations (DVRT).

◆ dynamic_relocations() [2/2]

it_const_dynamic_relocations_t LIEF::PE::LoadConfiguration::dynamic_relocations ( ) const
inline

◆ dynamic_value_reloc_table() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::dynamic_value_reloc_table ( ) const
inline

VA pointing to a IMAGE_DYNAMIC_RELOCATION_TABLE.

◆ dynamic_value_reloc_table() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::dynamic_value_reloc_table ( uint64_t value)
inline

References LoadConfiguration().

◆ dynamic_value_reloctable_offset() [1/2]

optional< uint32_t > LIEF::PE::LoadConfiguration::dynamic_value_reloctable_offset ( ) const
inline

Offset of dynamic relocation table relative to the relocation table.

◆ dynamic_value_reloctable_offset() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::dynamic_value_reloctable_offset ( uint32_t value)
inline

References LoadConfiguration().

◆ dynamic_value_reloctable_section() [1/2]

optional< uint16_t > LIEF::PE::LoadConfiguration::dynamic_value_reloctable_section ( ) const
inline

The section index of the dynamic value relocation table.

◆ dynamic_value_reloctable_section() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::dynamic_value_reloctable_section ( uint16_t value)
inline

References LoadConfiguration().

◆ editlist() [1/2]

uint64_t LIEF::PE::LoadConfiguration::editlist ( ) const
inline

Reserved for use by the system.

Referenced by editlist().

◆ editlist() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::editlist ( uint64_t editlist)
inline

References editlist(), and LoadConfiguration().

◆ enclave_config() [1/2]

EnclaveConfiguration * LIEF::PE::LoadConfiguration::enclave_config ( )
inline

◆ enclave_config() [2/2]

const EnclaveConfiguration * LIEF::PE::LoadConfiguration::enclave_config ( ) const
inline

◆ enclave_configuration_ptr() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::enclave_configuration_ptr ( ) const
inline

◆ enclave_configuration_ptr() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::enclave_configuration_ptr ( uint64_t value)
inline

References LoadConfiguration().

◆ global_flags_clear() [1/2]

uint32_t LIEF::PE::LoadConfiguration::global_flags_clear ( ) const
inline

The global flags that control system behavior. For more information, see Gflags.exe.

Referenced by global_flags_clear().

◆ global_flags_clear() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::global_flags_clear ( uint32_t global_flags_clear)
inline

◆ global_flags_set() [1/2]

uint32_t LIEF::PE::LoadConfiguration::global_flags_set ( ) const
inline

The global flags that control system behavior. For more information, see Gflags.exe.

Referenced by global_flags_set().

◆ global_flags_set() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::global_flags_set ( uint32_t global_flags_set)
inline

◆ guard_address_taken_iat_entries() [1/2]

it_guard_functions LIEF::PE::LoadConfiguration::guard_address_taken_iat_entries ( )
inline

◆ guard_address_taken_iat_entries() [2/2]

it_const_guard_functions LIEF::PE::LoadConfiguration::guard_address_taken_iat_entries ( ) const
inline

List of RVA pointed by guard_address_taken_iat_entry_table().

◆ guard_address_taken_iat_entry_count() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_address_taken_iat_entry_count ( ) const
inline

The count of unique RVAs in the table pointed by guard_address_taken_iat_entry_table().

◆ guard_address_taken_iat_entry_count() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_address_taken_iat_entry_count ( uint64_t value)
inline

References LoadConfiguration().

◆ guard_address_taken_iat_entry_table() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_address_taken_iat_entry_table ( ) const
inline

The VA where Control Flow Guard address taken IAT table is stored.

◆ guard_address_taken_iat_entry_table() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_address_taken_iat_entry_table ( uint64_t value)
inline

References LoadConfiguration().

◆ guard_cf_check_function_pointer() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_cf_check_function_pointer ( ) const
inline

The VA where Control Flow Guard check-function pointer is stored.

◆ guard_cf_check_function_pointer() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_cf_check_function_pointer ( uint64_t check_pointer)
inline

References LoadConfiguration().

◆ guard_cf_dispatch_function_pointer() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_cf_dispatch_function_pointer ( ) const
inline

The VA where Control Flow Guard dispatch-function pointer is stored.

◆ guard_cf_dispatch_function_pointer() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_cf_dispatch_function_pointer ( uint64_t dispatch_pointer)
inline

References LoadConfiguration().

◆ guard_cf_flags_list()

std::vector< IMAGE_GUARD > LIEF::PE::LoadConfiguration::guard_cf_flags_list ( ) const

List of flags.

◆ guard_cf_function_count() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_cf_function_count ( ) const
inline

The count of unique RVAs in the guard_cf_function_table() table.

Referenced by guard_cf_function_count().

◆ guard_cf_function_count() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_cf_function_count ( uint64_t guard_cf_function_count)
inline

◆ guard_cf_function_table() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_cf_function_table ( ) const
inline

The VA of the sorted table of RVAs of each Control Flow Guard function in the image.

Referenced by guard_cf_function_table().

◆ guard_cf_function_table() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_cf_function_table ( uint64_t guard_cf_function_table)
inline

◆ guard_cf_functions() [1/2]

it_guard_functions LIEF::PE::LoadConfiguration::guard_cf_functions ( )
inline

◆ guard_cf_functions() [2/2]

it_const_guard_functions LIEF::PE::LoadConfiguration::guard_cf_functions ( ) const
inline

Iterator over the Control Flow Guard functions referenced by guard_cf_function_table().

◆ guard_eh_continuation_count() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_eh_continuation_count ( ) const
inline

◆ guard_eh_continuation_count() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_eh_continuation_count ( uint64_t value)
inline

References LoadConfiguration().

◆ guard_eh_continuation_functions() [1/2]

it_guard_functions LIEF::PE::LoadConfiguration::guard_eh_continuation_functions ( )
inline

◆ guard_eh_continuation_functions() [2/2]

it_const_guard_functions LIEF::PE::LoadConfiguration::guard_eh_continuation_functions ( ) const
inline

◆ guard_eh_continuation_table() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_eh_continuation_table ( ) const
inline

◆ guard_eh_continuation_table() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_eh_continuation_table ( uint64_t value)
inline

References LoadConfiguration().

◆ guard_flags() [1/3]

optional< uint32_t > LIEF::PE::LoadConfiguration::guard_flags ( ) const
inline

Control Flow Guard related flags.

◆ guard_flags() [2/3]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_flags ( IMAGE_GUARD flags)
inline

References LoadConfiguration().

◆ guard_flags() [3/3]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_flags ( uint32_t flags)
inline

References LoadConfiguration().

◆ guard_long_jump_target_count() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_long_jump_target_count ( ) const
inline

The count of unique RVAs in the table pointed by guard_long_jump_target_table.

◆ guard_long_jump_target_count() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_long_jump_target_count ( uint64_t value)
inline

References LoadConfiguration().

◆ guard_long_jump_target_table() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_long_jump_target_table ( ) const
inline

The VA where Control Flow Guard long jump target table is stored.

◆ guard_long_jump_target_table() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_long_jump_target_table ( uint64_t value)
inline

References LoadConfiguration().

◆ guard_long_jump_targets() [1/2]

it_guard_functions LIEF::PE::LoadConfiguration::guard_long_jump_targets ( )
inline

◆ guard_long_jump_targets() [2/2]

it_const_guard_functions LIEF::PE::LoadConfiguration::guard_long_jump_targets ( ) const
inline

List of RVA pointed by guard_address_taken_iat_entry_table().

◆ guard_memcpy_function_pointer() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_memcpy_function_pointer ( ) const
inline

◆ guard_memcpy_function_pointer() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_memcpy_function_pointer ( uint64_t value)
inline

References LoadConfiguration().

◆ guard_rf_failure_routine() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_rf_failure_routine ( ) const
inline

VA of the failure routine.

◆ guard_rf_failure_routine() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_rf_failure_routine ( uint64_t value)
inline

References LoadConfiguration().

◆ guard_rf_failure_routine_function_pointer() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_rf_failure_routine_function_pointer ( ) const
inline

VA of the failure routine fptr.

◆ guard_rf_failure_routine_function_pointer() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_rf_failure_routine_function_pointer ( uint64_t value)
inline

References LoadConfiguration().

◆ guard_rf_verify_stackpointer_function_pointer() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_rf_verify_stackpointer_function_pointer ( ) const
inline

VA of the Function verifying the stack pointer.

◆ guard_rf_verify_stackpointer_function_pointer() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_rf_verify_stackpointer_function_pointer ( uint64_t value)
inline

References LoadConfiguration().

◆ guard_xfg_check_function_pointer() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_xfg_check_function_pointer ( ) const
inline

◆ guard_xfg_check_function_pointer() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_xfg_check_function_pointer ( uint64_t value)
inline

References LoadConfiguration().

◆ guard_xfg_dispatch_function_pointer() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_xfg_dispatch_function_pointer ( ) const
inline

◆ guard_xfg_dispatch_function_pointer() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_xfg_dispatch_function_pointer ( uint64_t value)
inline

References LoadConfiguration().

◆ guard_xfg_table_dispatch_function_pointer() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::guard_xfg_table_dispatch_function_pointer ( ) const
inline

◆ guard_xfg_table_dispatch_function_pointer() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::guard_xfg_table_dispatch_function_pointer ( uint64_t value)
inline

References LoadConfiguration().

◆ has()

bool LIEF::PE::LoadConfiguration::has ( IMAGE_GUARD flag) const
inline

Check if the given flag is present.

◆ hotpatch_table_offset() [1/2]

optional< uint32_t > LIEF::PE::LoadConfiguration::hotpatch_table_offset ( ) const
inline

Offset to the hotpatch table.

◆ hotpatch_table_offset() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::hotpatch_table_offset ( uint32_t value)
inline

References LoadConfiguration().

◆ hybrid_metadata_pointer() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::hybrid_metadata_pointer ( ) const
inline

◆ hybrid_metadata_pointer() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::hybrid_metadata_pointer ( uint64_t value)
inline

References LoadConfiguration().

◆ lock_prefix_table() [1/2]

uint64_t LIEF::PE::LoadConfiguration::lock_prefix_table ( ) const
inline

The VA of a list of addresses where the LOCK prefix is used. These will be replaced by NOP on single-processor systems. This member is available only for x86.

Referenced by lock_prefix_table().

◆ lock_prefix_table() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::lock_prefix_table ( uint64_t lock_prefix_table)
inline

◆ major_version() [1/2]

uint16_t LIEF::PE::LoadConfiguration::major_version ( ) const
inline

Major version.

Referenced by major_version().

◆ major_version() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::major_version ( uint16_t major_version)
inline

◆ maximum_allocation_size() [1/2]

uint64_t LIEF::PE::LoadConfiguration::maximum_allocation_size ( ) const
inline

The maximum allocation size, in bytes. This member is obsolete and is used only for debugging purposes.

Referenced by maximum_allocation_size().

◆ maximum_allocation_size() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::maximum_allocation_size ( uint64_t maximum_allocation_size)
inline

◆ minor_version() [1/2]

uint16_t LIEF::PE::LoadConfiguration::minor_version ( ) const
inline

Minor version.

Referenced by minor_version().

◆ minor_version() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::minor_version ( uint16_t minor_version)
inline

◆ operator=() [1/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::operator= ( const LoadConfiguration & )

References LoadConfiguration().

◆ operator=() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::operator= ( LoadConfiguration && )

References LoadConfiguration().

◆ parse()

template<class PE_T>
std::unique_ptr< LoadConfiguration > LIEF::PE::LoadConfiguration::parse ( Parser & ctx,
BinaryStream & stream )
static

References Parser.

◆ process_affinity_mask() [1/2]

uint64_t LIEF::PE::LoadConfiguration::process_affinity_mask ( ) const
inline

The process affinity mask. For more information, see GetProcessAffinityMask. This member is available only for .exe files.

Referenced by process_affinity_mask().

◆ process_affinity_mask() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::process_affinity_mask ( uint64_t process_affinity_mask)
inline

◆ process_heap_flags() [1/2]

uint32_t LIEF::PE::LoadConfiguration::process_heap_flags ( ) const
inline

The process heap flags. For more information, see HeapCreate.

◆ process_heap_flags() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::process_heap_flags ( uint32_t process_heap_flagsid)
inline

References LoadConfiguration().

◆ reserved1() [1/2]

uint16_t LIEF::PE::LoadConfiguration::reserved1 ( ) const
inline

◆ reserved1() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::reserved1 ( uint16_t reserved1)
inline

References LoadConfiguration(), and reserved1().

◆ reserved2() [1/2]

optional< uint16_t > LIEF::PE::LoadConfiguration::reserved2 ( ) const
inline

Must be zero.

◆ reserved2() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::reserved2 ( uint16_t value)
inline

References LoadConfiguration().

◆ reserved3() [1/2]

optional< uint32_t > LIEF::PE::LoadConfiguration::reserved3 ( ) const
inline

◆ reserved3() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::reserved3 ( uint32_t value)
inline

References LoadConfiguration().

◆ se_handler_count() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::se_handler_count ( ) const
inline

The count of unique handlers in the table. This member is available only for x86.

Referenced by se_handler_count().

◆ se_handler_count() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::se_handler_count ( uint64_t se_handler_count)
inline

◆ se_handler_table() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::se_handler_table ( ) const
inline

The VA of the sorted table of RVAs of each valid, unique handler in the image. This member is available only for x86.

Referenced by se_handler_table().

◆ se_handler_table() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::se_handler_table ( uint64_t se_handler_table)
inline

◆ security_cookie() [1/2]

uint64_t LIEF::PE::LoadConfiguration::security_cookie ( ) const
inline

A pointer to a cookie that is used by Visual C++ or GS implementation.

Referenced by security_cookie().

◆ security_cookie() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::security_cookie ( uint64_t security_cookie)
inline

◆ seh_functions()

const std::vector< uint32_t > & LIEF::PE::LoadConfiguration::seh_functions ( ) const
inline

Return the list of the function RVA in the SEH table (if any).

◆ size() [1/2]

uint32_t LIEF::PE::LoadConfiguration::size ( ) const
inline

Size of the current structure.

◆ size() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::size ( uint32_t value)
inline

◆ timedatestamp() [1/2]

uint32_t LIEF::PE::LoadConfiguration::timedatestamp ( ) const
inline

The date and time stamp value.

Referenced by timedatestamp().

◆ timedatestamp() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::timedatestamp ( uint32_t timedatestamp)
inline

◆ to_string()

std::string LIEF::PE::LoadConfiguration::to_string ( ) const

References LIEF_API.

Referenced by operator<<.

◆ uma_function_pointers() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::uma_function_pointers ( ) const
inline

◆ uma_function_pointers() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::uma_function_pointers ( uint64_t value)
inline

References LoadConfiguration().

◆ virtual_memory_threshold() [1/2]

uint64_t LIEF::PE::LoadConfiguration::virtual_memory_threshold ( ) const
inline

The maximum block size that can be allocated from heap segments, in bytes.

Referenced by virtual_memory_threshold().

◆ virtual_memory_threshold() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::virtual_memory_threshold ( uint64_t virtual_memory_threshold)
inline

◆ volatile_metadata() [1/2]

VolatileMetadata * LIEF::PE::LoadConfiguration::volatile_metadata ( )
inline

◆ volatile_metadata() [2/2]

const VolatileMetadata * LIEF::PE::LoadConfiguration::volatile_metadata ( ) const
inline

◆ volatile_metadata_pointer() [1/2]

optional< uint64_t > LIEF::PE::LoadConfiguration::volatile_metadata_pointer ( ) const
inline

◆ volatile_metadata_pointer() [2/2]

LoadConfiguration & LIEF::PE::LoadConfiguration::volatile_metadata_pointer ( uint64_t value)
inline

References LoadConfiguration().


The documentation for this class was generated from the following file: