|
LIEF: Library to Instrument Executable Formats Version 0.17.1
|
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) | |
| BindingInfo & | operator= (const BindingInfo &other) |
| BindingInfo (BindingInfo &&) noexcept=default | |
| BindingInfo & | operator= (BindingInfo &&) noexcept=default |
| 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) |
| Object (Object &&other) noexcept=default | |
| Object & | operator= (Object &&other) noexcept=default |
| 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 | ) |
References BindingInfo().
|
defaultnoexcept |
References BindingInfo().
|
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.
Referenced by addend(), and LIEF::MachO::DyldBindingInfo::DyldBindingInfo().
|
inline |
References addend().
|
inlinevirtual |
Address of the binding.
Reimplemented in LIEF::MachO::ChainedBindingInfo.
Referenced by LIEF::MachO::DyldBindingInfo::DyldBindingInfo(), and LIEF::MachO::IndirectBindingInfo::IndirectBindingInfo().
|
inlinevirtual |
Reimplemented in LIEF::MachO::ChainedBindingInfo.
|
inline |
References BindingInfo().
|
inline |
|
inline |
Check if a MachO::DylibCommand is tied with the BindingInfo.
|
inline |
Check if a MachO::SegmentCommand is associated with this binding.
References has_segment().
Referenced by has_segment().
|
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 |
|
defaultnoexcept |
References BindingInfo().
| BindingInfo & LIEF::MachO::BindingInfo::operator= | ( | const BindingInfo & | other | ) |
References BindingInfo().
|
inline |
|
inline |
The MachO::SegmentCommand associated with the BindingInfo or a nullptr of it is not bind to a SegmentCommand.
Referenced by LIEF::MachO::IndirectBindingInfo::IndirectBindingInfo().
|
inline |
|
noexcept |
References BindingInfo(), and swap().
Referenced by swap().
|
inline |
|
inline |
MachO::Symbol associated with the BindingInfo or a nullptr if not present.
Referenced by LIEF::MachO::IndirectBindingInfo::IndirectBindingInfo().
|
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.