|
| RelocationFixup ()=delete |
| RelocationFixup (DYLD_CHAINED_PTR_FORMAT fmt, uint64_t imagebase) |
RelocationFixup & | operator= (const RelocationFixup &) |
| RelocationFixup (const RelocationFixup &) |
RelocationFixup & | operator= (RelocationFixup &&) noexcept=default |
| RelocationFixup (RelocationFixup &&) noexcept=default |
| ~RelocationFixup () override |
std::unique_ptr< Relocation > | clone () const override |
bool | is_pc_relative () const override |
| Not relevant for this kind of relocation.
|
ORIGIN | origin () const override |
| Origin of the relocation. For this concrete object, it should be Relocation::ORIGIN::CHAINED_FIXUPS.
|
DYLD_CHAINED_PTR_FORMAT | ptr_format () const |
uint64_t | target () const |
| The value that should be set at the address pointed by LIEF::Relocation::address if the imagebase chosen by the loader is LIEF::Binary::imagebase. Otherwise: target() - LIEF::Binary::imagebase() + new_imagebase.
|
void | target (uint64_t target) |
void | pc_relative (bool) override |
| Not relevant for this kind of relocation.
|
uint32_t | offset () const |
void | offset (uint32_t offset) |
uint64_t | address () const override |
| The address of this relocation is bound to its offset.
|
void | address (uint64_t address) override |
| Changing the address means changing the offset.
|
uint32_t | next () const |
| Return the (unscaled) next offset in the chain.
|
void | next (uint32_t value) |
| Change next offset of the current element.
|
void | accept (Visitor &visitor) const override |
std::ostream & | print (std::ostream &os) const override |
| Relocation ()=default |
| Relocation (uint64_t address, uint8_t type) |
Relocation & | operator= (const Relocation &other) |
| Relocation (const Relocation &other) |
void | swap (Relocation &other) noexcept |
| ~Relocation () override=default |
virtual uint8_t | type () const |
| Type of the relocation according to the Relocation::architecture and/or the Relocation::origin.
|
Header::CPU_TYPE | architecture () const |
| Achitecture targeted by this relocation.
|
bool | has_symbol () const |
| true if the relocation has a symbol associated with
|
Symbol * | symbol () |
| Symbol associated with the relocation, if any, otherwise a nullptr.
|
const Symbol * | symbol () const |
bool | has_section () const |
| true if the relocation has a section associated with
|
Section * | section () |
| Section associated with the relocation, if any, otherwise a nullptr.
|
const Section * | section () const |
bool | has_segment () const |
| true if the relocation has a SegmentCommand associated with
|
SegmentCommand * | segment () |
| SegmentCommand associated with the relocation, if any, otherwise a nullptr.
|
const SegmentCommand * | segment () const |
template<class T> |
const T * | cast () const |
template<class T> |
T * | cast () |
virtual void | type (uint8_t type) |
virtual size_t | size () const |
| Relocation size in bits.
|
virtual void | size (size_t size) |
| Relocation ()=default |
| Relocation (uint64_t address, uint8_t size) |
| Constructor from a relocation's address and size.
|
| ~Relocation () override=default |
Relocation & | operator= (const Relocation &)=default |
| Relocation (const Relocation &)=default |
void | swap (Relocation &other) |
virtual bool | operator< (const Relocation &rhs) const |
| Comparaison based on the Relocation's address.
|
virtual bool | operator<= (const Relocation &rhs) const |
| Comparaison based on the Relocation's address.
|
virtual bool | operator> (const Relocation &rhs) const |
| Comparaison based on the Relocation's address.
|
virtual bool | operator>= (const Relocation &rhs) const |
| Comparaison based on the Relocation's address.
|
| 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 represents a rebase relocation found in the LC_DYLD_CHAINED_FIXUPS command.
This class extends LIEF::Relocation in which LIEF::Relocation::address is set to the absolute virtual address where the relocation must take place (e.g. 0x10000d270).
On the other hand, RelocationFixup::target contains the value that should be set at LIEF::Relocation::address if the imagebase is LIEF::Binary::imagebase (e.g. 0x1000073a8).
If the Mach-O loader chooses another base address (like 0x7ff100000), it must set 0x10000d270 to 0x7ff1073a8.