|
| | 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.