LIEF: Library to Instrument Executable Formats Version 0.15.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
LIEF::MachO::BindingInfo Class Referenceabstract

Class that provides an interface over a binding operation. More...

#include <BindingInfo.hpp>

Inheritance diagram for LIEF::MachO::BindingInfo:
Inheritance graph
[legend]
Collaboration diagram for LIEF::MachO::BindingInfo:
Collaboration graph
[legend]

Public Types

enum class  TYPES { UNKNOWN = 0 , DYLD_INFO , CHAINED , CHAINED_LIST }
 
- 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

 BindingInfo (const BindingInfo &other)
 
void swap (BindingInfo &other)
 
bool has_segment () const
 Check if a MachO::SegmentCommand is associated with this binding.
 
const SegmentCommandsegment () const
 The MachO::SegmentCommand associated with the BindingInfo or a nullptr of it is not bind to a SegmentCommand.
 
SegmentCommandsegment ()
 
bool has_library () const
 Check if a MachO::DylibCommand is tied with the BindingInfo.
 
const DylibCommandlibrary () const
 MachO::DylibCommand associated with the BindingInfo or a nullptr if not present.
 
DylibCommandlibrary ()
 
bool has_symbol () const
 Check if a MachO::Symbol is associated with the BindingInfo.
 
const Symbolsymbol () const
 MachO::Symbol associated with the BindingInfo or a nullptr if not present.
 
Symbolsymbol ()
 
virtual uint64_t address () const
 Address of the binding.
 
virtual void address (uint64_t addr)
 
int32_t library_ordinal () const
 
void library_ordinal (int32_t ordinal)
 
int64_t addend () const
 Value added to the segment's virtual address when bound.
 
void addend (int64_t addend)
 
bool is_weak_import () const
 
void set_weak_import (bool val=true)
 
virtual TYPES type () const =0
 The type of the binding. This type provides the origin of the binding (LC_DYLD_INFO or LC_DYLD_CHAINED_FIXUPS)
 
void accept (Visitor &visitor) const override
 
- Public Member Functions inherited from LIEF::Object
 Object (const Object &other)
 
Objectoperator= (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
 

Detailed Description

Class that provides an interface over a binding operation.

This class does not represent a structure that exists in the Mach-O format specifications but it provides a view of a binding operation that is performed by the Dyld binding bytecode (LC_DYLD_INFO) or the Dyld chained fixups (DYLD_CHAINED_FIXUPS)

See: LIEF::MachO::ChainedBindingInfo, LIEF::MachO::DyldBindingInfo

Member Enumeration Documentation

◆ TYPES

Enumerator
CHAINED 

Binding associated with the Dyld info opcodes.

CHAINED_LIST 

Binding associated with the chained fixups.

Member Function Documentation

◆ accept()

void LIEF::MachO::BindingInfo::accept ( Visitor & visitor) const
overridevirtual

Implements LIEF::Object.

◆ address()

virtual uint64_t LIEF::MachO::BindingInfo::address ( ) const
virtual

Address of the binding.

Reimplemented in LIEF::MachO::ChainedBindingInfo.

◆ type()

virtual TYPES LIEF::MachO::BindingInfo::type ( ) const
pure virtual

The type of the binding. This type provides the origin of the binding (LC_DYLD_INFO or LC_DYLD_CHAINED_FIXUPS)

Implemented in LIEF::MachO::ChainedBindingInfo, and LIEF::MachO::DyldBindingInfo.


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