16#ifndef LIEF_PE_LOAD_CONFIGURATION_DYNAMIC_RELOCATION_H
17#define LIEF_PE_LOAD_CONFIGURATION_DYNAMIC_RELOCATION_H
73 virtual std::unique_ptr<DynamicRelocation>
clone()
const = 0;
107 static_assert(std::is_base_of<DynamicRelocation, T>::value,
108 "Require DynamicRelocation inheritance");
109 if (T::classof(
this)) {
110 return static_cast<T*
>(
this);
130 uint32_t version_ = 0;
131 uint64_t symbol_ = 0;
132 std::unique_ptr<DynamicFixup> fixups_;
This is the base class for any fixups located in DynamicRelocation.
Definition DynamicFixup.hpp:34
DynamicRelocation & operator=(DynamicRelocation &&)
uint32_t version() const
Version of the structure.
Definition DynamicRelocationBase.hpp:76
friend std::ostream & operator<<(std::ostream &os, const DynamicRelocation &reloc)
Definition DynamicRelocationBase.hpp:121
DynamicRelocation & fixups(std::unique_ptr< DynamicFixup > F)
DynamicRelocation()=delete
DynamicRelocation & symbol(uint64_t value)
Definition DynamicRelocationBase.hpp:96
uint64_t symbol() const
Symbol address. Some values have a special meaning (c.f. IMAGE_DYNAMIC_RELOCATION) and define how fix...
Definition DynamicRelocationBase.hpp:82
virtual std::unique_ptr< DynamicRelocation > clone() const =0
DynamicRelocation(const DynamicRelocation &)
IMAGE_DYNAMIC_RELOCATION
Special symbol values as defined in link.exe - GetDVRTSpecialSymbolName.
Definition DynamicRelocationBase.hpp:36
@ RELOCATION_GUARD_INDIR_CONTROL_TRANSFER
Mirror IMAGE_DYNAMIC_RELOCATION_GUARD_INDIR_CONTROL_TRANSFER.
Definition DynamicRelocationBase.hpp:47
@ RELOCATION_GUARD_RF_PROLOGUE
Mirror IMAGE_DYNAMIC_RELOCATION_GUARD_RF_PROLOGUE.
Definition DynamicRelocationBase.hpp:38
@ RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER
Mirror IMAGE_DYNAMIC_RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER.
Definition DynamicRelocationBase.hpp:59
@ RELOCATION_FUNCTION_OVERRIDE
Mirror IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE.
Definition DynamicRelocationBase.hpp:56
@ RELOCATION_GUARD_SWITCHTABLE_BRANCH
Mirror IMAGE_DYNAMIC_RELOCATION_GUARD_SWITCHTABLE_BRANCH.
Definition DynamicRelocationBase.hpp:50
@ _RELOC_LAST_ENTRY
Definition DynamicRelocationBase.hpp:61
@ RELOCATION_ARM64X
Mirror IMAGE_DYNAMIC_RELOCATION_ARM64X.
Definition DynamicRelocationBase.hpp:53
@ RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER
Mirror IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER.
Definition DynamicRelocationBase.hpp:44
@ RELOCATION_GUARD_RF_EPILOGUE
Mirror IMAGE_DYNAMIC_RELOCATION_GUARD_RF_EPILOGUE.
Definition DynamicRelocationBase.hpp:41
T * as()
Definition DynamicRelocationBase.hpp:106
DynamicFixup * fixups()
Return fixups information, where the interpretation may depend on the symbol's value.
Definition DynamicRelocationBase.hpp:92
DynamicRelocation(uint32_t version)
DynamicRelocation & operator=(const DynamicRelocation &)
virtual ~DynamicRelocation()
virtual std::string to_string() const =0
DynamicRelocation(DynamicRelocation &&)
const T * as() const
Definition DynamicRelocationBase.hpp:116
const DynamicFixup * fixups() const
Definition DynamicRelocationBase.hpp:86
Namespace related to the LIEF's PE module.
Definition Abstract/Header.hpp:32
const char * to_string(CODE_PAGES e)
@ F
Definition AcceleratorCodes.hpp:83
@ T
Definition AcceleratorCodes.hpp:97
LIEF namespace.
Definition Abstract/Binary.hpp:40
#define LIEF_API
Definition visibility.h:41