LIEF: Library to Instrument Executable Formats Version 0.17.0
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
16#ifndef LIEF_PE_LOAD_CONFIGURATION_DYNAMIC_RELOCATION_FUNC_OVERRIDE_H
17#define LIEF_PE_LOAD_CONFIGURATION_DYNAMIC_RELOCATION_FUNC_OVERRIDE_H
37 struct image_bdd_dynamic_relocation_t {
44 struct image_bdd_info_t {
48 uint32_t original_size = 0;
49 uint32_t original_offset = 0;
50 std::vector<image_bdd_dynamic_relocation_t> relocations;
53 std::vector<uint8_t> payload;
58 using func_overriding_info_t = std::vector<std::unique_ptr<FunctionOverrideInfo>>;
59 using it_func_overriding_info = ref_iterator<func_overriding_info_t&, FunctionOverrideInfo*>;
60 using it_const_func_overriding_info = const_ref_iterator<const func_overriding_info_t&, const FunctionOverrideInfo*>;
62 using bdd_info_list_t = std::vector<image_bdd_info_t>;
63 using it_bdd_info = ref_iterator<bdd_info_list_t&>;
64 using it_const_bdd_info = const_ref_iterator<const bdd_info_list_t&>;
69 FunctionOverride&
operator=(
const FunctionOverride&);
74 std::unique_ptr<DynamicFixup>
clone()
const override {
75 return std::unique_ptr<FunctionOverride>(
new FunctionOverride(*
this));
80 return overriding_info_;
84 return overriding_info_;
98 image_bdd_info_t*
find_bdd_info(
const FunctionOverrideInfo& info);
103 return const_cast<FunctionOverride*
>(
this)->find_bdd_info(offset);
106 const image_bdd_info_t*
find_bdd_info(
const FunctionOverrideInfo& info)
const {
107 return const_cast<FunctionOverride*
>(
this)->find_bdd_info(info);
110 static bool classof(
const DynamicFixup* fixup) {
111 return fixup->
kind() == DynamicFixup::KIND::FUNCTION_OVERRIDE;
120 std::unique_ptr<FunctionOverride> parse(Parser& ctx, SpanStream& strm);
124 parse_override_info(Parser& ctx, SpanStream& strm, FunctionOverride& func);
128 parse_bdd_info(Parser& ctx, SpanStream& strm, FunctionOverride& func);
131 func_overriding_info_t overriding_info_;
132 std::vector<image_bdd_info_t> bdd_info_;
This is the base class for any fixups located in DynamicRelocation.
Definition DynamicFixup.hpp:34
KIND kind() const
Encoding of the fixups.
Definition DynamicFixup.hpp:73
Definition FunctionOverrideInfo.hpp:33
This class represents IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE
Definition FunctionOverride.hpp:35
it_const_func_overriding_info func_overriding_info() const
Definition FunctionOverride.hpp:83
~FunctionOverride() override
std::unique_ptr< DynamicFixup > clone() const override
Definition FunctionOverride.hpp:74
std::string to_string() const override
FunctionOverride(const FunctionOverride &)
it_func_overriding_info func_overriding_info()
Iterator over the overriding info.
Definition FunctionOverride.hpp:79
FunctionOverride & operator=(const FunctionOverride &)
image_bdd_info_t * find_bdd_info(const FunctionOverrideInfo &info)
Find the IMAGE_BDD_INFO associated with the given info.
it_const_bdd_info bdd_info() const
Definition FunctionOverride.hpp:92
static bool classof(const DynamicFixup *fixup)
Definition FunctionOverride.hpp:110
const image_bdd_info_t * find_bdd_info(const FunctionOverrideInfo &info) const
Definition FunctionOverride.hpp:106
FunctionOverride(FunctionOverride &&)
FunctionOverride & operator=(FunctionOverride &&)
it_bdd_info bdd_info()
Iterator over the BDD info.
Definition FunctionOverride.hpp:88
const image_bdd_info_t * find_bdd_info(uint32_t offset) const
Definition FunctionOverride.hpp:102
image_bdd_info_t * find_bdd_info(uint32_t offset)
Find the IMAGE_BDD_INFO at the given offset.
Main interface to parse PE binaries. In particular the static functions: Parser::parse should be used...
Definition PE/Parser.hpp:52
Definition SpanStream.hpp:32
Namespace related to the LIEF's PE module.
Definition Abstract/Header.hpp:32
LIEF namespace.
Definition Abstract/Binary.hpp:36
result< ok_t > ok_error_t
Opaque structure that is used by LIEF to avoid writing result<void> f(...). Instead,...
Definition errors.hpp:109
#define LIEF_API
Definition visibility.h:41
#define LIEF_LOCAL
Definition visibility.h:42