LIEF: Library to Instrument Executable Formats Version 0.17.0
|
This class represents the load configuration data associated with the IMAGE_LOAD_CONFIG_DIRECTORY
.
More...
#include <LoadConfiguration.hpp>
Classes | |
struct | guard_function_t |
Public Member Functions | |
LoadConfiguration () | |
LoadConfiguration & | operator= (const LoadConfiguration &) |
LoadConfiguration (const LoadConfiguration &) | |
LoadConfiguration (LoadConfiguration &&) | |
LoadConfiguration & | operator= (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(). | |
uint32_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_GUARD > | guard_cf_flags_list () const |
List of flags. | |
const CodeIntegrity * | code_integrity () const |
Code integrity information. | |
CodeIntegrity * | code_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 CHPEMetadata * | chpe_metadata () const |
Compiled Hybrid Portable Executable (CHPE) metadata (if any) | |
CHPEMetadata * | chpe_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 EnclaveConfiguration * | enclave_config () const |
EnclaveConfiguration * | enclave_config () |
optional< uint64_t > | volatile_metadata_pointer () const |
const VolatileMetadata * | volatile_metadata () const |
VolatileMetadata * | volatile_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 |
LoadConfiguration & | characteristics (uint32_t characteristics) |
LoadConfiguration & | size (uint32_t value) |
LoadConfiguration & | timedatestamp (uint32_t timedatestamp) |
LoadConfiguration & | major_version (uint16_t major_version) |
LoadConfiguration & | minor_version (uint16_t minor_version) |
LoadConfiguration & | global_flags_clear (uint32_t global_flags_clear) |
LoadConfiguration & | global_flags_set (uint32_t global_flags_set) |
LoadConfiguration & | critical_section_default_timeout (uint32_t critical_section_default_timeout) |
LoadConfiguration & | decommit_free_block_threshold (uint64_t decommit_free_block_threshold) |
LoadConfiguration & | decommit_total_free_threshold (uint64_t decommit_total_free_threshold) |
LoadConfiguration & | lock_prefix_table (uint64_t lock_prefix_table) |
LoadConfiguration & | maximum_allocation_size (uint64_t maximum_allocation_size) |
LoadConfiguration & | virtual_memory_threshold (uint64_t virtual_memory_threshold) |
LoadConfiguration & | process_affinity_mask (uint64_t process_affinity_mask) |
LoadConfiguration & | process_heap_flags (uint32_t process_heap_flagsid) |
LoadConfiguration & | csd_version (uint16_t csd_version) |
LoadConfiguration & | reserved1 (uint16_t reserved1) |
LoadConfiguration & | dependent_load_flags (uint16_t flags) |
LoadConfiguration & | editlist (uint32_t editlist) |
LoadConfiguration & | security_cookie (uint64_t security_cookie) |
LoadConfiguration & | se_handler_table (uint64_t se_handler_table) |
LoadConfiguration & | se_handler_count (uint64_t se_handler_count) |
LoadConfiguration & | guard_cf_check_function_pointer (uint64_t check_pointer) |
LoadConfiguration & | guard_cf_dispatch_function_pointer (uint64_t dispatch_pointer) |
LoadConfiguration & | guard_cf_function_table (uint64_t guard_cf_function_table) |
LoadConfiguration & | guard_cf_function_count (uint64_t guard_cf_function_count) |
LoadConfiguration & | guard_flags (IMAGE_GUARD flags) |
LoadConfiguration & | guard_flags (uint32_t flags) |
LoadConfiguration & | code_integrity (CodeIntegrity CI) |
LoadConfiguration & | guard_address_taken_iat_entry_table (uint64_t value) |
LoadConfiguration & | guard_address_taken_iat_entry_count (uint64_t value) |
LoadConfiguration & | guard_long_jump_target_table (uint64_t value) |
LoadConfiguration & | guard_long_jump_target_count (uint64_t value) |
LoadConfiguration & | dynamic_value_reloc_table (uint64_t value) |
LoadConfiguration & | hybrid_metadata_pointer (uint64_t value) |
LoadConfiguration & | guard_rf_failure_routine (uint64_t value) |
LoadConfiguration & | guard_rf_failure_routine_function_pointer (uint64_t value) |
LoadConfiguration & | dynamic_value_reloctable_offset (uint32_t value) |
LoadConfiguration & | dynamic_value_reloctable_section (uint16_t value) |
LoadConfiguration & | reserved2 (uint16_t value) |
LoadConfiguration & | guard_rf_verify_stackpointer_function_pointer (uint64_t value) |
LoadConfiguration & | hotpatch_table_offset (uint32_t value) |
LoadConfiguration & | reserved3 (uint32_t value) |
LoadConfiguration & | enclave_configuration_ptr (uint64_t value) |
LoadConfiguration & | volatile_metadata_pointer (uint64_t value) |
LoadConfiguration & | guard_eh_continuation_table (uint64_t value) |
LoadConfiguration & | guard_eh_continuation_count (uint64_t value) |
LoadConfiguration & | guard_xfg_check_function_pointer (uint64_t value) |
LoadConfiguration & | guard_xfg_dispatch_function_pointer (uint64_t value) |
LoadConfiguration & | guard_xfg_table_dispatch_function_pointer (uint64_t value) |
LoadConfiguration & | cast_guard_os_determined_failure_mode (uint64_t value) |
LoadConfiguration & | guard_memcpy_function_pointer (uint64_t value) |
~LoadConfiguration () override | |
void | accept (Visitor &visitor) const override |
std::string | to_string () const |
![]() | |
Object () | |
Object (const Object &other) | |
Object & | operator= (const Object &other) |
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< LoadConfiguration > | parse (Parser &ctx, BinaryStream &stream) |
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.
using LIEF::PE::LoadConfiguration::dynamic_relocations_t = std::vector<std::unique_ptr<DynamicRelocation>> |
using LIEF::PE::LoadConfiguration::guard_functions_t = std::vector<guard_function_t> |
using LIEF::PE::LoadConfiguration::it_const_dynamic_relocations_t = const_ref_iterator<const dynamic_relocations_t&, const DynamicRelocation*> |
using LIEF::PE::LoadConfiguration::it_const_guard_functions = const_ref_iterator<const guard_functions_t&> |
using LIEF::PE::LoadConfiguration::it_dynamic_relocations_t = ref_iterator<dynamic_relocations_t&, DynamicRelocation*> |
|
strong |
LIEF::PE::LoadConfiguration::LoadConfiguration | ( | ) |
LIEF::PE::LoadConfiguration::LoadConfiguration | ( | const LoadConfiguration & | ) |
LIEF::PE::LoadConfiguration::LoadConfiguration | ( | LoadConfiguration && | ) |
|
override |
|
overridevirtual |
Implements LIEF::Object.
|
inline |
|
inline |
|
inline |
Characteristics of the structure which is defined by its size.
|
inline |
|
inline |
|
inline |
Compiled Hybrid Portable Executable (CHPE) metadata (if any)
|
inline |
VA to the extra Compiled Hybrid Portable Executable (CHPE) metadata.
|
inline |
|
inline |
Code integrity information.
|
inline |
|
inline |
The critical section default time-out value.
|
inline |
|
inline |
The service pack version.
|
inline |
|
inline |
The size of the minimum block that must be freed before it is freed (de-committed), in bytes. This value is advisory.
|
inline |
|
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.
|
inline |
|
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
.
|
inline |
|
inline |
Return an iterator over the Dynamic relocations (DVRT)
|
inline |
|
inline |
VA pointing to a IMAGE_DYNAMIC_RELOCATION_TABLE
|
inline |
|
inline |
Offset of dynamic relocation table relative to the relocation table.
|
inline |
|
inline |
The section index of the dynamic value relocation table.
|
inline |
|
inline |
Reserved for use by the system.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
The global flags that control system behavior. For more information, see Gflags.exe
.
|
inline |
|
inline |
The global flags that control system behavior. For more information, see Gflags.exe
.
|
inline |
|
inline |
|
inline |
List of RVA pointed by guard_address_taken_iat_entry_table()
|
inline |
The count of unique RVAs in the table pointed by guard_address_taken_iat_entry_table().
|
inline |
|
inline |
The VA where Control Flow Guard address taken IAT table is stored.
|
inline |
|
inline |
The VA where Control Flow Guard check-function pointer is stored.
|
inline |
|
inline |
The VA where Control Flow Guard dispatch-function pointer is stored.
|
inline |
std::vector< IMAGE_GUARD > LIEF::PE::LoadConfiguration::guard_cf_flags_list | ( | ) | const |
List of flags.
|
inline |
The count of unique RVAs in the guard_cf_function_table() table.
|
inline |
|
inline |
The VA of the sorted table of RVAs of each Control Flow Guard function in the image.
|
inline |
|
inline |
|
inline |
Iterator over the Control Flow Guard functions referenced by guard_cf_function_table()
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Control Flow Guard related flags.
|
inline |
|
inline |
|
inline |
The count of unique RVAs in the table pointed by guard_long_jump_target_table.
|
inline |
|
inline |
The VA where Control Flow Guard long jump target table is stored.
|
inline |
|
inline |
|
inline |
List of RVA pointed by guard_address_taken_iat_entry_table()
|
inline |
|
inline |
|
inline |
VA of the failure routine.
|
inline |
|
inline |
VA of the failure routine fptr
.
|
inline |
|
inline |
VA of the Function verifying the stack pointer.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Check if the given flag is present.
|
inline |
Offset to the hotpatch table.
|
inline |
|
inline |
Alias for chpe_metadata_pointer()
|
inline |
|
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.
|
inline |
|
inline |
Major version.
|
inline |
|
inline |
The maximum allocation size, in bytes. This member is obsolete and is used only for debugging purposes.
|
inline |
|
inline |
Minor version.
|
inline |
LoadConfiguration & LIEF::PE::LoadConfiguration::operator= | ( | const LoadConfiguration & | ) |
LoadConfiguration & LIEF::PE::LoadConfiguration::operator= | ( | LoadConfiguration && | ) |
|
static |
|
inline |
The process affinity mask. For more information, see GetProcessAffinityMask
. This member is available only for .exe
files.
|
inline |
|
inline |
The process heap flags. For more information, see HeapCreate
.
|
inline |
|
inline |
|
inline |
|
inline |
Must be zero.
|
inline |
|
inline |
|
inline |
|
inline |
The count of unique handlers in the table. This member is available only for x86.
|
inline |
|
inline |
The VA of the sorted table of RVAs of each valid, unique handler in the image. This member is available only for x86.
|
inline |
|
inline |
A pointer to a cookie that is used by Visual C++ or GS implementation.
|
inline |
|
inline |
Return the list of the function RVA in the SEH table (if any)
|
inline |
Size of the current structure.
|
inline |
|
inline |
The date and time stamp value.
|
inline |
std::string LIEF::PE::LoadConfiguration::to_string | ( | ) | const |
Referenced by operator<<.
|
inline |
The maximum block size that can be allocated from heap segments, in bytes.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |