LIEF: Library to Instrument Executable Formats Version 0.15.0
|
Namespaces | |
namespace | ART |
Namespace related to the LIEF's ART module. | |
namespace | ELF |
Namespace related to the LIEF's ELF module. | |
namespace | MachO |
Namespace related to the LIEF's Mach-O module. | |
namespace | PE |
Namespace related to the LIEF's PE module. | |
Classes | |
class | AbstractHash |
class | ASN1Reader |
class | Binary |
Abstract binary that exposes an uniform API for the different executable file formats. More... | |
class | BinaryStream |
Class that is used to a read stream of data from different sources. More... | |
class | FileStream |
Stream interface over a std::ifstream. More... | |
class | filter_iterator |
Iterator which return a ref on container's values given predicates. More... | |
class | Function |
Class that represents a function in the binary. More... | |
class | Hash |
class | Header |
class | MemoryStream |
class | Object |
struct | ok_t |
Opaque structure used by ok_error_t. More... | |
class | Parser |
Main interface to parse an executable regardless of its format. More... | |
class | ref_iterator |
Iterator which returns reference on container's values. More... | |
class | Relocation |
Class which represents an abstracted Relocation. More... | |
class | ScopedStream |
class | Section |
Class which represents an abstracted section. More... | |
class | SpanStream |
class | Symbol |
This class represents a symbol in an executable format. More... | |
class | vector_iostream |
class | VectorStream |
class | Visitor |
Typedefs | |
template<typename T > | |
using | result = tl::expected<T, lief_errors> |
Wrapper that contains an Object (T ) or an error. | |
using | ok_error_t = result<ok_t> |
Opaque structure that is used by LIEF to avoid writing result<void> f(...) . Instead, it makes the output explicit such as: | |
template<class T > | |
using | decay_t = typename std::decay<T>::type |
template<class T > | |
using | add_const_t = typename std::add_const<T>::type |
template<class T > | |
using | remove_const_t = typename std::remove_const<T>::type |
template<class T > | |
using | add_lvalue_reference_t = typename std::add_lvalue_reference<T>::type |
template<class T , typename U = typename decay_t<T>::value_type, class CT = typename std::add_const<T>::type> | |
using | const_ref_iterator = ref_iterator<CT, U, typename decay_t<CT>::const_iterator> |
Iterator which return const ref on container's values. | |
template<class T , typename U = typename decay_t<T>::value_type, class CT = typename std::add_const<T>::type> | |
using | const_filter_iterator = filter_iterator<CT, U, typename decay_t<CT>::const_iterator> |
Iterator which return a const ref on container's values given predicates. | |
template<typename ElementType , std::size_t Extent = tcb::dynamic_extent> | |
using | span = tcb::span<ElementType, Extent> |
Functions | |
const char * | to_string (Binary::VA_TYPES e) |
const char * | to_string (Binary::FORMATS e) |
const char * | to_string (ARCHITECTURES e) |
const char * | to_string (OBJECT_TYPES e) |
const char * | to_string (MODES e) |
const char * | to_string (ENDIANNESS e) |
const char * | to_string (Function::FLAGS e) |
std::string | to_json_from_abstract (const Object &v) |
template<class T > | |
lief_errors | get_error (result< T > &err) |
Get the error code associated with the result. | |
template<class T > | |
lief_errors | as_lief_err (result< T > &err) |
Return the lief_errors when the provided result<T> is an error. | |
ok_t | ok () |
Return success for function with return type ok_error_t. | |
bool | is_ok (const ok_error_t &val) |
bool | is_err (const ok_error_t &val) |
Hash::value_type | hash (const Object &v) |
Hash::value_type | hash (const std::vector< uint8_t > &raw) |
Hash::value_type | hash (span< const uint8_t > raw) |
std::string | to_json (const Object &v) |
constexpr PLATFORMS | current_platform () |
uint64_t | align (uint64_t value, uint64_t align_on) |
template<typename T > | |
constexpr T | round (T x) |
template<> | |
uint64_t | round< uint64_t > (uint64_t x) |
constexpr size_t | operator""_KB (unsigned long long kbs) |
constexpr size_t | operator""_MB (unsigned long long mbs) |
constexpr size_t | operator""_GB (unsigned long long gbs) |
std::string | u16tou8 (const std::u16string &string, bool remove_null_char=false) |
Convert a UTF-16 string to a UTF-8 one. | |
result< std::u16string > | u8tou16 (const std::string &string) |
Convert a UTF-8 string to a UTF-16 one. | |
std::string | hex_str (uint8_t c) |
std::string | hex_dump (const std::vector< uint8_t > &data, const std::string &sep=":") |
std::string | hex_dump (span< const uint8_t > data, const std::string &sep=":") |
bool | is_printable (const std::string &str) |
Check if the given string in printable. | |
bool | is_hex_number (const std::string &nb) |
Check if the given number is a hex-like string. | |
LIEF namespace.
using LIEF::ok_error_t = result<ok_t> |
Opaque structure that is used by LIEF to avoid writing result<void> f(...)
. Instead, it makes the output explicit such as:
using LIEF::result = tl::expected<T, lief_errors> |
Wrapper that contains an Object (T
) or an error.
The tl/expected implementation exposes the method value()
to access the underlying object (if no error)
Typical usage is:
See https://tl.tartanllama.xyz/en/latest/api/expected.html for more details