LIEF: Library to Instrument Executable Formats Version 0.16.0
|
Class representing core auxv object. More...
#include <CoreAuxv.hpp>
Public Member Functions | |
CoreAuxv (ARCH arch, Header::CLASS cls, std::string name, uint32_t type, description_t description) | |
std::unique_ptr< Note > | clone () const override |
Clone the current note and keep its polymorphic type. | |
std::map< TYPE, uint64_t > | values () const |
A map of CoreAuxv::TYPE and the value. | |
result< uint64_t > | get (TYPE type) const |
Return the value associated with the provided TYPE or a lief_errors::not_found if the type is not present. | |
result< uint64_t > | operator[] (TYPE type) const |
bool | set (TYPE type, uint64_t value) |
bool | set (const std::map< TYPE, uint64_t > &values) |
void | dump (std::ostream &os) const override |
void | accept (Visitor &visitor) const override |
~CoreAuxv () override=default | |
Public Member Functions inherited from LIEF::ELF::Note | |
Note & | operator= (const Note ©)=default |
Note (const Note ©)=default | |
~Note () override=default | |
const std::string & | name () const |
Return the name of the note (also known as 'owner' ) | |
const std::string & | section_name () const |
Return the section name in which the note is or should be stored. | |
TYPE | type () const |
Return the type of the note. This type does not match the NT_ type value. For accessing the original NT_ value, check original_type() | |
uint32_t | original_type () const |
The original NT_xxx integer value. The meaning of this value likely depends on the owner of the note. | |
span< const uint8_t > | description () const |
Return the description associated with the note. | |
span< uint8_t > | description () |
void | name (std::string name) |
void | description (description_t description) |
Change the description of the note. | |
uint64_t | size () const |
Size of the raw note which includes padding. | |
void | accept (Visitor &visitor) const override |
template<class T > | |
const T * | cast () const |
template<class T > | |
T * | cast () |
Public Member Functions inherited from LIEF::Object | |
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 Note *note) |
Static Public Member Functions inherited from LIEF::ELF::Note | |
static result< TYPE > | convert_type (Header::FILE_TYPE ftype, uint32_t type, const std::string &name) |
Convert the raw integer note type into a TYPE according to the owner. | |
static result< const char * > | type_to_section (TYPE type) |
Try to determine the ELF section name associated with the TYPE provided in parameter. | |
static result< std::string > | note_to_section (const Note ¬e) |
static result< const char * > | type_owner (TYPE type) |
Try to determine the owner's name of the TYPE provided in parameter. | |
static std::unique_ptr< Note > | create (const std::string &name, uint32_t type, description_t description, std::string section_name, Header::FILE_TYPE ftype=Header::FILE_TYPE::NONE, ARCH arch=ARCH::NONE, Header::CLASS cls=Header::CLASS::NONE) |
Create a new note from the given parameters. Additional information such as the architecture or the ELF class could be required for creating notes like Coredump notes. | |
static std::unique_ptr< Note > | create (const std::string &name, TYPE type, description_t description, std::string section_name, ARCH arch=ARCH::NONE, Header::CLASS cls=Header::CLASS::NONE) |
Create a new note from the given parameters. Additional information such as the architecture or the ELF class could be required for creating notes like Coredump notes. | |
static std::unique_ptr< Note > | create (BinaryStream &stream, std::string section_name, Header::FILE_TYPE ftype=Header::FILE_TYPE::NONE, ARCH arch=ARCH::NONE, Header::CLASS cls=Header::CLASS::NONE) |
Create a new note from the given stream. Additional information such as the architecture or the ELF class could be required for creating notes like Coredump notes. | |
Class representing core auxv object.
|
strong |
Enumerator | |
---|---|
END | End of vector |
IGNORE | Entry should be ignored |
EXECFD | File descriptor of program |
PHDR | Program headers for program |
PHENT | Size of program header entry |
PHNUM | Number of program headers |
PAGESZ | System page size |
BASE | Base address of interpreter |
FLAGS | Flags |
ENTRY | Entry point of program |
NOTELF | Program is not ELF |
UID | Real uid |
EUID | Effective uid |
GID | Real gid |
EGID | Effective gid |
TGT_PLATFORM | String identifying platform. |
HWCAP | Machine dependent hints about processor capabilities. |
CLKTCK | Frequency of times() |
FPUCW | Used FPU control word. |
DCACHEBSIZE | Data cache block size. |
ICACHEBSIZE | Instruction cache block size. |
UCACHEBSIZE | Instruction cache block size. |
IGNOREPPC | Entry should be ignored. |
SECURE | Boolean, was exec setuid-like?. |
BASE_PLATFORM | String identifying real platform |
RANDOM | Address of 16 random bytes |
HWCAP2 | Extension of AT_HWCAP |
EXECFN | Filename of executable |
SYSINFO | Filename of executable |
SYSINFO_EHDR | Pointer to ELF header of system-supplied DSO. |
|
inline |
|
overridedefault |
|
overridevirtual |
Implements LIEF::Object.
|
inlinestatic |
References LIEF::ELF::Note::type().
|
inlineoverridevirtual |
Clone the current note and keep its polymorphic type.
Reimplemented from LIEF::ELF::Note.
|
overridevirtual |
Reimplemented from LIEF::ELF::Note.
Referenced by operator<<.
Return the value associated with the provided TYPE or a lief_errors::not_found if the type is not present.
bool LIEF::ELF::CoreAuxv::set | ( | const std::map< TYPE, uint64_t > & | values | ) |
bool LIEF::ELF::CoreAuxv::set | ( | TYPE | type, |
uint64_t | value ) |
std::map< TYPE, uint64_t > LIEF::ELF::CoreAuxv::values | ( | ) | const |
A map of CoreAuxv::TYPE and the value.