LIEF: Library to Instrument Executable Formats Version 0.17.0
|
This class represents ARM64-specific metadata used in CHPE (Compatible Hybrid PE) binaries, particularly for hybrid architectures like ARM64EC and ARM64X. More...
#include <MetadataARM64.hpp>
Classes | |
struct | range_entry_t |
Structure that describes architecture-specific ranges. More... | |
struct | redirection_entry_t |
Structure that describes a redirection. More... | |
struct | code_range_entry_point_t |
Mirror of IMAGE_ARM64EC_CODE_RANGE_ENTRY_POINT: Represents a mapping between code range and its entry point. More... |
Public Types | |
using | range_entries_t = std::vector<range_entry_t> |
using | it_range_entries = ref_iterator<range_entries_t&> |
using | it_const_range_entries = const_ref_iterator<const range_entries_t&> |
using | redirection_entries_t = std::vector<redirection_entry_t> |
using | it_redirection_entries = ref_iterator<redirection_entries_t&> |
using | it_const_redirection_entries = const_ref_iterator<const redirection_entries_t&> |
using | code_range_entry_point_entries = std::vector<code_range_entry_point_t> |
using | it_code_range_entry_point = ref_iterator<code_range_entry_point_entries&> |
using | it_const_code_range_entry_point = const_ref_iterator<const code_range_entry_point_entries&> |
Public Types inherited from LIEF::PE::CHPEMetadata | |
enum class | KIND { UNKNOWN = 0 , ARM64 , X86 } |
Discriminator for the subclasses. More... |
Static Public Member Functions | |
static std::unique_ptr< CHPEMetadataARM64 > | parse (Parser &ctx, BinaryStream &stream, uint32_t version) |
static ok_error_t | parse_code_map (Parser &ctx, CHPEMetadataARM64 &metadata) |
static ok_error_t | parse_redirections (Parser &ctx, CHPEMetadataARM64 &metadata) |
static ok_error_t | parse_code_ranges_to_entry_points (Parser &ctx, CHPEMetadataARM64 &metadata) |
static bool | classof (const CHPEMetadata *meta) |
Static Public Member Functions inherited from LIEF::PE::CHPEMetadata | |
static std::unique_ptr< CHPEMetadata > | parse (Parser &ctx, BinaryStream &stream) |
This class represents ARM64-specific metadata used in CHPE (Compatible Hybrid PE) binaries, particularly for hybrid architectures like ARM64EC and ARM64X.
It extends the CHPEMetadata base class and provides access to metadata describing code ranges, redirections, entry points, and other hybrid-specific information relevant for binary analysis or instrumentation.
using LIEF::PE::CHPEMetadataARM64::code_range_entry_point_entries = std::vector<code_range_entry_point_t> |
using LIEF::PE::CHPEMetadataARM64::it_code_range_entry_point = ref_iterator<code_range_entry_point_entries&> |
using LIEF::PE::CHPEMetadataARM64::it_const_code_range_entry_point = const_ref_iterator<const code_range_entry_point_entries&> |
using LIEF::PE::CHPEMetadataARM64::it_const_range_entries = const_ref_iterator<const range_entries_t&> |
using LIEF::PE::CHPEMetadataARM64::it_const_redirection_entries = const_ref_iterator<const redirection_entries_t&> |
using LIEF::PE::CHPEMetadataARM64::range_entries_t = std::vector<range_entry_t> |
using LIEF::PE::CHPEMetadataARM64::redirection_entries_t = std::vector<redirection_entry_t> |
|
inline |
References LIEF::PE::CHPEMetadata::ARM64, LIEF::PE::CHPEMetadata::CHPEMetadata(), and LIEF::PE::CHPEMetadata::version().
Referenced by alternate_entry_point(), auxiliary_delay_import(), auxiliary_delay_import_copy(), auxiliary_iat(), auxiliary_iat_copy(), bitfield_info(), CHPEMetadataARM64(), CHPEMetadataARM64(), clone(), code_map(), code_map_count(), code_ranges_to_entry_points_count(), code_ranges_to_entrypoints(), extra_rfe_table(), extra_rfe_table_size(), get_x64_information_function_pointer(), operator=(), operator=(), os_arm64x_dispatch_call(), os_arm64x_dispatch_call_no_redirect(), os_arm64x_dispatch_fptr(), os_arm64x_dispatch_icall(), os_arm64x_dispatch_icall_cfg(), os_arm64x_dispatch_ret(), parse_code_map(), parse_code_ranges_to_entry_points(), parse_redirections(), redirection_metadata(), redirection_metadata_count(), and set_x64_information_function_pointer().
|
default |
References CHPEMetadataARM64().
|
default |
References CHPEMetadataARM64().
|
overridedefault |
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inlinestatic |
|
inlineoverridevirtual |
Reimplemented from LIEF::PE::CHPEMetadata.
References CHPEMetadataARM64().
|
inline |
RVA to the array that describes architecture-specific ranges.
|
inline |
References CHPEMetadataARM64().
|
inline |
Number of entries in the code map.
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
RVA to this architecture-specific exception table.
|
inline |
References CHPEMetadataARM64().
|
inline |
architecture-specific exception table size
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
default |
References CHPEMetadataARM64().
|
default |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
static |
References LIEF::PE::CHPEMetadata::version().
|
static |
References CHPEMetadataARM64().
|
static |
References CHPEMetadataARM64().
|
static |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
References CHPEMetadataARM64().
|
inline |
|
inline |
|
inline |
|
inline |
References CHPEMetadataARM64().
|
overridevirtual |
Reimplemented from LIEF::PE::CHPEMetadata.