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

#include <ChainedPointerAnalysis.hpp>

Classes

struct  dyld_chained_ptr_32_bind_t
 
struct  dyld_chained_ptr_32_cache_rebase_t
 
struct  dyld_chained_ptr_32_firmware_rebase_t
 
struct  dyld_chained_ptr_32_rebase_t
 
struct  dyld_chained_ptr_64_bind_t
 
struct  dyld_chained_ptr_64_kernel_cache_rebase_t
 
struct  dyld_chained_ptr_64_rebase_t
 
struct  dyld_chained_ptr_arm64e_auth_bind24_t
 
struct  dyld_chained_ptr_arm64e_auth_bind_t
 
struct  dyld_chained_ptr_arm64e_auth_rebase_t
 
struct  dyld_chained_ptr_arm64e_bind24_t
 
struct  dyld_chained_ptr_arm64e_bind_t
 
struct  dyld_chained_ptr_arm64e_rebase_t
 
struct  union_pointer_t
 

Public Types

enum class  PTR_TYPE {
  UNKNOWN = 0 , DYLD_CHAINED_PTR_ARM64E_REBASE , DYLD_CHAINED_PTR_ARM64E_BIND , DYLD_CHAINED_PTR_ARM64E_AUTH_REBASE ,
  DYLD_CHAINED_PTR_ARM64E_AUTH_BIND , DYLD_CHAINED_PTR_64_REBASE , DYLD_CHAINED_PTR_ARM64E_BIND24 , DYLD_CHAINED_PTR_ARM64E_AUTH_BIND24 ,
  DYLD_CHAINED_PTR_64_BIND , DYLD_CHAINED_PTR_64_KERNEL_CACHE_REBASE , DYLD_CHAINED_PTR_32_REBASE , DYLD_CHAINED_PTR_32_BIND ,
  DYLD_CHAINED_PTR_32_CACHE_REBASE , DYLD_CHAINED_PTR_32_FIRMWARE_REBASE
}
 

Public Member Functions

 ChainedPointerAnalysis (uint64_t value, size_t size)
 
 ChainedPointerAnalysis (const ChainedPointerAnalysis &)=default
 
ChainedPointerAnalysisoperator= (const ChainedPointerAnalysis &)=default
 
 ChainedPointerAnalysis (ChainedPointerAnalysis &&) noexcept=default
 
ChainedPointerAnalysisoperator= (ChainedPointerAnalysis &&) noexcept=default
 
 ~ChainedPointerAnalysis ()=default
 
uint64_t value () const
 
size_t size () const
 
const dyld_chained_ptr_arm64e_rebase_t dyld_chained_ptr_arm64e_rebase () const
 
const dyld_chained_ptr_arm64e_bind_tdyld_chained_ptr_arm64e_bind () const
 
const dyld_chained_ptr_arm64e_auth_rebase_t dyld_chained_ptr_arm64e_auth_rebase () const
 
const dyld_chained_ptr_arm64e_auth_bind_t dyld_chained_ptr_arm64e_auth_bind () const
 
const dyld_chained_ptr_64_rebase_t dyld_chained_ptr_64_rebase () const
 
const dyld_chained_ptr_arm64e_bind24_t dyld_chained_ptr_arm64e_bind24 () const
 
const dyld_chained_ptr_arm64e_auth_bind24_t dyld_chained_ptr_arm64e_auth_bind24 () const
 
const dyld_chained_ptr_64_bind_t dyld_chained_ptr_64_bind () const
 
const dyld_chained_ptr_64_kernel_cache_rebase_t dyld_chained_ptr_64_kernel_cache_rebase () const
 
const dyld_chained_ptr_32_rebase_t dyld_chained_ptr_32_rebase () const
 
const dyld_chained_ptr_32_bind_t dyld_chained_ptr_32_bind () const
 
const dyld_chained_ptr_32_cache_rebase_t dyld_chained_ptr_32_cache_rebase () const
 
const dyld_chained_ptr_32_firmware_rebase_t dyld_chained_ptr_32_firmware_rebase () const
 
union_pointer_t get_as (DYLD_CHAINED_PTR_FORMAT fmt) const
 

Static Public Member Functions

static std::unique_ptr< ChainedPointerAnalysisfrom_value (uint64_t value, size_t size)
 
static size_t stride (DYLD_CHAINED_PTR_FORMAT fmt)
 
static size_t ptr_size (DYLD_CHAINED_PTR_FORMAT fmt)
 
static uint64_t walk_chain (BinaryStream &stream, DYLD_CHAINED_PTR_FORMAT format, const std::function< int(uint64_t, const union_pointer_t &ptr)> &callback)
 

Member Enumeration Documentation

◆ PTR_TYPE

Enumerator
UNKNOWN 
DYLD_CHAINED_PTR_ARM64E_REBASE 
DYLD_CHAINED_PTR_ARM64E_BIND 
DYLD_CHAINED_PTR_ARM64E_AUTH_REBASE 
DYLD_CHAINED_PTR_ARM64E_AUTH_BIND 
DYLD_CHAINED_PTR_64_REBASE 
DYLD_CHAINED_PTR_ARM64E_BIND24 
DYLD_CHAINED_PTR_ARM64E_AUTH_BIND24 
DYLD_CHAINED_PTR_64_BIND 
DYLD_CHAINED_PTR_64_KERNEL_CACHE_REBASE 
DYLD_CHAINED_PTR_32_REBASE 
DYLD_CHAINED_PTR_32_BIND 
DYLD_CHAINED_PTR_32_CACHE_REBASE 
DYLD_CHAINED_PTR_32_FIRMWARE_REBASE 

Constructor & Destructor Documentation

◆ ChainedPointerAnalysis() [1/3]

LIEF::MachO::ChainedPointerAnalysis::ChainedPointerAnalysis ( uint64_t value,
size_t size )
inline

◆ ChainedPointerAnalysis() [2/3]

LIEF::MachO::ChainedPointerAnalysis::ChainedPointerAnalysis ( const ChainedPointerAnalysis & )
default

◆ ChainedPointerAnalysis() [3/3]

LIEF::MachO::ChainedPointerAnalysis::ChainedPointerAnalysis ( ChainedPointerAnalysis && )
defaultnoexcept

◆ ~ChainedPointerAnalysis()

LIEF::MachO::ChainedPointerAnalysis::~ChainedPointerAnalysis ( )
default

Member Function Documentation

◆ dyld_chained_ptr_32_bind()

const dyld_chained_ptr_32_bind_t LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_32_bind ( ) const
inline

◆ dyld_chained_ptr_32_cache_rebase()

const dyld_chained_ptr_32_cache_rebase_t LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_32_cache_rebase ( ) const
inline

◆ dyld_chained_ptr_32_firmware_rebase()

const dyld_chained_ptr_32_firmware_rebase_t LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_32_firmware_rebase ( ) const
inline

◆ dyld_chained_ptr_32_rebase()

const dyld_chained_ptr_32_rebase_t LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_32_rebase ( ) const
inline

◆ dyld_chained_ptr_64_bind()

const dyld_chained_ptr_64_bind_t LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_64_bind ( ) const
inline

◆ dyld_chained_ptr_64_kernel_cache_rebase()

const dyld_chained_ptr_64_kernel_cache_rebase_t LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_64_kernel_cache_rebase ( ) const
inline

◆ dyld_chained_ptr_64_rebase()

const dyld_chained_ptr_64_rebase_t LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_64_rebase ( ) const
inline

◆ dyld_chained_ptr_arm64e_auth_bind()

const dyld_chained_ptr_arm64e_auth_bind_t LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind ( ) const
inline

◆ dyld_chained_ptr_arm64e_auth_bind24()

const dyld_chained_ptr_arm64e_auth_bind24_t LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind24 ( ) const
inline

◆ dyld_chained_ptr_arm64e_auth_rebase()

const dyld_chained_ptr_arm64e_auth_rebase_t LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_rebase ( ) const
inline

◆ dyld_chained_ptr_arm64e_bind()

const dyld_chained_ptr_arm64e_bind_t & LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind ( ) const
inline

◆ dyld_chained_ptr_arm64e_bind24()

const dyld_chained_ptr_arm64e_bind24_t LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind24 ( ) const
inline

◆ dyld_chained_ptr_arm64e_rebase()

const dyld_chained_ptr_arm64e_rebase_t LIEF::MachO::ChainedPointerAnalysis::dyld_chained_ptr_arm64e_rebase ( ) const
inline

◆ from_value()

static std::unique_ptr< ChainedPointerAnalysis > LIEF::MachO::ChainedPointerAnalysis::from_value ( uint64_t value,
size_t size )
inlinestatic

◆ get_as()

union_pointer_t LIEF::MachO::ChainedPointerAnalysis::get_as ( DYLD_CHAINED_PTR_FORMAT fmt) const

◆ operator=() [1/2]

ChainedPointerAnalysis & LIEF::MachO::ChainedPointerAnalysis::operator= ( ChainedPointerAnalysis && )
defaultnoexcept

◆ operator=() [2/2]

ChainedPointerAnalysis & LIEF::MachO::ChainedPointerAnalysis::operator= ( const ChainedPointerAnalysis & )
default

◆ ptr_size()

static size_t LIEF::MachO::ChainedPointerAnalysis::ptr_size ( DYLD_CHAINED_PTR_FORMAT fmt)
inlinestatic

◆ size()

size_t LIEF::MachO::ChainedPointerAnalysis::size ( ) const
inline

◆ stride()

static size_t LIEF::MachO::ChainedPointerAnalysis::stride ( DYLD_CHAINED_PTR_FORMAT fmt)
inlinestatic

◆ value()

uint64_t LIEF::MachO::ChainedPointerAnalysis::value ( ) const
inline

◆ walk_chain()

static uint64_t LIEF::MachO::ChainedPointerAnalysis::walk_chain ( BinaryStream & stream,
DYLD_CHAINED_PTR_FORMAT format,
const std::function< int(uint64_t, const union_pointer_t &ptr)> & callback )
static

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