LIEF: Library to Instrument Executable Formats Version 0.14.0
|
Namespace related to the LIEF's ELF module. More...
Classes | |
class | AndroidNote |
Class representing the ".note.android.ident" section. More... | |
class | Binary |
Class which represents an ELF binary. More... | |
class | Builder |
Class which takes an ELF::Binary object and reconstructs a valid binary. More... | |
class | CoreAuxv |
Class representing core Auxv object. More... | |
class | CoreFile |
Class representing core PrPsInfo object. More... | |
struct | CoreFileEntry |
Core file entry. More... | |
class | CorePrPsInfo |
Class representing core PrPsInfo object. More... | |
class | CorePrStatus |
Class representing core PrPsInfo object. More... | |
class | CoreSigInfo |
Class representing core siginfo object. More... | |
class | DynamicEntry |
Class which represents an entry in the dynamic table These entries are located in the .dynamic section or the PT_DYNAMIC segment. More... | |
class | DynamicEntryArray |
Class that represent an Array in the dynamic table. This entry is associated with constructors: More... | |
class | DynamicEntryFlags |
class | DynamicEntryLibrary |
Class which represents a DT_NEEDED entry in the dynamic table. More... | |
class | DynamicEntryRpath |
Class which represents a DT_RPATH entry. This attribute is deprecated (cf. man ld ) in favour of DT_RUNPATH (See DynamicRunPath) More... | |
class | DynamicEntryRunPath |
Class that represents a DT_RUNPATH wich is used by the loader to resolve libraries (DynamicEntryLibrary). More... | |
class | DynamicSharedObject |
Class which represents a DT_SONAME entry in the dynamic table This kind of entry is usually used no name the original library. More... | |
class | GnuHash |
Class which provides a view over the GNU Hash implementation. Most of the fields are read-only since the values are re-computed by the LIEF::ELF::Builder. More... | |
class | Hash |
Class which implements a visitor to compute a deterministic hash for LIEF ELF objects. More... | |
class | Header |
Class which represents the ELF's header. This is the ELF structure that starts an ELF file. More... | |
class | Note |
Class which represents an ELF note. More... | |
class | NoteAbi |
Class representing the .note.android.ident section. More... | |
class | NoteDetails |
class | Parser |
Class which parses and transforms an ELF file into a ELF::Binary object. More... | |
struct | ParserConfig |
This structure is used to tweak the ELF Parser (ELF::Parser) More... | |
class | Relocation |
Class that represents an ELF relocation. More... | |
class | Section |
Class wich represents an ELF Section. More... | |
class | Segment |
Class which represents the ELF segments. More... | |
class | Symbol |
Class which represents an ELF symbol. More... | |
class | SymbolVersion |
Class which represents an entry defined in the DT_VERSYM dynamic entry. More... | |
class | SymbolVersionAux |
Class which represents an Auxiliary Symbol version. More... | |
class | SymbolVersionAuxRequirement |
class | SymbolVersionDefinition |
Class which represents an entry defined in DT_VERDEF or .gnu.version_d More... | |
class | SymbolVersionRequirement |
Class which represents an entry in the DT_VERNEED or .gnu.version_r table. More... | |
class | SysvHash |
Class which represents the SYSV hash for the symbols resolution. More... | |
Enumerations | |
enum class | IDENTITY : size_t { EI_MAG0 = 0 , EI_MAG1 = 1 , EI_MAG2 = 2 , EI_MAG3 = 3 , EI_CLASS = 4 , EI_DATA = 5 , EI_VERSION = 6 , EI_OSABI = 7 , EI_ABIVERSION = 8 , EI_PAD = 9 , EI_NIDENT = 16 } |
enum class | E_TYPE : size_t { ET_NONE = 0 , ET_REL = 1 , ET_EXEC = 2 , ET_DYN = 3 , ET_CORE = 4 , ET_LOPROC = 0xff00 , ET_HIPROC = 0xffff } |
enum class | VERSION : size_t { EV_NONE = 0 , EV_CURRENT = 1 } |
enum class | ARCH : size_t { EM_NONE = 0 , EM_M32 = 1 , EM_SPARC = 2 , EM_386 = 3 , EM_68K = 4 , EM_88K = 5 , EM_IAMCU = 6 , EM_860 = 7 , EM_MIPS = 8 , EM_S370 = 9 , EM_MIPS_RS3_LE = 10 , EM_PARISC = 15 , EM_VPP500 = 17 , EM_SPARC32PLUS = 18 , EM_960 = 19 , EM_PPC = 20 , EM_PPC64 = 21 , EM_S390 = 22 , EM_SPU = 23 , EM_V800 = 36 , EM_FR20 = 37 , EM_RH32 = 38 , EM_RCE = 39 , EM_ARM = 40 , EM_ALPHA = 41 , EM_SH = 42 , EM_SPARCV9 = 43 , EM_TRICORE = 44 , EM_ARC = 45 , EM_H8_300 = 46 , EM_H8_300H = 47 , EM_H8S = 48 , EM_H8_500 = 49 , EM_IA_64 = 50 , EM_MIPS_X = 51 , EM_COLDFIRE = 52 , EM_68HC12 = 53 , EM_MMA = 54 , EM_PCP = 55 , EM_NCPU = 56 , EM_NDR1 = 57 , EM_STARCORE = 58 , EM_ME16 = 59 , EM_ST100 = 60 , EM_TINYJ = 61 , EM_X86_64 = 62 , EM_PDSP = 63 , EM_PDP10 = 64 , EM_PDP11 = 65 , EM_FX66 = 66 , EM_ST9PLUS = 67 , EM_ST7 = 68 , EM_68HC16 = 69 , EM_68HC11 = 70 , EM_68HC08 = 71 , EM_68HC05 = 72 , EM_SVX = 73 , EM_ST19 = 74 , EM_VAX = 75 , EM_CRIS = 76 , EM_JAVELIN = 77 , EM_FIREPATH = 78 , EM_ZSP = 79 , EM_MMIX = 80 , EM_HUANY = 81 , EM_PRISM = 82 , EM_AVR = 83 , EM_FR30 = 84 , EM_D10V = 85 , EM_D30V = 86 , EM_V850 = 87 , EM_M32R = 88 , EM_MN10300 = 89 , EM_MN10200 = 90 , EM_PJ = 91 , EM_OPENRISC = 92 , EM_ARC_COMPACT = 93 , EM_XTENSA = 94 , EM_VIDEOCORE = 95 , EM_TMM_GPP = 96 , EM_NS32K = 97 , EM_TPC = 98 , EM_SNP1K = 99 , EM_ST200 = 100 , EM_IP2K = 101 , EM_MAX = 102 , EM_CR = 103 , EM_F2MC16 = 104 , EM_MSP430 = 105 , EM_BLACKFIN = 106 , EM_SE_C33 = 107 , EM_SEP = 108 , EM_ARCA = 109 , EM_UNICORE = 110 , EM_EXCESS = 111 , EM_DXP = 112 , EM_ALTERA_NIOS2 = 113 , EM_CRX = 114 , EM_XGATE = 115 , EM_C166 = 116 , EM_M16C = 117 , EM_DSPIC30F = 118 , EM_CE = 119 , EM_M32C = 120 , EM_TSK3000 = 131 , EM_RS08 = 132 , EM_SHARC = 133 , EM_ECOG2 = 134 , EM_SCORE7 = 135 , EM_DSP24 = 136 , EM_VIDEOCORE3 = 137 , EM_LATTICEMICO32 = 138 , EM_SE_C17 = 139 , EM_TI_C6000 = 140 , EM_TI_C2000 = 141 , EM_TI_C5500 = 142 , EM_MMDSP_PLUS = 160 , EM_CYPRESS_M8C = 161 , EM_R32C = 162 , EM_TRIMEDIA = 163 , EM_HEXAGON = 164 , EM_8051 = 165 , EM_STXP7X = 166 , EM_NDS32 = 167 , EM_ECOG1 = 168 , EM_ECOG1X = 168 , EM_MAXQ30 = 169 , EM_XIMO16 = 170 , EM_MANIK = 171 , EM_CRAYNV2 = 172 , EM_RX = 173 , EM_METAG = 174 , EM_MCST_ELBRUS = 175 , EM_ECOG16 = 176 , EM_CR16 = 177 , EM_ETPU = 178 , EM_SLE9X = 179 , EM_L10M = 180 , EM_K10M = 181 , EM_AARCH64 = 183 , EM_AVR32 = 185 , EM_STM8 = 186 , EM_TILE64 = 187 , EM_TILEPRO = 188 , EM_CUDA = 190 , EM_TILEGX = 191 , EM_CLOUDSHIELD = 192 , EM_COREA_1ST = 193 , EM_COREA_2ND = 194 , EM_ARC_COMPACT2 = 195 , EM_OPEN8 = 196 , EM_RL78 = 197 , EM_VIDEOCORE5 = 198 , EM_78KOR = 199 , EM_56800EX = 200 , EM_BA1 = 201 , EM_BA2 = 202 , EM_XCORE = 203 , EM_MCHP_PIC = 204 , EM_INTEL205 = 205 , EM_INTEL206 = 206 , EM_INTEL207 = 207 , EM_INTEL208 = 208 , EM_INTEL209 = 209 , EM_KM32 = 210 , EM_KMX32 = 211 , EM_KMX16 = 212 , EM_KMX8 = 213 , EM_KVARC = 214 , EM_CDP = 215 , EM_COGE = 216 , EM_COOL = 217 , EM_NORC = 218 , EM_CSR_KALIMBA = 219 , EM_AMDGPU = 224 , EM_RISCV = 243 , EM_BPF = 247 , EM_LOONGARCH = 258 } |
Machine architectures See current registered ELF machine architectures at: http://www.sco.com/developers/gabi/latest/ch4.eheader.html. More... | |
enum class | ELF_CLASS : size_t { ELFCLASSNONE = 0 , ELFCLASS32 = 1 , ELFCLASS64 = 2 } |
enum class | ELF_DATA : size_t { ELFDATANONE = 0 , ELFDATA2LSB = 1 , ELFDATA2MSB = 2 } |
enum class | OS_ABI : size_t { ELFOSABI_SYSTEMV = 0 , ELFOSABI_HPUX = 1 , ELFOSABI_NETBSD = 2 , ELFOSABI_GNU = 3 , ELFOSABI_LINUX = 3 , ELFOSABI_HURD = 4 , ELFOSABI_SOLARIS = 6 , ELFOSABI_AIX = 7 , ELFOSABI_IRIX = 8 , ELFOSABI_FREEBSD = 9 , ELFOSABI_TRU64 = 10 , ELFOSABI_MODESTO = 11 , ELFOSABI_OPENBSD = 12 , ELFOSABI_OPENVMS = 13 , ELFOSABI_NSK = 14 , ELFOSABI_AROS = 15 , ELFOSABI_FENIXOS = 16 , ELFOSABI_CLOUDABI = 17 , ELFOSABI_C6000_ELFABI = 64 , ELFOSABI_AMDGPU_HSA = 64 , ELFOSABI_C6000_LINUX = 65 , ELFOSABI_ARM = 97 , ELFOSABI_STANDALONE = 255 } |
enum class | RELOC_x86_64 : size_t |
enum | RELOC_i386 |
enum class | RELOC_POWERPC32 : size_t |
enum class | RELOC_POWERPC64 : size_t |
enum class | RELOC_AARCH64 : size_t |
enum class | RELOC_ARM : size_t |
enum class | RELOC_MIPS : size_t |
enum class | RELOC_HEXAGON : size_t |
enum class | RELOC_SYSTEMZ : size_t |
enum class | RELOC_SPARC : size_t |
enum class | RELOC_LOONGARCH : size_t |
enum class | PPC64_EFLAGS : size_t { EF_PPC64_ABI = 3 } |
enum class | ARM_EFLAGS : size_t { EF_ARM_SOFT_FLOAT = 0x00000200U , EF_ARM_VFP_FLOAT = 0x00000400U , EF_ARM_EABI_UNKNOWN = 0x00000000U , EF_ARM_EABI_VER1 = 0x01000000U , EF_ARM_EABI_VER2 = 0x02000000U , EF_ARM_EABI_VER3 = 0x03000000U , EF_ARM_EABI_VER4 = 0x04000000U , EF_ARM_EABI_VER5 = 0x05000000U , EF_ARM_EABIMASK = 0xFF000000U } |
enum class | MIPS_EFLAGS : size_t { EF_MIPS_NOREORDER = 0x00000001 , EF_MIPS_PIC = 0x00000002 , EF_MIPS_CPIC = 0x00000004 , EF_MIPS_ABI2 = 0x00000020 , EF_MIPS_32BITMODE = 0x00000100 , EF_MIPS_FP64 = 0x00000200 , EF_MIPS_NAN2008 = 0x00000400 , EF_MIPS_ABI_O32 = 0x00001000 , EF_MIPS_ABI_O64 = 0x00002000 , EF_MIPS_ABI_EABI32 = 0x00003000 , EF_MIPS_ABI_EABI64 = 0x00004000 , EF_MIPS_ABI = 0x0000f000 , EF_MIPS_MACH_3900 = 0x00810000 , EF_MIPS_MACH_4010 = 0x00820000 , EF_MIPS_MACH_4100 = 0x00830000 , EF_MIPS_MACH_4650 = 0x00850000 , EF_MIPS_MACH_4120 = 0x00870000 , EF_MIPS_MACH_4111 = 0x00880000 , EF_MIPS_MACH_SB1 = 0x008a0000 , EF_MIPS_MACH_OCTEON = 0x008b0000 , EF_MIPS_MACH_XLR = 0x008c0000 , EF_MIPS_MACH_OCTEON2 = 0x008d0000 , EF_MIPS_MACH_OCTEON3 = 0x008e0000 , EF_MIPS_MACH_5400 = 0x00910000 , EF_MIPS_MACH_5900 = 0x00920000 , EF_MIPS_MACH_5500 = 0x00980000 , EF_MIPS_MACH_9000 = 0x00990000 , EF_MIPS_MACH_LS2E = 0x00a00000 , EF_MIPS_MACH_LS2F = 0x00a10000 , EF_MIPS_MACH_LS3A = 0x00a20000 , EF_MIPS_MACH = 0x00ff0000 , EF_MIPS_MICROMIPS = 0x02000000 , EF_MIPS_ARCH_ASE_M16 = 0x04000000 , EF_MIPS_ARCH_ASE_MDMX = 0x08000000 , EF_MIPS_ARCH_ASE = 0x0f000000 , EF_MIPS_ARCH_1 = 0x00000000 , EF_MIPS_ARCH_2 = 0x10000000 , EF_MIPS_ARCH_3 = 0x20000000 , EF_MIPS_ARCH_4 = 0x30000000 , EF_MIPS_ARCH_5 = 0x40000000 , EF_MIPS_ARCH_32 = 0x50000000 , EF_MIPS_ARCH_64 = 0x60000000 , EF_MIPS_ARCH_32R2 = 0x70000000 , EF_MIPS_ARCH_64R2 = 0x80000000 , EF_MIPS_ARCH_32R6 = 0x90000000 , EF_MIPS_ARCH_64R6 = 0xa0000000 , EF_MIPS_ARCH = 0xf0000000 } |
enum class | HEXAGON_EFLAGS : size_t { EF_HEXAGON_MACH_V2 = 0x00000001 , EF_HEXAGON_MACH_V3 = 0x00000002 , EF_HEXAGON_MACH_V4 = 0x00000003 , EF_HEXAGON_MACH_V5 = 0x00000004 , EF_HEXAGON_ISA_MACH = 0x00000000 , EF_HEXAGON_ISA_V2 = 0x00000010 , EF_HEXAGON_ISA_V3 = 0x00000020 , EF_HEXAGON_ISA_V4 = 0x00000030 , EF_HEXAGON_ISA_V5 = 0x00000040 } |
enum class | LOONGARCH_EFLAGS : size_t { EF_LOONGARCH_ABI_SOFT_FLOAT = 0x1 , EF_LOONGARCH_ABI_SINGLE_FLOAT = 0x2 , EF_LOONGARCH_ABI_DOUBLE_FLOAT = 0x3 } |
enum class | SYMBOL_SECTION_INDEX : size_t { SHN_UNDEF = 0 , SHN_LORESERVE = 0xff00 , SHN_LOPROC = 0xff00 , SHN_HIPROC = 0xff1f , SHN_LOOS = 0xff20 , SHN_HIOS = 0xff3f , SHN_ABS = 0xfff1 , SHN_COMMON = 0xfff2 , SHN_XINDEX = 0xffff , SHN_HIRESERVE = 0xffff } |
enum class | ELF_SECTION_TYPES : size_t { SHT_NULL = 0 , SHT_PROGBITS = 1 , SHT_SYMTAB = 2 , SHT_STRTAB = 3 , SHT_RELA = 4 , SHT_HASH = 5 , SHT_DYNAMIC = 6 , SHT_NOTE = 7 , SHT_NOBITS = 8 , SHT_REL = 9 , SHT_SHLIB = 10 , SHT_DYNSYM = 11 , SHT_INIT_ARRAY = 14 , SHT_FINI_ARRAY = 15 , SHT_PREINIT_ARRAY = 16 , SHT_GROUP = 17 , SHT_SYMTAB_SHNDX = 18 , SHT_LOOS = 0x60000000 , SHT_ANDROID_REL = 0x60000001 , SHT_ANDROID_RELA = 0x60000002 , SHT_LLVM_ADDRSIG = 0x6fff4c03 , SHT_RELR = 0x6fffff00 , SHT_GNU_ATTRIBUTES = 0x6ffffff5 , SHT_GNU_HASH = 0x6ffffff6 , SHT_GNU_verdef = 0x6ffffffd , SHT_GNU_verneed = 0x6ffffffe , SHT_GNU_versym = 0x6fffffff , SHT_HIOS = 0x6fffffff , SHT_LOPROC = 0x70000000 , SHT_ARM_EXIDX = 0x70000001U , SHT_ARM_PREEMPTMAP = 0x70000002U , SHT_ARM_ATTRIBUTES = 0x70000003U , SHT_ARM_DEBUGOVERLAY = 0x70000004U , SHT_ARM_OVERLAYSECTION = 0x70000005U , SHT_HEX_ORDERED = 0x70000000 , SHT_X86_64_UNWIND = 0x70000001 , SHT_MIPS_REGINFO = 0x70000006 , SHT_MIPS_OPTIONS = 0x7000000d , SHT_MIPS_ABIFLAGS = 0x7000002a , SHT_HIPROC = 0x7fffffff , SHT_LOUSER = 0x80000000 , SHT_HIUSER = 0xffffffff } |
enum class | ELF_SECTION_FLAGS : size_t { SHF_NONE = 0x0 , SHF_WRITE = 0x1 , SHF_ALLOC = 0x2 , SHF_EXECINSTR = 0x4 , SHF_MERGE = 0x10 , SHF_STRINGS = 0x20 , SHF_INFO_LINK = 0x40U , SHF_LINK_ORDER = 0x80U , SHF_OS_NONCONFORMING = 0x100U , SHF_GROUP = 0x200U , SHF_TLS = 0x400U , SHF_EXCLUDE = 0x80000000U , XCORE_SHF_CP_SECTION = 0x800U , XCORE_SHF_DP_SECTION = 0x1000U , SHF_MASKOS = 0x0ff00000 , SHF_MASKPROC = 0xf0000000 , SHF_X86_64_LARGE = 0x10000000 , SHF_HEX_GPREL = 0x10000000 , SHF_MIPS_NODUPES = 0x01000000 , SHF_MIPS_NAMES = 0x02000000 , SHF_MIPS_LOCAL = 0x04000000 , SHF_MIPS_NOSTRIP = 0x08000000 , SHF_MIPS_GPREL = 0x10000000 , SHF_MIPS_MERGE = 0x20000000 , SHF_MIPS_ADDR = 0x40000000 , SHF_MIPS_STRING = 0x80000000 } |
enum class | SYMBOL_BINDINGS : size_t { STB_LOCAL = 0 , STB_GLOBAL = 1 , STB_WEAK = 2 , STB_GNU_UNIQUE = 10 , STB_LOOS = 10 , STB_HIOS = 12 , STB_LOPROC = 13 , STB_HIPROC = 15 } |
enum class | ELF_SYMBOL_TYPES : size_t { STT_NOTYPE = 0 , STT_OBJECT = 1 , STT_FUNC = 2 , STT_SECTION = 3 , STT_FILE = 4 , STT_COMMON = 5 , STT_TLS = 6 , STT_GNU_IFUNC = 10 , STT_LOOS = 10 , STT_HIOS = 12 , STT_LOPROC = 13 , STT_HIPROC = 15 } |
enum class | ELF_SYMBOL_VISIBILITY : size_t { STV_DEFAULT = 0 , STV_INTERNAL = 1 , STV_HIDDEN = 2 , STV_PROTECTED = 3 } |
enum class | SEGMENT_TYPES : size_t { PT_NULL = 0 , PT_LOAD = 1 , PT_DYNAMIC = 2 , PT_INTERP = 3 , PT_NOTE = 4 , PT_SHLIB = 5 , PT_PHDR = 6 , PT_TLS = 7 , PT_LOOS = 0x60000000 , PT_HIOS = 0x6fffffff , PT_LOPROC = 0x70000000 , PT_HIPROC = 0x7fffffff , PT_GNU_EH_FRAME = 0x6474e550 , PT_SUNW_EH_FRAME = 0x6474e550 , PT_SUNW_UNWIND = 0x6464e550 , PT_GNU_STACK = 0x6474e551 , PT_GNU_PROPERTY = 0x6474e553 , PT_GNU_RELRO = 0x6474e552 , PT_ARM_ARCHEXT = 0x70000000 , PT_ARM_EXIDX = 0x70000001 , PT_ARM_UNWIND = 0x70000001 , PT_MIPS_REGINFO = 0x70000000 , PT_MIPS_RTPROC = 0x70000001 , PT_MIPS_OPTIONS = 0x70000002 , PT_MIPS_ABIFLAGS = 0x70000003 } |
Segment types. More... | |
enum class | ELF_SEGMENT_FLAGS : size_t { PF_NONE = 0 , PF_X = 1 , PF_W = 2 , PF_R = 4 , PF_MASKOS = 0x0ff00000 , PF_MASKPROC = 0xf0000000 } |
enum class | DYNAMIC_TAGS : size_t { DT_NULL = 0 , DT_NEEDED = 1 , DT_PLTRELSZ = 2 , DT_PLTGOT = 3 , DT_HASH = 4 , DT_STRTAB = 5 , DT_SYMTAB = 6 , DT_RELA = 7 , DT_RELASZ = 8 , DT_RELAENT = 9 , DT_STRSZ = 10 , DT_SYMENT = 11 , DT_INIT = 12 , DT_FINI = 13 , DT_SONAME = 14 , DT_RPATH = 15 , DT_SYMBOLIC = 16 , DT_REL = 17 , DT_RELSZ = 18 , DT_RELENT = 19 , DT_PLTREL = 20 , DT_DEBUG = 21 , DT_TEXTREL = 22 , DT_JMPREL = 23 , DT_BIND_NOW = 24 , DT_INIT_ARRAY = 25 , DT_FINI_ARRAY = 26 , DT_INIT_ARRAYSZ = 27 , DT_FINI_ARRAYSZ = 28 , DT_RUNPATH = 29 , DT_FLAGS = 30 , DT_ENCODING = 32 , DT_PREINIT_ARRAY = 32 , DT_PREINIT_ARRAYSZ = 33 , DT_SYMTAB_SHNDX = 34 , DT_RELRSZ = 35 , DT_RELR = 36 , DT_RELRENT = 37 , DT_LOOS = 0x60000000 , DT_HIOS = 0x6FFFFFFF , DT_LOPROC = 0x70000000 , DT_HIPROC = 0x7FFFFFFF , DT_GNU_HASH = 0x6FFFFEF5 , DT_RELACOUNT = 0x6FFFFFF9 , DT_RELCOUNT = 0x6FFFFFFA , DT_FLAGS_1 = 0x6FFFFFFB , DT_VERSYM = 0x6FFFFFF0 , DT_VERDEF = 0x6FFFFFFC , DT_VERDEFNUM = 0x6FFFFFFD , DT_VERNEED = 0x6FFFFFFE , DT_VERNEEDNUM = 0x6FFFFFFF , DT_MIPS_RLD_VERSION = 0x70000001 , DT_MIPS_TIME_STAMP = 0x70000002 , DT_MIPS_ICHECKSUM = 0x70000003 , DT_MIPS_IVERSION = 0x70000004 , DT_MIPS_FLAGS = 0x70000005 , DT_MIPS_BASE_ADDRESS = 0x70000006 , DT_MIPS_MSYM = 0x70000007 , DT_MIPS_CONFLICT = 0x70000008 , DT_MIPS_LIBLIST = 0x70000009 , DT_MIPS_LOCAL_GOTNO = 0x7000000a , DT_MIPS_CONFLICTNO = 0x7000000b , DT_MIPS_LIBLISTNO = 0x70000010 , DT_MIPS_SYMTABNO = 0x70000011 , DT_MIPS_UNREFEXTNO = 0x70000012 , DT_MIPS_GOTSYM = 0x70000013 , DT_MIPS_HIPAGENO = 0x70000014 , DT_MIPS_RLD_MAP = 0x70000016 , DT_MIPS_DELTA_CLASS = 0x70000017 , DT_MIPS_DELTA_CLASS_NO = 0x70000018 , DT_MIPS_DELTA_INSTANCE = 0x70000019 , DT_MIPS_DELTA_INSTANCE_NO = 0x7000001A , DT_MIPS_DELTA_RELOC = 0x7000001B , DT_MIPS_DELTA_RELOC_NO = 0x7000001C , DT_MIPS_DELTA_SYM = 0x7000001D , DT_MIPS_DELTA_SYM_NO = 0x7000001E , DT_MIPS_DELTA_CLASSSYM = 0x70000020 , DT_MIPS_DELTA_CLASSSYM_NO = 0x70000021 , DT_MIPS_CXX_FLAGS = 0x70000022 , DT_MIPS_PIXIE_INIT = 0x70000023 , DT_MIPS_SYMBOL_LIB = 0x70000024 , DT_MIPS_LOCALPAGE_GOTIDX = 0x70000025 , DT_MIPS_LOCAL_GOTIDX = 0x70000026 , DT_MIPS_HIDDEN_GOTIDX = 0x70000027 , DT_MIPS_PROTECTED_GOTIDX = 0x70000028 , DT_MIPS_OPTIONS = 0x70000029 , DT_MIPS_INTERFACE = 0x7000002A , DT_MIPS_DYNSTR_ALIGN = 0x7000002B , DT_MIPS_INTERFACE_SIZE = 0x7000002C , DT_MIPS_RLD_TEXT_RESOLVE_ADDR = 0x7000002D , DT_MIPS_PERF_SUFFIX = 0x7000002E , DT_MIPS_COMPACT_SIZE = 0x7000002F , DT_MIPS_GP_VALUE = 0x70000030 , DT_MIPS_AUX_DYNAMIC = 0x70000031 , DT_MIPS_PLTGOT = 0x70000032 , DT_MIPS_RWPLT = 0x70000034 , DT_ANDROID_REL_OFFSET = 0x6000000D , DT_ANDROID_REL_SIZE = 0x6000000E , DT_ANDROID_REL = 0x6000000F , DT_ANDROID_RELSZ = 0x60000010 , DT_ANDROID_RELA = 0x60000011 , DT_ANDROID_RELASZ = 0x60000012 , DT_ANDROID_RELR = 0x6FFFE000 , DT_ANDROID_RELRSZ = 0x6FFFE001 , DT_ANDROID_RELRENT = 0x6FFFE003 , DT_ANDROID_RELRCOUNT = 0x6FFFE005 } |
enum class | DYNAMIC_FLAGS : size_t { DF_ORIGIN = 0x00000001 , DF_SYMBOLIC = 0x00000002 , DF_TEXTREL = 0x00000004 , DF_BIND_NOW = 0x00000008 , DF_STATIC_TLS = 0x00000010 } |
enum class | DYNAMIC_FLAGS_1 : size_t { DF_1_NOW = 0x00000001 , DF_1_GLOBAL = 0x00000002 , DF_1_GROUP = 0x00000004 , DF_1_NODELETE = 0x00000008 , DF_1_LOADFLTR = 0x00000010 , DF_1_INITFIRST = 0x00000020 , DF_1_NOOPEN = 0x00000040 , DF_1_ORIGIN = 0x00000080 , DF_1_DIRECT = 0x00000100 , DF_1_TRANS = 0x00000200 , DF_1_INTERPOSE = 0x00000400 , DF_1_NODEFLIB = 0x00000800 , DF_1_NODUMP = 0x00001000 , DF_1_CONFALT = 0x00002000 , DF_1_ENDFILTEE = 0x00004000 , DF_1_DISPRELDNE = 0x00008000 , DF_1_DISPRELPND = 0x00010000 , DF_1_NODIRECT = 0x00020000 , DF_1_IGNMULDEF = 0x00040000 , DF_1_NOKSYMS = 0x00080000 , DF_1_NOHDR = 0x00100000 , DF_1_EDITED = 0x00200000 , DF_1_NORELOC = 0x00400000 , DF_1_SYMINTPOSE = 0x00800000 , DF_1_GLOBAUDIT = 0x01000000 , DF_1_SINGLETON = 0x02000000 , DF_1_PIE = 0x08000000 } |
enum | { RHF_NONE = 0x00000000 , RHF_QUICKSTART = 0x00000001 , RHF_NOTPOT = 0x00000002 , RHS_NO_LIBRARY_REPLACEMENT = 0x00000004 , RHF_NO_MOVE = 0x00000008 , RHF_SGI_ONLY = 0x00000010 , RHF_GUARANTEE_INIT = 0x00000020 , RHF_DELTA_C_PLUS_PLUS = 0x00000040 , RHF_GUARANTEE_START_INIT = 0x00000080 , RHF_PIXIE = 0x00000100 , RHF_DEFAULT_DELAY_LOAD = 0x00000200 , RHF_REQUICKSTART = 0x00000400 , RHF_REQUICKSTARTED = 0x00000800 , RHF_CORD = 0x00001000 , RHF_NO_UNRES_UNDEF = 0x00002000 , RHF_RLD_ORDER_SAFE = 0x00004000 } |
enum | { VER_DEF_NONE = 0 , VER_DEF_CURRENT = 1 } |
enum | { VER_FLG_BASE = 0x1 , VER_FLG_WEAK = 0x2 , VER_FLG_INFO = 0x4 } |
enum | { VER_NDX_LOCAL = 0 , VER_NDX_GLOBAL = 1 , VERSYM_VERSION = 0x7fff , VERSYM_HIDDEN = 0x8000 } |
enum | { VER_NEED_NONE = 0 , VER_NEED_CURRENT = 1 } |
enum class | AUX_TYPE : size_t { AT_NULL = 0 , AT_IGNORE = 1 , AT_EXECFD = 2 , AT_PHDR = 3 , AT_PHENT = 4 , AT_PHNUM = 5 , AT_PAGESZ = 6 , AT_BASE = 7 , AT_FLAGS = 8 , AT_ENTRY = 9 , AT_NOTELF = 10 , AT_UID = 11 , AT_EUID = 12 , AT_GID = 13 , AT_EGID = 14 , AT_CLKTCK = 17 , AT_PLATFORM = 15 , AT_HWCAP = 16 , AT_FPUCW = 18 , AT_DCACHEBSIZE = 19 , AT_ICACHEBSIZE = 20 , AT_UCACHEBSIZE = 21 , AT_IGNOREPPC = 22 , AT_SECURE = 23 , AT_BASE_PLATFORM = 24 , AT_RANDOM = 25 , AT_HWCAP2 = 26 , AT_EXECFN = 31 , AT_SYSINFO = 32 , AT_SYSINFO_EHDR = 33 , AT_L1I_CACHESHAPE = 34 , AT_L1D_CACHESHAPE = 35 , AT_L2_CACHESHAPE = 36 , AT_L3_CACHESHAPE = 37 } |
enum class | DYNSYM_COUNT_METHODS : size_t { COUNT_AUTO = 0 , COUNT_SECTION = 1 , COUNT_HASH = 2 , COUNT_RELOCATIONS = 3 } |
enum class | NOTE_TYPES : size_t { NT_UNKNOWN = 0 , NT_GNU_ABI_TAG = 1 , NT_GNU_HWCAP = 2 , NT_GNU_BUILD_ID = 3 , NT_GNU_GOLD_VERSION = 4 , NT_GNU_PROPERTY_TYPE_0 = 5 , NT_GNU_BUILD_ATTRIBUTE_OPEN = 0x100 , NT_GNU_BUILD_ATTRIBUTE_FUNC = 0x101 , NT_CRASHPAD = 0x4f464e49 } |
enum class | NOTE_TYPES_CORE : size_t { NT_CORE_UNKNOWN = 0 , NT_PRSTATUS = 1 , NT_PRFPREG = 2 , NT_PRPSINFO = 3 , NT_TASKSTRUCT = 4 , NT_AUXV = 6 , NT_SIGINFO = 0x53494749 , NT_FILE = 0x46494c45 , NT_PRXFPREG = 0x46e62b7f , NT_ARM_VFP = 0x400 , NT_ARM_TLS = 0x401 , NT_ARM_HW_BREAK = 0x402 , NT_ARM_HW_WATCH = 0x403 , NT_ARM_SYSTEM_CALL = 0x404 , NT_ARM_SVE = 0x405 , NT_386_TLS = 0x200 , NT_386_IOPERM = 0x201 , NT_386_XSTATE = 0x202 } |
enum class | NOTE_ABIS : size_t { ELF_NOTE_UNKNOWN = ~(unsigned int)(0) , ELF_NOTE_OS_LINUX = 0 , ELF_NOTE_OS_GNU = 1 , ELF_NOTE_OS_SOLARIS2 = 2 , ELF_NOTE_OS_FREEBSD = 3 , ELF_NOTE_OS_NETBSD = 4 , ELF_NOTE_OS_SYLLABLE = 5 } |
enum class | RELOCATION_PURPOSES : size_t { RELOC_PURPOSE_NONE = 0 , RELOC_PURPOSE_PLTGOT = 1 , RELOC_PURPOSE_DYNAMIC = 2 , RELOC_PURPOSE_OBJECT = 3 } |
Functions | |
const char * | to_string (SYMBOL_BINDINGS e) |
const char * | to_string (E_TYPE e) |
const char * | to_string (VERSION e) |
const char * | to_string (ARCH e) |
const char * | to_string (SEGMENT_TYPES e) |
const char * | to_string (DYNAMIC_TAGS e) |
const char * | to_string (ELF_SECTION_TYPES e) |
const char * | to_string (ELF_SECTION_FLAGS e) |
const char * | to_string (ELF_SYMBOL_TYPES e) |
const char * | to_string (RELOC_x86_64 e) |
const char * | to_string (RELOC_ARM e) |
const char * | to_string (RELOC_i386 e) |
const char * | to_string (RELOC_AARCH64 e) |
const char * | to_string (RELOC_POWERPC32 e) |
const char * | to_string (RELOC_POWERPC64 e) |
const char * | to_string (RELOC_MIPS e) |
const char * | to_string (ELF_CLASS e) |
const char * | to_string (ELF_DATA e) |
const char * | to_string (OS_ABI e) |
const char * | to_string (DYNSYM_COUNT_METHODS e) |
const char * | to_string (NOTE_TYPES e) |
const char * | to_string (NOTE_TYPES_CORE e) |
const char * | to_string (NOTE_ABIS e) |
const char * | to_string (RELOCATION_PURPOSES e) |
const char * | to_string (IDENTITY e) |
const char * | to_string (SYMBOL_SECTION_INDEX e) |
const char * | to_string (DYNAMIC_FLAGS e) |
const char * | to_string (DYNAMIC_FLAGS_1 e) |
const char * | to_string (ELF_SEGMENT_FLAGS e) |
const char * | to_string (ELF_SYMBOL_VISIBILITY e) |
const char * | to_string (AUX_TYPE e) |
const char * | to_string (PPC64_EFLAGS e) |
const char * | to_string (ARM_EFLAGS e) |
const char * | to_string (MIPS_EFLAGS e) |
const char * | to_string (HEXAGON_EFLAGS e) |
const char * | to_string (LOONGARCH_EFLAGS e) |
const char * | to_string (RELOC_LOONGARCH e) |
std::string | to_json (const Object &v) |
const char * | to_string (CorePrStatus::REGISTERS e) |
int32_t | get_reloc_size (RELOC_x86_64 R) |
int32_t | get_reloc_size (RELOC_i386 R) |
int32_t | get_reloc_size (RELOC_ARM R) |
int32_t | get_reloc_size (RELOC_AARCH64 R) |
int32_t | get_reloc_size (RELOC_POWERPC32 R) |
int32_t | get_reloc_size (RELOC_POWERPC64 R) |
int32_t | get_reloc_size (RELOC_MIPS R) |
int32_t | get_reloc_size (RELOC_LOONGARCH R) |
bool | is_elf (BinaryStream &stream) |
Check if given stream wraps an ELF file. | |
bool | is_elf (const std::string &file) |
Check if the given file is an ELF one. | |
bool | is_elf (const std::vector< uint8_t > &raw) |
check if the raw data is a ELF file | |
unsigned long | hash32 (const char *name) |
unsigned long | hash64 (const char *name) |
uint32_t | dl_new_hash (const char *name) |
anonymous enum |
ElfXX_VerDef structure version (GNU versioning)
anonymous enum |
VerDef Flags (ElfXX_VerDef::vd_flags)
anonymous enum |
anonymous enum |
ElfXX_VerNeed structure version (GNU versioning)
|
strong |
Machine architectures See current registered ELF machine architectures at: http://www.sco.com/developers/gabi/latest/ch4.eheader.html.
|
strong |
Enumerator | |
---|---|
AT_NULL | End of vector |
AT_IGNORE | Entry should be ignored |
AT_EXECFD | File descriptor of program |
AT_PHDR | Program headers for program |
AT_PHENT | Size of program header entry |
AT_PHNUM | Number of program headers |
AT_PAGESZ | System page size |
AT_BASE | Base address of interpreter |
AT_FLAGS | Flags |
AT_ENTRY | Entry point of program |
AT_NOTELF | Program is not ELF |
AT_UID | Real uid |
AT_EUID | Effective uid |
AT_GID | Real gid |
AT_EGID | Effective gid |
AT_CLKTCK | Frequency of times() |
AT_PLATFORM | String identifying platform. |
AT_HWCAP | Machine dependent hints about processor capabilities. |
AT_FPUCW | Used FPU control word. |
AT_DCACHEBSIZE | Data cache block size. |
AT_ICACHEBSIZE | Instruction cache block size. |
AT_UCACHEBSIZE | Unified cache block size. |
AT_IGNOREPPC | Entry should be ignored. |
AT_SECURE | Boolean, was exec setuid-like? |
AT_BASE_PLATFORM | String identifying real platforms. |
AT_RANDOM | Address of 16 random bytes. |
AT_HWCAP2 | Extension of AT_HWCAP. |
AT_EXECFN | Filename of executable. |
|
strong |
|
strong |
Enumerator | |
---|---|
DF_1_NOW | Set RTLD_NOW for this object. |
DF_1_GLOBAL | Set RTLD_GLOBAL for this object. |
DF_1_GROUP | Set RTLD_GROUP for this object. |
DF_1_NODELETE | Set RTLD_NODELETE for this object. |
DF_1_LOADFLTR | Trigger filtee loading at runtime. |
DF_1_INITFIRST | Set RTLD_INITFIRST for this object. |
DF_1_NOOPEN | Set RTLD_NOOPEN for this object. |
DF_1_ORIGIN | $ORIGIN must be handled. |
DF_1_DIRECT | Direct binding enabled. |
DF_1_INTERPOSE | Object is used to interpose. |
DF_1_NODEFLIB | Ignore default lib search path. |
DF_1_NODUMP | Object can't be dldump'ed. |
DF_1_CONFALT | Configuration alternative created. |
DF_1_ENDFILTEE | Filtee terminates filters search. |
DF_1_DISPRELDNE | Disp reloc applied at build time. |
DF_1_DISPRELPND | Disp reloc applied at run-time. |
DF_1_NODIRECT | Object has no-direct binding. |
DF_1_EDITED | Object is modified after built. |
DF_1_SYMINTPOSE | Object has individual interposers. |
DF_1_GLOBAUDIT | Global auditing required. |
DF_1_SINGLETON | Singleton symbols are used. |
DF_1_PIE | Singleton symbols are used. |
|
strong |
Dynamic table entry tags.
|
strong |
Methods that can be used by the LIEF::ELF::Parser to count the number of dynamic symbols
|
strong |
|
strong |
Object file classes.
Enumerator | |
---|---|
ELFCLASSNONE | Unknown |
ELFCLASS32 | 32-bit object file |
ELFCLASS64 | 64-bit object file |
|
strong |
Object file byte orderings.
Enumerator | |
---|---|
ELFDATANONE | Invalid data encoding. |
ELFDATA2LSB | Little-endian object file |
ELFDATA2MSB | Big-endian object file |
|
strong |
Section flags.
Enumerator | |
---|---|
SHF_WRITE | Section data should be writable during execution. |
SHF_ALLOC | Section occupies memory during program execution. |
SHF_EXECINSTR | Section contains executable machine instructions. |
SHF_MERGE | The data in this section may be merged. |
SHF_STRINGS | The data in this section is null-terminated strings. |
SHF_INFO_LINK | A field in this section holds a section header table index. |
SHF_LINK_ORDER | Adds special ordering requirements for link editors. |
SHF_OS_NONCONFORMING | This section requires special OS-specific processing to avoid incorrect behavior |
SHF_GROUP | This section is a member of a section group. |
SHF_TLS | This section holds Thread-Local Storage. |
SHF_EXCLUDE | This section is excluded from the final executable or shared library. |
SHF_MASKPROC | Bits indicating processor-specific flags. |
SHF_MIPS_NAMES | Linker must generate implicit hidden weak names. |
SHF_MIPS_LOCAL | Section data local to process. |
SHF_MIPS_NOSTRIP | Do not strip this section. |
SHF_MIPS_GPREL | Section must be part of global data area. |
SHF_MIPS_MERGE | This section should be merged. |
SHF_MIPS_ADDR | Address size to be inferred from section entry size. |
SHF_MIPS_STRING | Section data is string data by default. |
|
strong |
Section types.
Enumerator | |
---|---|
SHT_NULL | No associated section (inactive entry). |
SHT_PROGBITS | Program-defined contents. |
SHT_SYMTAB | Symbol table. |
SHT_STRTAB | String table. |
SHT_RELA | Relocation entries; explicit addends. |
SHT_HASH | Symbol hash table. |
SHT_DYNAMIC | Information for dynamic linking. |
SHT_NOTE | Information about the file. |
SHT_NOBITS | Data occupies no space in the file. |
SHT_REL | Relocation entries; no explicit addends. |
SHT_SHLIB | Reserved. |
SHT_DYNSYM | Symbol table. |
SHT_INIT_ARRAY | Pointers to initialization functions. |
SHT_FINI_ARRAY | Pointers to termination functions. |
SHT_PREINIT_ARRAY | Pointers to pre-init functions. |
SHT_GROUP | Section group. |
SHT_SYMTAB_SHNDX | Indices for SHN_XINDEX entries. |
SHT_LOOS | Lowest operating system-specific type. |
SHT_ANDROID_REL | Packed relocations (Android specific). |
SHT_ANDROID_RELA | Packed relocations (Android specific). |
SHT_LLVM_ADDRSIG | This section is used to mark symbols as address-significant. |
SHT_RELR | New relr relocations (Android specific). |
SHT_GNU_ATTRIBUTES | Object attributes. |
SHT_GNU_HASH | GNU-style hash table. |
SHT_GNU_verdef | GNU version definitions. |
SHT_GNU_verneed | GNU version references. |
SHT_GNU_versym | GNU symbol versions table. |
SHT_HIOS | Highest operating system-specific type. |
SHT_LOPROC | Lowest processor arch-specific type. |
SHT_ARM_EXIDX | Exception Index table |
SHT_ARM_PREEMPTMAP | BPABI DLL dynamic linking pre-emption map |
SHT_ARM_ATTRIBUTES | Object file compatibility attributes |
SHT_HEX_ORDERED | Link editor is to sort the entries in |
SHT_X86_64_UNWIND | Unwind information |
SHT_MIPS_REGINFO | Register usage information |
SHT_MIPS_OPTIONS | General options |
SHT_MIPS_ABIFLAGS | ABI information. |
SHT_HIPROC | Highest processor arch-specific type. |
SHT_LOUSER | Lowest type reserved for applications. |
SHT_HIUSER | Highest type reserved for applications. |
|
strong |
Segment flags.
Enumerator | |
---|---|
PF_X | Execute |
PF_W | Write |
PF_R | Read |
PF_MASKOS | Bits for operating system-specific semantics. |
PF_MASKPROC | Bits for processor-specific semantics. |
|
strong |
e_ident size and indices.
|
strong |
OS ABI identification.
i386 relocations.
|
strong |
x86_64 relocations.
|
strong |
Segment types.
|
strong |
Symbol bindings.
|
strong |
Special section indices.
Enumerator | |
---|---|
SHN_UNDEF | Undefined, missing, irrelevant, or meaningless |
SHN_LORESERVE | Lowest reserved index |
SHN_LOPROC | Lowest processor-specific index |
SHN_HIPROC | Highest processor-specific index |
SHN_LOOS | Lowest operating system-specific index |
SHN_HIOS | Highest operating system-specific index |
SHN_ABS | Symbol has absolute value; does not need relocation |
SHN_COMMON | FORTRAN COMMON or C external global variables |
SHN_XINDEX | Mark that the index is >= SHN_LORESERVE |
SHN_HIRESERVE | Highest reserved index |
|
strong |