|
| 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.
|
|
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 |
|
virtual void | type (uint8_t type) |
|
| Relocation () |
|
| Relocation (uint64_t address, uint8_t size) |
| Constructor from a relocation's address and size.
|
|
| ~Relocation () override |
|
Relocation & | operator= (const Relocation &) |
|
| Relocation (const Relocation &) |
|
void | swap (Relocation &other) |
|
virtual size_t | size () const |
| Relocation size in bits
|
|
virtual void | size (size_t size) |
|
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) |
|
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
.