LIEF: Library to Instrument Executable Formats Version 0.15.0
|
Class that represents a Symbol in a Mach-O file. More...
#include <Symbol.hpp>
Public Types | |
enum class | CATEGORY { NONE = 0 , LOCAL , EXTERNAL , UNDEFINED , INDIRECT_ABS , INDIRECT_LOCAL } |
Category of the symbol when the symbol comes from the LC_SYMTAB command. The category is defined according to the LC_DYSYMTAB (DynamicSymbolCommand) command. | |
Public Types inherited from LIEF::Object | |
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>>> |
Public Member Functions | |
Symbol (const details::nlist_32 &cmd) | |
Symbol (const details::nlist_64 &cmd) | |
Symbol & | operator= (Symbol other) |
Symbol (const Symbol &other) | |
void | swap (Symbol &other) |
uint8_t | type () const |
uint8_t | numberof_sections () const |
It returns the number of sections in which this symbol can be found. If the symbol can't be found in any section, it returns 0 (NO_SECT) | |
uint16_t | description () const |
Return information about the symbol (SYMBOL_DESCRIPTIONS) | |
bool | has_export_info () const |
True if the symbol is associated with an ExportInfo This value is set when the symbol comes from the Dyld Export trie. | |
const ExportInfo * | export_info () const |
Return the ExportInfo associated with this symbol (or nullptr if not present) | |
ExportInfo * | export_info () |
bool | has_binding_info () const |
True if the symbol is associated with a BindingInfo This value is set when the symbol comes from the Dyld symbol bindings. | |
const BindingInfo * | binding_info () const |
Return the BindingInfo associated with this symbol (or nullptr if not present) | |
BindingInfo * | binding_info () |
std::string | demangled_name () const |
Try to demangle the symbol or return an empty string if it is not possible. | |
bool | is_external () const |
True if the symbol is defined as an external symbol. | |
const DylibCommand * | library () const |
Return the library in which the symbol is defined. It returns a null pointer if the library can't be resolved. | |
DylibCommand * | library () |
SYMBOL_ORIGINS | origin () const |
Return the origin of the symbol: from LC_SYMTAB command or from the Dyld information. | |
CATEGORY | category () const |
Category of the symbol according to the LC_DYSYMTAB command. | |
void | type (uint8_t type) |
void | numberof_sections (uint8_t nbsections) |
void | description (uint16_t desc) |
void | accept (Visitor &visitor) const override |
Public Member Functions inherited from LIEF::Symbol | |
Symbol (std::string name) | |
Symbol (std::string name, uint64_t value) | |
Symbol (std::string name, uint64_t value, uint64_t size) | |
Symbol (const Symbol &) | |
Symbol & | operator= (const Symbol &) |
void | swap (Symbol &other) |
virtual const std::string & | name () const |
Return the symbol's name. | |
virtual std::string & | name () |
virtual void | name (const std::string &name) |
Set symbol name. | |
virtual uint64_t | value () const |
virtual void | value (uint64_t value) |
virtual uint64_t | size () const |
This size of the symbol (when applicable) | |
virtual void | size (uint64_t value) |
void | accept (Visitor &visitor) const override |
Method so that the visitor can visit us. | |
Public Member Functions inherited from LIEF::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 |
Static Public Member Functions | |
static const Symbol & | indirect_abs () |
static const Symbol & | indirect_local () |
Class that represents a Symbol in a Mach-O file.
A Mach-O symbol can come from:
|
overridevirtual |
Implements LIEF::Object.
const BindingInfo * LIEF::MachO::Symbol::binding_info | ( | ) | const |
Return the BindingInfo associated with this symbol (or nullptr if not present)
const ExportInfo * LIEF::MachO::Symbol::export_info | ( | ) | const |
Return the ExportInfo associated with this symbol (or nullptr if not present)
bool LIEF::MachO::Symbol::is_external | ( | ) | const |
True if the symbol is defined as an external symbol.
This function check if the flag N_LIST_TYPES::N_UNDF is set