16#ifndef LIEF_MACHO_BINDING_INFO_H
17#define LIEF_MACHO_BINDING_INFO_H
57 return segment_ !=
nullptr;
71 return library_ !=
nullptr;
85 return symbol_ !=
nullptr;
107 return library_ordinal_;
111 library_ordinal_ = ordinal;
124 return is_weak_import_;
128 is_weak_import_ = val;
143 Symbol* symbol_ =
nullptr;
144 int32_t library_ordinal_ = 0;
146 bool is_weak_import_ =
false;
148 uint64_t address_ = 0;
Class used to parse a single binary (i.e. non-FAT)
Definition BinaryParser.hpp:74
Class that provides an interface over a binding operation.
Definition BindingInfo.hpp:38
DylibCommand * library()
Definition BindingInfo.hpp:79
~BindingInfo() override=default
void accept(Visitor &visitor) const override
bool has_symbol() const
Check if a MachO::Symbol is associated with the BindingInfo.
Definition BindingInfo.hpp:84
Symbol * symbol()
Definition BindingInfo.hpp:93
bool has_segment() const
Check if a MachO::SegmentCommand is associated with this binding.
Definition BindingInfo.hpp:56
const SegmentCommand * segment() const
The MachO::SegmentCommand associated with the BindingInfo or a nullptr of it is not bind to a Segment...
Definition BindingInfo.hpp:62
int32_t library_ordinal() const
Definition BindingInfo.hpp:106
BindingInfo(const BindingInfo &other)
bool has_library() const
Check if a MachO::DylibCommand is tied with the BindingInfo.
Definition BindingInfo.hpp:70
virtual void address(uint64_t addr)
Definition BindingInfo.hpp:102
void set_weak_import(bool val=true)
Definition BindingInfo.hpp:127
friend std::ostream & operator<<(std::ostream &os, const BindingInfo &binding_info)
const Symbol * symbol() const
MachO::Symbol associated with the BindingInfo or a nullptr if not present.
Definition BindingInfo.hpp:90
TYPES
Definition BindingInfo.hpp:43
void library_ordinal(int32_t ordinal)
Definition BindingInfo.hpp:110
virtual TYPES type() const =0
The type of the binding. This type provides the origin of the binding (LC_DYLD_INFO or LC_DYLD_CHAINE...
virtual uint64_t address() const
Address of the binding.
Definition BindingInfo.hpp:98
void swap(BindingInfo &other) noexcept
bool is_weak_import() const
Definition BindingInfo.hpp:123
SegmentCommand * segment()
Definition BindingInfo.hpp:65
const DylibCommand * library() const
MachO::DylibCommand associated with the BindingInfo or a nullptr if not present.
Definition BindingInfo.hpp:76
void addend(int64_t addend)
Definition BindingInfo.hpp:119
int64_t addend() const
Value added to the segment's virtual address when bound.
Definition BindingInfo.hpp:115
Class which represents a library dependency.
Definition DylibCommand.hpp:34
Class which represents a LoadCommand::TYPE::SEGMENT / LoadCommand::TYPE::SEGMENT_64 command.
Definition SegmentCommand.hpp:48
Class that represents a Symbol in a Mach-O file.
Definition MachO/Symbol.hpp:47
Definition Visitor.hpp:224
LIEF namespace.
Definition Abstract/Binary.hpp:32
#define LIEF_API
Definition visibility.h:41