LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF Namespace Reference

LIEF namespace. More...

Namespaces

namespace  Android
 
namespace  ART
 Namespace related to the LIEF's ART module.
 
namespace  assembly
 Namespace related to assembly/disassembly support.
 
namespace  details
 
namespace  DEX
 
namespace  dsc
 Namespace related to the dyld shared cache support.
 
namespace  dwarf
 Namespace for the DWARF debug format.
 
namespace  ELF
 Namespace related to the LIEF's ELF module.
 
namespace  logging
 
namespace  MachO
 Namespace related to the LIEF's Mach-O module.
 
namespace  OAT
 
namespace  objc
 Namespace related to ObjC metadata.
 
namespace  pdb
 
namespace  PE
 Namespace related to the LIEF's PE module.
 
namespace  VDEX
 

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...
 
struct  debug_location_t
 This structure holds a debug location (source filename & line) More...
 
class  DebugInfo
 
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  iterator_adaptor_base
 CRTP base class for adapting an iterator to a different type. More...
 
class  iterator_facade_base
 CRTP base class which implements the entire standard iterator facade in terms of a minimal subset of the interface. More...
 
class  iterator_range
 
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...
 
struct  pointee_iterator
 An iterator type that allows iterating over the pointees via some other iterator. More...
 
class  pointer_iterator
 
struct  range_t
 
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  ToggleEndianness
 
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 WrappedIteratorT , typename T1 = typename std::remove_reference<decltype( **std::declval<WrappedIteratorT>())>::type, typename T2 = typename std::add_pointer<T1>::type>
using raw_pointer_iterator
 
template<typename ElementType , std::size_t Extent = tcb::dynamic_extent>
using span = tcb::span<ElementType, Extent>
 

Enumerations

enum  PLATFORMS {
  PLAT_UNKNOWN = 0 , PLAT_LINUX , PLAT_ANDROID , PLAT_WINDOWS ,
  PLAT_IOS , PLAT_OSX
}
 

Functions

const char * to_string (Binary::VA_TYPES e)
 
const char * to_string (Binary::FORMATS e)
 
const char * to_string (Function::FLAGS e)
 
const char * to_string (Header::ARCHITECTURES e)
 
const char * to_string (Header::OBJECT_TYPES e)
 
const char * to_string (Header::MODES e)
 
const char * to_string (Header::ENDIANNESS e)
 
std::string to_json_from_abstract (const Object &v)
 
template<typename T >
void swap_endian (T *)
 
template<typename T >
get_swapped_endian (const T &other)
 
template<>
void swap_endian< char > (char *hdr)
 
template<>
void swap_endian< char16_t > (char16_t *hdr)
 
template<>
void swap_endian< uint8_t > (uint8_t *hdr)
 
template<>
void swap_endian< uint16_t > (uint16_t *hdr)
 
template<>
void swap_endian< uint32_t > (uint32_t *hdr)
 
template<>
void swap_endian< uint64_t > (uint64_t *hdr)
 
template<>
void swap_endian< int8_t > (int8_t *hdr)
 
template<>
void swap_endian< int16_t > (int16_t *hdr)
 
template<>
void swap_endian< int32_t > (int32_t *hdr)
 
template<>
void swap_endian< int64_t > (int64_t *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_Auxv > (ELF::details::Elf32_Auxv *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_Dyn > (ELF::details::Elf32_Dyn *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_Ehdr > (ELF::details::Elf32_Ehdr *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_FileEntry > (ELF::details::Elf32_FileEntry *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_Phdr > (ELF::details::Elf32_Phdr *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_Rel > (ELF::details::Elf32_Rel *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_Rela > (ELF::details::Elf32_Rela *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_Shdr > (ELF::details::Elf32_Shdr *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_Sym > (ELF::details::Elf32_Sym *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_Verdaux > (ELF::details::Elf32_Verdaux *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_Verdef > (ELF::details::Elf32_Verdef *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_Vernaux > (ELF::details::Elf32_Vernaux *hdr)
 
template<>
void swap_endian< ELF::details::Elf32_Verneed > (ELF::details::Elf32_Verneed *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_Auxv > (ELF::details::Elf64_Auxv *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_Dyn > (ELF::details::Elf64_Dyn *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_Ehdr > (ELF::details::Elf64_Ehdr *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_FileEntry > (ELF::details::Elf64_FileEntry *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_Phdr > (ELF::details::Elf64_Phdr *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_Rel > (ELF::details::Elf64_Rel *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_Rela > (ELF::details::Elf64_Rela *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_Shdr > (ELF::details::Elf64_Shdr *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_Sym > (ELF::details::Elf64_Sym *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_Verdaux > (ELF::details::Elf64_Verdaux *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_Verdef > (ELF::details::Elf64_Verdef *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_Vernaux > (ELF::details::Elf64_Vernaux *hdr)
 
template<>
void swap_endian< ELF::details::Elf64_Verneed > (ELF::details::Elf64_Verneed *hdr)
 
template<>
void swap_endian< MachO::details::arm_thread_state64_t > (MachO::details::arm_thread_state64_t *hdr)
 
template<>
void swap_endian< MachO::details::arm_thread_state_t > (MachO::details::arm_thread_state_t *hdr)
 
template<>
void swap_endian< MachO::details::build_tool_version > (MachO::details::build_tool_version *hdr)
 
template<>
void swap_endian< MachO::details::build_version_command > (MachO::details::build_version_command *hdr)
 
template<>
void swap_endian< MachO::details::data_in_code_entry > (MachO::details::data_in_code_entry *hdr)
 
template<>
void swap_endian< MachO::details::dyld_info_command > (MachO::details::dyld_info_command *hdr)
 
template<>
void swap_endian< MachO::details::dylib_command > (MachO::details::dylib_command *hdr)
 
template<>
void swap_endian< MachO::details::dylib_module_32 > (MachO::details::dylib_module_32 *hdr)
 
template<>
void swap_endian< MachO::details::dylib_module_64 > (MachO::details::dylib_module_64 *hdr)
 
template<>
void swap_endian< MachO::details::dylib_reference > (MachO::details::dylib_reference *hdr)
 
template<>
void swap_endian< MachO::details::dylib_table_of_contents > (MachO::details::dylib_table_of_contents *hdr)
 
template<>
void swap_endian< MachO::details::dylinker_command > (MachO::details::dylinker_command *hdr)
 
template<>
void swap_endian< MachO::details::dysymtab_command > (MachO::details::dysymtab_command *hdr)
 
template<>
void swap_endian< MachO::details::encryption_info_command > (MachO::details::encryption_info_command *hdr)
 
template<>
void swap_endian< MachO::details::entry_point_command > (MachO::details::entry_point_command *hdr)
 
template<>
void swap_endian< MachO::details::fileset_entry_command > (MachO::details::fileset_entry_command *hdr)
 
template<>
void swap_endian< MachO::details::fvmfile_command > (MachO::details::fvmfile_command *hdr)
 
template<>
void swap_endian< MachO::details::ident_command > (MachO::details::ident_command *hdr)
 
template<>
void swap_endian< MachO::details::linkedit_data_command > (MachO::details::linkedit_data_command *hdr)
 
template<>
void swap_endian< MachO::details::linker_option_command > (MachO::details::linker_option_command *hdr)
 
template<>
void swap_endian< MachO::details::load_command > (MachO::details::load_command *hdr)
 
template<>
void swap_endian< MachO::details::mach_header > (MachO::details::mach_header *hdr)
 
template<>
void swap_endian< MachO::details::mach_header_64 > (MachO::details::mach_header_64 *hdr)
 
template<>
void swap_endian< MachO::details::nlist_32 > (MachO::details::nlist_32 *hdr)
 
template<>
void swap_endian< MachO::details::nlist_64 > (MachO::details::nlist_64 *hdr)
 
template<>
void swap_endian< MachO::details::prebind_cksum_command > (MachO::details::prebind_cksum_command *hdr)
 
template<>
void swap_endian< MachO::details::prebound_dylib_command > (MachO::details::prebound_dylib_command *hdr)
 
template<>
void swap_endian< MachO::details::relocation_info > (MachO::details::relocation_info *hdr)
 
template<>
void swap_endian< MachO::details::routines_command_32 > (MachO::details::routines_command_32 *hdr)
 
template<>
void swap_endian< MachO::details::routines_command_64 > (MachO::details::routines_command_64 *hdr)
 
template<>
void swap_endian< MachO::details::rpath_command > (MachO::details::rpath_command *hdr)
 
template<>
void swap_endian< MachO::details::scattered_relocation_info > (MachO::details::scattered_relocation_info *hdr)
 
template<>
void swap_endian< MachO::details::section_32 > (MachO::details::section_32 *hdr)
 
template<>
void swap_endian< MachO::details::section_64 > (MachO::details::section_64 *hdr)
 
template<>
void swap_endian< MachO::details::segment_command_32 > (MachO::details::segment_command_32 *hdr)
 
template<>
void swap_endian< MachO::details::segment_command_64 > (MachO::details::segment_command_64 *hdr)
 
template<>
void swap_endian< MachO::details::source_version_command > (MachO::details::source_version_command *hdr)
 
template<>
void swap_endian< MachO::details::sub_client_command > (MachO::details::sub_client_command *hdr)
 
template<>
void swap_endian< MachO::details::sub_framework_command > (MachO::details::sub_framework_command *hdr)
 
template<>
void swap_endian< MachO::details::sub_library_command > (MachO::details::sub_library_command *hdr)
 
template<>
void swap_endian< MachO::details::sub_umbrella_command > (MachO::details::sub_umbrella_command *hdr)
 
template<>
void swap_endian< MachO::details::symseg_command > (MachO::details::symseg_command *hdr)
 
template<>
void swap_endian< MachO::details::symtab_command > (MachO::details::symtab_command *hdr)
 
template<>
void swap_endian< MachO::details::thread_command > (MachO::details::thread_command *hdr)
 
template<>
void swap_endian< MachO::details::twolevel_hint > (MachO::details::twolevel_hint *hdr)
 
template<>
void swap_endian< MachO::details::twolevel_hints_command > (MachO::details::twolevel_hints_command *hdr)
 
template<>
void swap_endian< MachO::details::uuid_command > (MachO::details::uuid_command *hdr)
 
template<>
void swap_endian< MachO::details::version_min_command > (MachO::details::version_min_command *hdr)
 
template<>
void swap_endian< MachO::details::x86_thread_state64_t > (MachO::details::x86_thread_state64_t *hdr)
 
template<>
void swap_endian< MachO::details::x86_thread_state_t > (MachO::details::x86_thread_state_t *hdr)
 
template<>
void swap_endian< MachO::details::ppc_thread_state64_t > (MachO::details::ppc_thread_state64_t *hdr)
 
template<>
void swap_endian< MachO::details::ppc_thread_state_t > (MachO::details::ppc_thread_state_t *hdr)
 
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)
 
template<class T >
iterator_range< T > make_range (T &&x, T &&y)
 
template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
iterator_range< pointee_iterator< WrappedIteratorT > > make_pointee_range (RangeT &&Range)
 
template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
iterator_range< pointer_iterator< WrappedIteratorT > > make_pointer_range (RangeT &&Range)
 
std::string to_json (const Object &v)
 
constexpr PLATFORMS current_platform ()
 
uint64_t align (uint64_t value, uint64_t align_on)
 
uint64_t align_down (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.
 
bool is_extended ()
 Whether this version of LIEF includes extended features.
 
std::string extended_version_info ()
 Details about the extended version.
 
result< std::string > demangle (const std::string &mangled)
 Demangle the given input.
 

Detailed Description

LIEF namespace.

Typedef Documentation

◆ add_const_t

template<class T >
using LIEF::add_const_t = typename std::add_const<T>::type

◆ add_lvalue_reference_t

template<class T >
using LIEF::add_lvalue_reference_t = typename std::add_lvalue_reference<T>::type

◆ const_filter_iterator

template<class T , typename U = typename decay_t<T>::value_type, class CT = typename std::add_const<T>::type>
using LIEF::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.

◆ const_ref_iterator

template<class T , typename U = typename decay_t<T>::value_type, class CT = typename std::add_const<T>::type>
using LIEF::const_ref_iterator = ref_iterator<CT, U, typename decay_t<CT>::const_iterator>

Iterator which return const ref on container's values.

◆ decay_t

template<class T >
using LIEF::decay_t = typename std::decay<T>::type

◆ ok_error_t

Opaque structure that is used by LIEF to avoid writing result<void> f(...). Instead, it makes the output explicit such as:

ok_error_t process() {
if (fail) {
return make_error_code(...);
}
return ok();
}
tl::unexpected< lief_errors > make_error_code(lief_errors e)
Create an standard error code from lief_errors.
Definition errors.hpp:52
result< ok_t > ok_error_t
Opaque structure that is used by LIEF to avoid writing result<void> f(...). Instead,...
Definition errors.hpp:109
ok_t ok()
Return success for function with return type ok_error_t.
Definition errors.hpp:93

◆ raw_pointer_iterator

template<typename WrappedIteratorT , typename T1 = typename std::remove_reference<decltype( **std::declval<WrappedIteratorT>())>::type, typename T2 = typename std::add_pointer<T1>::type>
using LIEF::raw_pointer_iterator

◆ remove_const_t

template<class T >
using LIEF::remove_const_t = typename std::remove_const<T>::type

◆ result

template<typename T >
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:

result<int> intval = my_function();
if (intval) {
int val = intval.value();
} else { // There is an error
std::cout << get_error(intval).message() << "\n";
}
lief_errors get_error(result< T > &err)
Get the error code associated with the result.
Definition errors.hpp:79
tl::expected< T, lief_errors > result
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:75

See https://tl.tartanllama.xyz/en/latest/api/expected.html for more details

◆ span

template<typename ElementType , std::size_t Extent = tcb::dynamic_extent>
using LIEF::span = tcb::span<ElementType, Extent>

Enumeration Type Documentation

◆ PLATFORMS

Enumerator
PLAT_UNKNOWN 
PLAT_LINUX 
PLAT_ANDROID 
PLAT_WINDOWS 
PLAT_IOS 
PLAT_OSX 

Function Documentation

◆ align()

uint64_t LIEF::align ( uint64_t value,
uint64_t align_on )
inline

◆ align_down()

uint64_t LIEF::align_down ( uint64_t value,
uint64_t align_on )
inline

◆ as_lief_err()

template<class T >
lief_errors LIEF::as_lief_err ( result< T > & err)

Return the lief_errors when the provided result<T> is an error.

◆ current_platform()

PLATFORMS LIEF::current_platform ( )
constexpr

◆ demangle()

result< std::string > LIEF::demangle ( const std::string & mangled)

Demangle the given input.

This function only works with the extended version of LIEF

◆ extended_version_info()

std::string LIEF::extended_version_info ( )

Details about the extended version.

◆ get_error()

template<class T >
lief_errors LIEF::get_error ( result< T > & err)

Get the error code associated with the result.

◆ get_swapped_endian()

template<typename T >
T LIEF::get_swapped_endian ( const T & other)

References swap_endian().

◆ hash() [1/3]

◆ hash() [2/3]

Hash::value_type LIEF::hash ( const std::vector< uint8_t > & raw)

◆ hash() [3/3]

Hash::value_type LIEF::hash ( span< const uint8_t > raw)

◆ is_err()

bool LIEF::is_err ( const ok_error_t & val)
inline

References is_ok().

◆ is_extended()

bool LIEF::is_extended ( )

Whether this version of LIEF includes extended features.

◆ is_ok()

bool LIEF::is_ok ( const ok_error_t & val)
inline

Referenced by is_err().

◆ make_pointee_range()

template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
iterator_range< pointee_iterator< WrappedIteratorT > > LIEF::make_pointee_range ( RangeT && Range)

References make_range().

◆ make_pointer_range()

template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
iterator_range< pointer_iterator< WrappedIteratorT > > LIEF::make_pointer_range ( RangeT && Range)

References make_range().

◆ make_range()

template<class T >
iterator_range< T > LIEF::make_range ( T && x,
T && y )

◆ ok()

◆ operator""_GB()

size_t LIEF::operator""_GB ( unsigned long long gbs)
constexpr

◆ operator""_KB()

size_t LIEF::operator""_KB ( unsigned long long kbs)
constexpr

◆ operator""_MB()

size_t LIEF::operator""_MB ( unsigned long long mbs)
constexpr

◆ round()

template<typename T >
T LIEF::round ( T x)
inlineconstexpr

References round< uint64_t >().

◆ round< uint64_t >()

template<>
uint64_t LIEF::round< uint64_t > ( uint64_t x)
inline

Referenced by round().

◆ swap_endian()

template<typename T >
void LIEF::swap_endian ( T * )

◆ swap_endian< char >()

template<>
void LIEF::swap_endian< char > ( char * hdr)

◆ swap_endian< char16_t >()

template<>
void LIEF::swap_endian< char16_t > ( char16_t * hdr)

◆ swap_endian< ELF::details::Elf32_Auxv >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_Auxv > ( ELF::details::Elf32_Auxv * hdr)

◆ swap_endian< ELF::details::Elf32_Dyn >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_Dyn > ( ELF::details::Elf32_Dyn * hdr)

◆ swap_endian< ELF::details::Elf32_Ehdr >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_Ehdr > ( ELF::details::Elf32_Ehdr * hdr)

◆ swap_endian< ELF::details::Elf32_FileEntry >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_FileEntry > ( ELF::details::Elf32_FileEntry * hdr)

◆ swap_endian< ELF::details::Elf32_Phdr >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_Phdr > ( ELF::details::Elf32_Phdr * hdr)

◆ swap_endian< ELF::details::Elf32_Rel >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_Rel > ( ELF::details::Elf32_Rel * hdr)

◆ swap_endian< ELF::details::Elf32_Rela >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_Rela > ( ELF::details::Elf32_Rela * hdr)

◆ swap_endian< ELF::details::Elf32_Shdr >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_Shdr > ( ELF::details::Elf32_Shdr * hdr)

◆ swap_endian< ELF::details::Elf32_Sym >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_Sym > ( ELF::details::Elf32_Sym * hdr)

◆ swap_endian< ELF::details::Elf32_Verdaux >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_Verdaux > ( ELF::details::Elf32_Verdaux * hdr)

◆ swap_endian< ELF::details::Elf32_Verdef >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_Verdef > ( ELF::details::Elf32_Verdef * hdr)

◆ swap_endian< ELF::details::Elf32_Vernaux >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_Vernaux > ( ELF::details::Elf32_Vernaux * hdr)

◆ swap_endian< ELF::details::Elf32_Verneed >()

template<>
void LIEF::swap_endian< ELF::details::Elf32_Verneed > ( ELF::details::Elf32_Verneed * hdr)

◆ swap_endian< ELF::details::Elf64_Auxv >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_Auxv > ( ELF::details::Elf64_Auxv * hdr)

◆ swap_endian< ELF::details::Elf64_Dyn >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_Dyn > ( ELF::details::Elf64_Dyn * hdr)

◆ swap_endian< ELF::details::Elf64_Ehdr >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_Ehdr > ( ELF::details::Elf64_Ehdr * hdr)

◆ swap_endian< ELF::details::Elf64_FileEntry >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_FileEntry > ( ELF::details::Elf64_FileEntry * hdr)

◆ swap_endian< ELF::details::Elf64_Phdr >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_Phdr > ( ELF::details::Elf64_Phdr * hdr)

◆ swap_endian< ELF::details::Elf64_Rel >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_Rel > ( ELF::details::Elf64_Rel * hdr)

◆ swap_endian< ELF::details::Elf64_Rela >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_Rela > ( ELF::details::Elf64_Rela * hdr)

◆ swap_endian< ELF::details::Elf64_Shdr >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_Shdr > ( ELF::details::Elf64_Shdr * hdr)

◆ swap_endian< ELF::details::Elf64_Sym >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_Sym > ( ELF::details::Elf64_Sym * hdr)

◆ swap_endian< ELF::details::Elf64_Verdaux >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_Verdaux > ( ELF::details::Elf64_Verdaux * hdr)

◆ swap_endian< ELF::details::Elf64_Verdef >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_Verdef > ( ELF::details::Elf64_Verdef * hdr)

◆ swap_endian< ELF::details::Elf64_Vernaux >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_Vernaux > ( ELF::details::Elf64_Vernaux * hdr)

◆ swap_endian< ELF::details::Elf64_Verneed >()

template<>
void LIEF::swap_endian< ELF::details::Elf64_Verneed > ( ELF::details::Elf64_Verneed * hdr)

◆ swap_endian< int16_t >()

template<>
void LIEF::swap_endian< int16_t > ( int16_t * hdr)

◆ swap_endian< int32_t >()

template<>
void LIEF::swap_endian< int32_t > ( int32_t * hdr)

◆ swap_endian< int64_t >()

template<>
void LIEF::swap_endian< int64_t > ( int64_t * hdr)

◆ swap_endian< int8_t >()

template<>
void LIEF::swap_endian< int8_t > ( int8_t * hdr)

◆ swap_endian< MachO::details::arm_thread_state64_t >()

template<>
void LIEF::swap_endian< MachO::details::arm_thread_state64_t > ( MachO::details::arm_thread_state64_t * hdr)

◆ swap_endian< MachO::details::arm_thread_state_t >()

template<>
void LIEF::swap_endian< MachO::details::arm_thread_state_t > ( MachO::details::arm_thread_state_t * hdr)

◆ swap_endian< MachO::details::build_tool_version >()

template<>
void LIEF::swap_endian< MachO::details::build_tool_version > ( MachO::details::build_tool_version * hdr)

◆ swap_endian< MachO::details::build_version_command >()

template<>
void LIEF::swap_endian< MachO::details::build_version_command > ( MachO::details::build_version_command * hdr)

◆ swap_endian< MachO::details::data_in_code_entry >()

template<>
void LIEF::swap_endian< MachO::details::data_in_code_entry > ( MachO::details::data_in_code_entry * hdr)

◆ swap_endian< MachO::details::dyld_info_command >()

template<>
void LIEF::swap_endian< MachO::details::dyld_info_command > ( MachO::details::dyld_info_command * hdr)

◆ swap_endian< MachO::details::dylib_command >()

template<>
void LIEF::swap_endian< MachO::details::dylib_command > ( MachO::details::dylib_command * hdr)

◆ swap_endian< MachO::details::dylib_module_32 >()

template<>
void LIEF::swap_endian< MachO::details::dylib_module_32 > ( MachO::details::dylib_module_32 * hdr)

◆ swap_endian< MachO::details::dylib_module_64 >()

template<>
void LIEF::swap_endian< MachO::details::dylib_module_64 > ( MachO::details::dylib_module_64 * hdr)

◆ swap_endian< MachO::details::dylib_reference >()

template<>
void LIEF::swap_endian< MachO::details::dylib_reference > ( MachO::details::dylib_reference * hdr)

◆ swap_endian< MachO::details::dylib_table_of_contents >()

template<>
void LIEF::swap_endian< MachO::details::dylib_table_of_contents > ( MachO::details::dylib_table_of_contents * hdr)

◆ swap_endian< MachO::details::dylinker_command >()

template<>
void LIEF::swap_endian< MachO::details::dylinker_command > ( MachO::details::dylinker_command * hdr)

◆ swap_endian< MachO::details::dysymtab_command >()

template<>
void LIEF::swap_endian< MachO::details::dysymtab_command > ( MachO::details::dysymtab_command * hdr)

◆ swap_endian< MachO::details::encryption_info_command >()

template<>
void LIEF::swap_endian< MachO::details::encryption_info_command > ( MachO::details::encryption_info_command * hdr)

◆ swap_endian< MachO::details::entry_point_command >()

template<>
void LIEF::swap_endian< MachO::details::entry_point_command > ( MachO::details::entry_point_command * hdr)

◆ swap_endian< MachO::details::fileset_entry_command >()

template<>
void LIEF::swap_endian< MachO::details::fileset_entry_command > ( MachO::details::fileset_entry_command * hdr)

◆ swap_endian< MachO::details::fvmfile_command >()

template<>
void LIEF::swap_endian< MachO::details::fvmfile_command > ( MachO::details::fvmfile_command * hdr)

◆ swap_endian< MachO::details::ident_command >()

template<>
void LIEF::swap_endian< MachO::details::ident_command > ( MachO::details::ident_command * hdr)

◆ swap_endian< MachO::details::linkedit_data_command >()

template<>
void LIEF::swap_endian< MachO::details::linkedit_data_command > ( MachO::details::linkedit_data_command * hdr)

◆ swap_endian< MachO::details::linker_option_command >()

template<>
void LIEF::swap_endian< MachO::details::linker_option_command > ( MachO::details::linker_option_command * hdr)

◆ swap_endian< MachO::details::load_command >()

template<>
void LIEF::swap_endian< MachO::details::load_command > ( MachO::details::load_command * hdr)

◆ swap_endian< MachO::details::mach_header >()

template<>
void LIEF::swap_endian< MachO::details::mach_header > ( MachO::details::mach_header * hdr)

◆ swap_endian< MachO::details::mach_header_64 >()

template<>
void LIEF::swap_endian< MachO::details::mach_header_64 > ( MachO::details::mach_header_64 * hdr)

◆ swap_endian< MachO::details::nlist_32 >()

template<>
void LIEF::swap_endian< MachO::details::nlist_32 > ( MachO::details::nlist_32 * hdr)

◆ swap_endian< MachO::details::nlist_64 >()

template<>
void LIEF::swap_endian< MachO::details::nlist_64 > ( MachO::details::nlist_64 * hdr)

◆ swap_endian< MachO::details::ppc_thread_state64_t >()

template<>
void LIEF::swap_endian< MachO::details::ppc_thread_state64_t > ( MachO::details::ppc_thread_state64_t * hdr)

◆ swap_endian< MachO::details::ppc_thread_state_t >()

template<>
void LIEF::swap_endian< MachO::details::ppc_thread_state_t > ( MachO::details::ppc_thread_state_t * hdr)

◆ swap_endian< MachO::details::prebind_cksum_command >()

template<>
void LIEF::swap_endian< MachO::details::prebind_cksum_command > ( MachO::details::prebind_cksum_command * hdr)

◆ swap_endian< MachO::details::prebound_dylib_command >()

template<>
void LIEF::swap_endian< MachO::details::prebound_dylib_command > ( MachO::details::prebound_dylib_command * hdr)

◆ swap_endian< MachO::details::relocation_info >()

template<>
void LIEF::swap_endian< MachO::details::relocation_info > ( MachO::details::relocation_info * hdr)

◆ swap_endian< MachO::details::routines_command_32 >()

template<>
void LIEF::swap_endian< MachO::details::routines_command_32 > ( MachO::details::routines_command_32 * hdr)

◆ swap_endian< MachO::details::routines_command_64 >()

template<>
void LIEF::swap_endian< MachO::details::routines_command_64 > ( MachO::details::routines_command_64 * hdr)

◆ swap_endian< MachO::details::rpath_command >()

template<>
void LIEF::swap_endian< MachO::details::rpath_command > ( MachO::details::rpath_command * hdr)

◆ swap_endian< MachO::details::scattered_relocation_info >()

template<>
void LIEF::swap_endian< MachO::details::scattered_relocation_info > ( MachO::details::scattered_relocation_info * hdr)

◆ swap_endian< MachO::details::section_32 >()

template<>
void LIEF::swap_endian< MachO::details::section_32 > ( MachO::details::section_32 * hdr)

◆ swap_endian< MachO::details::section_64 >()

template<>
void LIEF::swap_endian< MachO::details::section_64 > ( MachO::details::section_64 * hdr)

◆ swap_endian< MachO::details::segment_command_32 >()

template<>
void LIEF::swap_endian< MachO::details::segment_command_32 > ( MachO::details::segment_command_32 * hdr)

◆ swap_endian< MachO::details::segment_command_64 >()

template<>
void LIEF::swap_endian< MachO::details::segment_command_64 > ( MachO::details::segment_command_64 * hdr)

◆ swap_endian< MachO::details::source_version_command >()

template<>
void LIEF::swap_endian< MachO::details::source_version_command > ( MachO::details::source_version_command * hdr)

◆ swap_endian< MachO::details::sub_client_command >()

template<>
void LIEF::swap_endian< MachO::details::sub_client_command > ( MachO::details::sub_client_command * hdr)

◆ swap_endian< MachO::details::sub_framework_command >()

template<>
void LIEF::swap_endian< MachO::details::sub_framework_command > ( MachO::details::sub_framework_command * hdr)

◆ swap_endian< MachO::details::sub_library_command >()

template<>
void LIEF::swap_endian< MachO::details::sub_library_command > ( MachO::details::sub_library_command * hdr)

◆ swap_endian< MachO::details::sub_umbrella_command >()

template<>
void LIEF::swap_endian< MachO::details::sub_umbrella_command > ( MachO::details::sub_umbrella_command * hdr)

◆ swap_endian< MachO::details::symseg_command >()

template<>
void LIEF::swap_endian< MachO::details::symseg_command > ( MachO::details::symseg_command * hdr)

◆ swap_endian< MachO::details::symtab_command >()

template<>
void LIEF::swap_endian< MachO::details::symtab_command > ( MachO::details::symtab_command * hdr)

◆ swap_endian< MachO::details::thread_command >()

template<>
void LIEF::swap_endian< MachO::details::thread_command > ( MachO::details::thread_command * hdr)

◆ swap_endian< MachO::details::twolevel_hint >()

template<>
void LIEF::swap_endian< MachO::details::twolevel_hint > ( MachO::details::twolevel_hint * hdr)

◆ swap_endian< MachO::details::twolevel_hints_command >()

template<>
void LIEF::swap_endian< MachO::details::twolevel_hints_command > ( MachO::details::twolevel_hints_command * hdr)

◆ swap_endian< MachO::details::uuid_command >()

template<>
void LIEF::swap_endian< MachO::details::uuid_command > ( MachO::details::uuid_command * hdr)

◆ swap_endian< MachO::details::version_min_command >()

template<>
void LIEF::swap_endian< MachO::details::version_min_command > ( MachO::details::version_min_command * hdr)

◆ swap_endian< MachO::details::x86_thread_state64_t >()

template<>
void LIEF::swap_endian< MachO::details::x86_thread_state64_t > ( MachO::details::x86_thread_state64_t * hdr)

◆ swap_endian< MachO::details::x86_thread_state_t >()

template<>
void LIEF::swap_endian< MachO::details::x86_thread_state_t > ( MachO::details::x86_thread_state_t * hdr)

◆ swap_endian< uint16_t >()

template<>
void LIEF::swap_endian< uint16_t > ( uint16_t * hdr)

◆ swap_endian< uint32_t >()

template<>
void LIEF::swap_endian< uint32_t > ( uint32_t * hdr)

◆ swap_endian< uint64_t >()

template<>
void LIEF::swap_endian< uint64_t > ( uint64_t * hdr)

◆ swap_endian< uint8_t >()

template<>
void LIEF::swap_endian< uint8_t > ( uint8_t * hdr)

◆ to_json()

std::string LIEF::to_json ( const Object & v)

◆ to_json_from_abstract()

std::string LIEF::to_json_from_abstract ( const Object & v)

◆ to_string() [1/7]

const char * LIEF::to_string ( Binary::FORMATS e)

◆ to_string() [2/7]

const char * LIEF::to_string ( Binary::VA_TYPES e)

◆ to_string() [3/7]

const char * LIEF::to_string ( Function::FLAGS e)

◆ to_string() [4/7]

const char * LIEF::to_string ( Header::ARCHITECTURES e)

◆ to_string() [5/7]

const char * LIEF::to_string ( Header::ENDIANNESS e)

◆ to_string() [6/7]

const char * LIEF::to_string ( Header::MODES e)

◆ to_string() [7/7]

const char * LIEF::to_string ( Header::OBJECT_TYPES e)

◆ u16tou8()

std::string LIEF::u16tou8 ( const std::u16string & string,
bool remove_null_char = false )

Convert a UTF-16 string to a UTF-8 one.

◆ u8tou16()

result< std::u16string > LIEF::u8tou16 ( const std::string & string)

Convert a UTF-8 string to a UTF-16 one.