LIEF: Library to Instrument Executable Formats Version 0.16.0
|
Class that represents the LC_DYSYMTAB command. More...
#include <DynamicSymbolCommand.hpp>
Public Types | |
using | indirect_symbols_t = std::vector<Symbol*> |
Container for the indirect symbols references (owned by MachO::Binary) | |
using | it_indirect_symbols = ref_iterator<indirect_symbols_t&> |
Iterator for the indirect symbols referenced by this command. | |
using | it_const_indirect_symbols = const_ref_iterator<const indirect_symbols_t&> |
Public Types inherited from LIEF::MachO::LoadCommand | |
enum class | TYPE : uint64_t { UNKNOWN = 0 , SEGMENT = 0x00000001u , SYMTAB = 0x00000002u , SYMSEG = 0x00000003u , THREAD = 0x00000004u , UNIXTHREAD = 0x00000005u , LOADFVMLIB = 0x00000006u , IDFVMLIB = 0x00000007u , IDENT = 0x00000008u , FVMFILE = 0x00000009u , PREPAGE = 0x0000000Au , DYSYMTAB = 0x0000000Bu , LOAD_DYLIB = 0x0000000Cu , ID_DYLIB = 0x0000000Du , LOAD_DYLINKER = 0x0000000Eu , ID_DYLINKER = 0x0000000Fu , PREBOUND_DYLIB = 0x00000010u , ROUTINES = 0x00000011u , SUB_FRAMEWORK = 0x00000012u , SUB_UMBRELLA = 0x00000013u , SUB_CLIENT = 0x00000014u , SUB_LIBRARY = 0x00000015u , TWOLEVEL_HINTS = 0x00000016u , PREBIND_CKSUM = 0x00000017u , LOAD_WEAK_DYLIB = 0x80000018u , SEGMENT_64 = 0x00000019u , ROUTINES_64 = 0x0000001Au , UUID = 0x0000001Bu , RPATH = 0x8000001Cu , CODE_SIGNATURE = 0x0000001Du , SEGMENT_SPLIT_INFO = 0x0000001Eu , REEXPORT_DYLIB = 0x8000001Fu , LAZY_LOAD_DYLIB = 0x00000020u , ENCRYPTION_INFO = 0x00000021u , DYLD_INFO = 0x00000022u , DYLD_INFO_ONLY = 0x80000022u , LOAD_UPWARD_DYLIB = 0x80000023u , VERSION_MIN_MACOSX = 0x00000024u , VERSION_MIN_IPHONEOS = 0x00000025u , FUNCTION_STARTS = 0x00000026u , DYLD_ENVIRONMENT = 0x00000027u , MAIN = 0x80000028u , DATA_IN_CODE = 0x00000029u , SOURCE_VERSION = 0x0000002Au , DYLIB_CODE_SIGN_DRS = 0x0000002Bu , ENCRYPTION_INFO_64 = 0x0000002Cu , LINKER_OPTION = 0x0000002Du , LINKER_OPTIMIZATION_HINT = 0x0000002Eu , VERSION_MIN_TVOS = 0x0000002Fu , VERSION_MIN_WATCHOS = 0x00000030u , NOTE = 0x00000031u , BUILD_VERSION = 0x00000032u , DYLD_EXPORTS_TRIE = 0x80000033u , DYLD_CHAINED_FIXUPS = 0x80000034u , FILESET_ENTRY = 0x80000035u , LIEF_UNKNOWN = 0xffee0001u } |
using | raw_t = std::vector<uint8_t> |
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 | |
DynamicSymbolCommand () | |
DynamicSymbolCommand (const details::dysymtab_command &cmd) | |
DynamicSymbolCommand & | operator= (const DynamicSymbolCommand ©)=default |
DynamicSymbolCommand (const DynamicSymbolCommand ©)=default | |
std::unique_ptr< LoadCommand > | clone () const override |
~DynamicSymbolCommand () override=default | |
void | accept (Visitor &visitor) const override |
std::ostream & | print (std::ostream &os) const override |
uint32_t | idx_local_symbol () const |
Index of the first symbol in the group of local symbols. | |
uint32_t | nb_local_symbols () const |
Number of symbols in the group of local symbols. | |
uint32_t | idx_external_define_symbol () const |
Index of the first symbol in the group of defined external symbols. | |
uint32_t | nb_external_define_symbols () const |
Number of symbols in the group of defined external symbols. | |
uint32_t | idx_undefined_symbol () const |
Index of the first symbol in the group of undefined external symbols. | |
uint32_t | nb_undefined_symbols () const |
Number of symbols in the group of undefined external symbols. | |
uint32_t | toc_offset () const |
Byte offset from the start of the file to the table of contents data. | |
uint32_t | nb_toc () const |
Number of entries in the table of contents. | |
uint32_t | module_table_offset () const |
Byte offset from the start of the file to the module table data. | |
uint32_t | nb_module_table () const |
Number of entries in the module table. | |
uint32_t | external_reference_symbol_offset () const |
Byte offset from the start of the file to the external reference table data. | |
uint32_t | nb_external_reference_symbols () const |
Number of entries in the external reference table. | |
uint32_t | indirect_symbol_offset () const |
Byte offset from the start of the file to the indirect symbol table data. | |
uint32_t | nb_indirect_symbols () const |
Number of entries in the indirect symbol table. | |
uint32_t | external_relocation_offset () const |
Byte offset from the start of the file to the external relocation table data. | |
uint32_t | nb_external_relocations () const |
Number of entries in the external relocation table. | |
uint32_t | local_relocation_offset () const |
Byte offset from the start of the file to the local relocation table data. | |
uint32_t | nb_local_relocations () const |
Number of entries in the local relocation table. | |
void | idx_local_symbol (uint32_t value) |
void | nb_local_symbols (uint32_t value) |
void | idx_external_define_symbol (uint32_t value) |
void | nb_external_define_symbols (uint32_t value) |
void | idx_undefined_symbol (uint32_t value) |
void | nb_undefined_symbols (uint32_t value) |
void | toc_offset (uint32_t value) |
void | nb_toc (uint32_t value) |
void | module_table_offset (uint32_t value) |
void | nb_module_table (uint32_t value) |
void | external_reference_symbol_offset (uint32_t value) |
void | nb_external_reference_symbols (uint32_t value) |
void | indirect_symbol_offset (uint32_t value) |
void | nb_indirect_symbols (uint32_t value) |
void | external_relocation_offset (uint32_t value) |
void | nb_external_relocations (uint32_t value) |
void | local_relocation_offset (uint32_t value) |
void | nb_local_relocations (uint32_t value) |
it_indirect_symbols | indirect_symbols () |
Iterator over the indirect symbols indexed by this command. | |
it_const_indirect_symbols | indirect_symbols () const |
Public Member Functions inherited from LIEF::MachO::LoadCommand | |
LoadCommand ()=default | |
LoadCommand (const details::load_command &command) | |
LoadCommand (LoadCommand::TYPE type, uint32_t size) | |
LoadCommand & | operator= (const LoadCommand ©)=default |
LoadCommand (const LoadCommand ©)=default | |
void | swap (LoadCommand &other) noexcept |
~LoadCommand () override=default | |
LoadCommand::TYPE | command () const |
Command type. | |
uint32_t | size () const |
Size of the command (should be greather than sizeof(load_command) ) | |
span< const uint8_t > | data () const |
Raw command. | |
uint64_t | command_offset () const |
Offset of the command within the Load Command Table | |
void | data (raw_t data) |
void | command (LoadCommand::TYPE command) |
void | size (uint32_t size) |
void | command_offset (uint64_t offset) |
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 LoadCommand *cmd) |
Static Public Member Functions inherited from LIEF::MachO::LoadCommand | |
static bool | is_linkedit_data (const LoadCommand &cmd) |
Class that represents the LC_DYSYMTAB command.
This command completes the LC_SYMTAB (SymbolCommand) to provide a better granularity over the symbols layout.
using LIEF::MachO::DynamicSymbolCommand::indirect_symbols_t = std::vector<Symbol*> |
Container for the indirect symbols references (owned by MachO::Binary)
using LIEF::MachO::DynamicSymbolCommand::it_const_indirect_symbols = const_ref_iterator<const indirect_symbols_t&> |
Iterator for the indirect symbols referenced by this command.
LIEF::MachO::DynamicSymbolCommand::DynamicSymbolCommand | ( | ) |
LIEF::MachO::DynamicSymbolCommand::DynamicSymbolCommand | ( | const details::dysymtab_command & | cmd | ) |
|
default |
|
overridedefault |
|
overridevirtual |
Implements LIEF::Object.
|
inlinestatic |
References LIEF::MachO::LoadCommand::command().
|
inlineoverridevirtual |
Reimplemented from LIEF::MachO::LoadCommand.
|
inline |
Byte offset from the start of the file to the external reference table data.
This field seems unused by recent Mach-O loader and should be set to 0
|
inline |
|
inline |
Byte offset from the start of the file to the external relocation table data.
This field seems unused by recent Mach-O loader and should be set to 0
|
inline |
|
inline |
Index of the first symbol in the group of defined external symbols.
|
inline |
|
inline |
Index of the first symbol in the group of local symbols.
|
inline |
|
inline |
Index of the first symbol in the group of undefined external symbols.
|
inline |
|
inline |
Byte offset from the start of the file to the indirect symbol table data.
Indirect symbol table is used by the loader to speed-up symbol resolution during the lazy binding process
References:
|
inline |
|
inline |
Iterator over the indirect symbols indexed by this command.
|
inline |
|
inline |
Byte offset from the start of the file to the local relocation table data.
This field seems unused by recent Mach-O loader and should be set to 0
|
inline |
|
inline |
Byte offset from the start of the file to the module table data.
This field seems unused by recent Mach-O loader and should be set to 0
|
inline |
|
inline |
Number of symbols in the group of defined external symbols.
|
inline |
|
inline |
Number of entries in the external reference table.
This field seems unused by recent Mach-O loader and should be set to 0
|
inline |
|
inline |
Number of entries in the external relocation table.
This field seems unused by recent Mach-O loader and should be set to 0
|
inline |
|
inline |
Number of entries in the indirect symbol table.
|
inline |
|
inline |
Number of entries in the local relocation table.
This field seems unused by recent Mach-O loader and should be set to 0
|
inline |
|
inline |
Number of symbols in the group of local symbols.
|
inline |
|
inline |
Number of entries in the module table.
This field seems unused by recent Mach-O loader and should be set to 0
|
inline |
|
inline |
Number of entries in the table of contents.
Should be set to 0 on recent Mach-O
|
inline |
|
inline |
Number of symbols in the group of undefined external symbols.
|
inline |
|
default |
|
overridevirtual |
Reimplemented from LIEF::MachO::LoadCommand.
|
inline |
Byte offset from the start of the file to the table of contents data.
Table of content is used by legacy Mach-O loader and this field should be set to 0
|
inline |