LIEF: Library to Instrument Executable Formats Version 0.17.0
|
Class which represents a Data Node in the PE resources tree. More...
#include <ResourceData.hpp>
Public Member Functions | |
ResourceData () | |
ResourceData (std::vector< uint8_t > content, uint32_t code_page=0) | |
ResourceData (const std::string &str, uint32_t code_page=0) | |
ResourceData (const ResourceData &other)=default | |
ResourceData & | operator= (const ResourceData &other)=default |
void | swap (ResourceData &other) noexcept |
~ResourceData () override=default | |
std::unique_ptr< ResourceNode > | clone () const override |
uint32_t | code_page () const |
Return the code page that is used to decode code point values within the resource data. Typically, the code page is the unicode code page. | |
span< const uint8_t > | content () const |
Resource content. | |
span< uint8_t > | content () |
uint32_t | reserved () const |
Reserved value. Should be 0 | |
uint32_t | offset () const |
Offset of the content within the resource. | |
void | code_page (uint32_t code_page) |
void | content (std::vector< uint8_t > content) |
void | content (const std::string &string) |
void | content (const uint8_t *buffer, size_t size) |
void | reserved (uint32_t value) |
void | accept (Visitor &visitor) const override |
![]() | |
ResourceNode (const ResourceNode &other) | |
ResourceNode & | operator= (const ResourceNode &other) |
ResourceNode (ResourceNode &&other)=default | |
ResourceNode & | operator= (ResourceNode &&other)=default |
void | swap (ResourceNode &other) |
~ResourceNode () override | |
uint32_t | id () const |
Integer that identifies the Type, Name, or Language ID of the entry depending on its depth in the tree. | |
const std::u16string & | name () const |
Name of the entry (if any) | |
std::string | utf8_name () const |
UTF-8 representation of the name() | |
it_childs | childs () |
Iterator on node's children. | |
it_const_childs | childs () const |
bool | has_name () const |
True if the entry uses a name as ID | |
uint32_t | depth () const |
Current depth of the Node in the resource tree. | |
bool | is_directory () const |
True if the current entry is a ResourceDirectory. | |
bool | is_data () const |
True if the current entry is a ResourceData. | |
void | id (uint32_t id) |
void | name (const std::string &name) |
void | name (std::u16string name) |
ResourceNode & | add_child (std::unique_ptr< ResourceNode > child) |
Add a new child to the current node, taking the ownership of the provided unique_ptr | |
ResourceNode & | add_child (const ResourceNode &child) |
Add a new child to the current node. | |
void | delete_child (uint32_t id) |
Delete the node with the given id | |
void | delete_child (const ResourceNode &node) |
Delete the given node from the node's children. | |
void | accept (Visitor &visitor) const override |
template<class T > | |
const T * | cast () const |
template<class T > | |
T * | cast () |
std::string | to_string () const |
void | push_child (std::unique_ptr< ResourceNode > node) |
![]() | |
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 () |
Static Public Member Functions | |
static bool | classof (const ResourceNode *node) |
![]() | |
static std::unique_ptr< ResourceNode > | parse (BinaryStream &stream, uint64_t rva) |
Parse the resource tree from the provided BinaryStream stream and with the original RVA provided in the second parameter. | |
static std::unique_ptr< ResourceNode > | parse (const uint8_t *buffer, size_t size, uint64_t rva) |
Parse the resource tree from the provided buffer referenced by a pointer and the size. The second parameter is the RVA where the resource is (or was) located. | |
static std::unique_ptr< ResourceNode > | parse (const std::vector< uint8_t > &buffer, uint64_t rva) |
See doc from other parse functions. | |
static std::unique_ptr< ResourceNode > | parse (span< const uint8_t > buffer, uint64_t rva) |
See doc from other parse functions. | |
static std::unique_ptr< ResourceNode > | parse (BinaryStream &stream, const Binary &bin) |
Additional Inherited Members | |
![]() | |
enum class | TYPE { UNKNOWN = 0 , DATA , DIRECTORY } |
Enum that identifies the type of a node in the resource tree. More... | |
using | childs_t = std::vector<std::unique_ptr<ResourceNode>> |
using | it_childs = ref_iterator<childs_t&, ResourceNode*> |
using | it_const_childs = const_ref_iterator<const childs_t&, ResourceNode*> |
![]() | |
template<class T > | |
using | output_t = add_pointer_t<decay_t<T>> |
template<class T > | |
using | output_const_t = add_pointer_t<add_const_t<decay_t<T>>> |
Class which represents a Data Node in the PE resources tree.
|
inline |
|
inline |
|
inline |
|
default |
|
overridedefault |
|
overridevirtual |
Implements LIEF::Object.
|
inlinestatic |
References LIEF::PE::ResourceNode::is_data().
|
inlineoverridevirtual |
Implements LIEF::PE::ResourceNode.
|
inline |
Return the code page that is used to decode code point values within the resource data. Typically, the code page is the unicode code page.
|
inline |
|
inline |
|
inline |
Resource content.
|
inline |
|
inline |
|
inline |
|
inline |
Offset of the content within the resource.
|
default |
|
inline |
Reserved value. Should be 0
|
inline |
|
noexcept |