LIEF: Library to Instrument Executable Formats Version 0.17.0
|
Class that provides an interface over a binding operation. More...
#include <BindingInfo.hpp>
Public Types | |
enum class | TYPES { UNKNOWN = 0 , DYLD_INFO , CHAINED , CHAINED_LIST , INDIRECT_SYMBOL } |
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 ()=default | |
BindingInfo (const BindingInfo &other) | |
void | swap (BindingInfo &other) noexcept |
bool | has_segment () const |
Check if a MachO::SegmentCommand is associated with this binding. | |
const SegmentCommand * | segment () const |
The MachO::SegmentCommand associated with the BindingInfo or a nullptr of it is not bind to a SegmentCommand. | |
SegmentCommand * | segment () |
bool | has_library () const |
Check if a MachO::DylibCommand is tied with the BindingInfo. | |
const DylibCommand * | library () const |
MachO::DylibCommand associated with the BindingInfo or a nullptr if not present. | |
DylibCommand * | library () |
bool | has_symbol () const |
Check if a MachO::Symbol is associated with the BindingInfo. | |
const Symbol * | symbol () const |
MachO::Symbol associated with the BindingInfo or a nullptr if not present. | |
Symbol * | symbol () |
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) | |
~BindingInfo () override=default | |
void | accept (Visitor &visitor) const override |
template<class T > | |
const T * | cast () const |
template<class T > | |
T * | cast () |
Public Member Functions inherited from LIEF::Object | |
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 () |
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
|
strong |
|
default |
LIEF::MachO::BindingInfo::BindingInfo | ( | const BindingInfo & | other | ) |
|
overridedefault |
|
overridevirtual |
Implements LIEF::Object.
Reimplemented in LIEF::MachO::ChainedBindingInfo, and LIEF::MachO::DyldBindingInfo.
|
inline |
Value added to the segment's virtual address when bound.
|
inline |
|
inlinevirtual |
Address of the binding.
Reimplemented in LIEF::MachO::ChainedBindingInfo.
|
inlinevirtual |
Reimplemented in LIEF::MachO::ChainedBindingInfo.
|
inline |
|
inline |
|
inline |
Check if a MachO::DylibCommand is tied with the BindingInfo.
|
inline |
Check if a MachO::SegmentCommand is associated with this binding.
|
inline |
Check if a MachO::Symbol is associated with the BindingInfo.
|
inline |
|
inline |
|
inline |
MachO::DylibCommand associated with the BindingInfo or a nullptr if not present.
|
inline |
|
inline |
|
inline |
|
inline |
The MachO::SegmentCommand associated with the BindingInfo or a nullptr of it is not bind to a SegmentCommand.
|
inline |
|
noexcept |
|
inline |
|
inline |
MachO::Symbol associated with the BindingInfo or a nullptr if not present.
|
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, LIEF::MachO::DyldBindingInfo, and LIEF::MachO::IndirectBindingInfo.