Typedefs
Public Members
Typedefs
Functions
Wrapper for LIEF::ELF::Parser::parse
Update LIEF::ELF::Header object
LIEF::ELF::Binary C Handler
Public Members
Typedefs
Typedefs
Typedefs
Typedefs
Public Members
Defines
Enums
e_ident size and indices.
Values:
File identification index.
File identification index.
File identification index.
File identification index.
File class.
Data encoding.
File version.
OS/ABI identification.
ABI version.
Start of padding bytes.
Number of bytes in e_ident.
Enum associated with e_type
Values:
No file type
Relocatable file
Executable file
Shared object file
Core file
Beginning of processor-specific codes
Processor-specific
Versioning
Values:
Default value
Machine architectures See current registered ELF machine architectures at: http://www.sco.com/developers/gabi/latest/ch4.eheader.html.
Values:
No machine
AT&T WE 32100
SPARC
Intel 386
Motorola 68000
Motorola 88000
Intel MCU
Intel 80860
MIPS R3000
IBM System/370
MIPS RS3000 Little-endian
Hewlett-Packard PA-RISC
Fujitsu VPP500
Enhanced instruction set SPARC
Intel 80960
PowerPC
PowerPC64
IBM System/390
IBM SPU/SPC
NEC V800
Fujitsu FR20
TRW RH-32
Motorola RCE
ARM
DEC Alpha
Hitachi SH
SPARC V9
Siemens TriCore
Argonaut RISC Core
Hitachi H8/300
Hitachi H8/300H
Hitachi H8S
Hitachi H8/500
Intel IA-64 processor architecture
Stanford MIPS-X
Motorola ColdFire
Motorola M68HC12
Fujitsu MMA Multimedia Accelerator
Siemens PCP
Sony nCPU embedded RISC processor
Denso NDR1 microprocessor
Motorola Star*Core processor
Toyota ME16 processor
STMicroelectronics ST100 processor
Advanced Logic Corp. TinyJ embedded processor family
AMD x86-64 architecture
Sony DSP Processor
Digital Equipment Corp. PDP-10
Digital Equipment Corp. PDP-11
Siemens FX66 microcontroller
STMicroelectronics ST9+ 8/16 bit microcontroller
STMicroelectronics ST7 8-bit microcontroller
Motorola MC68HC16 Microcontroller
Motorola MC68HC11 Microcontroller
Motorola MC68HC08 Microcontroller
Motorola MC68HC05 Microcontroller
Silicon Graphics SVx
STMicroelectronics ST19 8-bit microcontroller
Digital VAX
Axis Communications 32-bit embedded processor
Infineon Technologies 32-bit embedded processor
Element 14 64-bit DSP Processor
LSI Logic 16-bit DSP Processor
Donald Knuth’s educational 64-bit processor
Harvard University machine-independent object files
SiTera Prism
Atmel AVR 8-bit microcontroller
Fujitsu FR30
Mitsubishi D10V
Mitsubishi D30V
NEC v850
Mitsubishi M32R
Matsushita MN10300
Matsushita MN10200
picoJava
OpenRISC 32-bit embedded processor
ARC International ARCompact processor (old spelling/synonym: EM_ARC_A5
Tensilica Xtensa Architecture
Alphamosaic VideoCore processor
Thompson Multimedia General Purpose Processor
National Semiconductor 32000 series
Tenor Network TPC processor
Trebia SNP 1000 processor
STMicroelectronics (www.st.com ST200
Ubicom IP2xxx microcontroller family
MAX Processor
National Semiconductor CompactRISC microprocessor
Fujitsu F2MC16
Texas Instruments embedded microcontroller msp430
Analog Devices Blackfin (DSP processor
S1C33 Family of Seiko Epson processors
Sharp embedded microprocessor
Arca RISC Microprocessor
Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University
eXcess: 16/32/64-bit configurable embedded CPU
Icera Semiconductor Inc. Deep Execution Processor
Altera Nios II soft-core processor
National Semiconductor CompactRISC CRX
Motorola XGATE embedded processor
Infineon C16x/XC16x processor
Renesas M16C series microprocessors
Microchip Technology dsPIC30F Digital Signal
Freescale Communication Engine RISC core
Renesas M32C series microprocessors
Altium TSK3000 core
Freescale RS08 embedded processor
Analog Devices SHARC family of 32-bit DSP
Cyan Technology eCOG2 microprocessor
Sunplus S+core7 RISC processor
New Japan Radio (NJR 24-bit DSP Processor
Broadcom VideoCore III processor
RISC processor for Lattice FPGA architecture
Seiko Epson C17 family
The Texas Instruments TMS320C6000 DSP family
The Texas Instruments TMS320C2000 DSP family
The Texas Instruments TMS320C55x DSP family
STMicroelectronics 64bit VLIW Data Signal Processor
Cypress M8C microprocessor
Renesas R32C series microprocessors
NXP Semiconductors TriMedia architecture family
Qualcomm Hexagon processor
Intel 8051 and variants
STMicroelectronics STxP7x family of configurable
Cyan Technology eCOG1X family
Cyan Technology eCOG1X family
Dallas Semiconductor MAXQ30 Core Micro-controllers
New Japan Radio (NJR 16-bit DSP Processor
M2000 Reconfigurable RISC Microprocessor
Cray Inc. NV2 vector architecture
Renesas RX family
Imagination Technologies META processor
MCST Elbrus general purpose hardware architecture
Cyan Technology eCOG16 family
National Semiconductor CompactRISC CR16 16-bit
Freescale Extended Time Processing Unit
Infineon Technologies SLE9X core
Intel L10M
Intel K10M
ARM AArch64
Atmel Corporation 32-bit microprocessor family
STMicroeletronics STM8 8-bit microcontroller
Tilera TILE64 multicore architecture family
Tilera TILEPro multicore architecture family
NVIDIA CUDA architecture
Tilera TILE-Gx multicore architecture family
CloudShield architecture family
KIPO-KAIST Core-A 1st generation processor family
KIPO-KAIST Core-A 2nd generation processor family
Synopsys ARCompact V2
Open8 8-bit RISC soft processor core
Renesas RL78 family
Broadcom VideoCore V processor
Renesas 78KOR family
Freescale 56800EX Digital Signal Controller (DSC
Beyond BA1 CPU architecture
Beyond BA2 CPU architecture
XMOS xCORE processor family
Microchip 8-bit PIC(r family
Reserved by Intel
Reserved by Intel
Reserved by Intel
Reserved by Intel
Reserved by Intel
KM211 KM32 32-bit processor
KM211 KMX32 32-bit processor
KM211 KMX16 16-bit processor
KM211 KMX8 8-bit processor
KM211 KVARC processor
Paneve CDP architecture family
Cognitive Smart Memory Processor
iCelero CoolEngine
Nanoradio Optimized RISC
CSR Kalimba architecture family
AMD GPU architecture
RISC-V
eBPF Filter
LoongArch
Object file classes.
Values:
Unknown
32-bit object file
64-bit object file
Object file byte orderings.
Values:
Invalid data encoding.
Little-endian object file
Big-endian object file
OS ABI identification.
Values:
UNIX System V ABI
HP-UX operating system
NetBSD
GNU/Linux
Historical alias for ELFOSABI_GNU.
GNU/Hurd
Solaris
AIX
IRIX
FreeBSD
TRU64 UNIX
Novell Modesto
OpenBSD
OpenVMS
Hewlett-Packard Non-Stop Kernel
AROS
FenixOS
Nuxi CloudABI
Bare-metal TMS320C6000
AMD HSA runtime
Linux TMS320C6000
ARM
Standalone (embedded application
x86_64 relocations.
Values:
i386 relocations.
Values:
Values:
Values:
Values:
Values:
Values:
Values:
Values:
Values:
Values:
Values:
Values:
Values:
Values:
Special section indices.
Values:
Undefined, missing, irrelevant, or meaningless
Lowest reserved index
Lowest processor-specific index
Highest processor-specific index
Lowest operating system-specific index
Highest operating system-specific index
Symbol has absolute value; does not need relocation
FORTRAN COMMON or C external global variables
Mark that the index is >= SHN_LORESERVE
Highest reserved index
Section types.
Values:
No associated section (inactive entry.
Program-defined contents.
Symbol table.
String table.
Relocation entries; explicit addends.
Symbol hash table.
Information for dynamic linking.
Information about the file.
Data occupies no space in the file.
Relocation entries; no explicit addends.
Reserved.
Symbol table.
Pointers to initialization functions.
Pointers to termination functions.
Pointers to pre-init functions.
Section group.
Indices for SHN_XINDEX entries.
Lowest operating system-specific type.
Packed relocations (Android specific.
Packed relocations (Android specific.
This section is used to mark symbols as address-significant.
New relr relocations (Android specific.
Object attributes.
GNU-style hash table.
GNU version definitions.
GNU version references.
GNU symbol versions table.
Highest operating system-specific type.
Lowest processor arch-specific type.
Exception Index table
BPABI DLL dynamic linking pre-emption map
Object file compatibility attributes
Link editor is to sort the entries in
Unwind information
Register usage information
General options
ABI information.
Highest processor arch-specific type.
Lowest type reserved for applications.
Highest type reserved for applications.
Section flags.
Values:
Section data should be writable during execution.
Section occupies memory during program execution.
Section contains executable machine instructions.
The data in this section may be merged.
The data in this section is null-terminated strings.
A field in this section holds a section header table index.
Adds special ordering requirements for link editors.
This section requires special OS-specific processing to avoid incorrect behavior
This section is a member of a section group.
This section holds Thread-Local Storage.
This section is excluded from the final executable or shared library.
Bits indicating processor-specific flags.
Linker must generate implicit hidden weak names.
Section data local to process.
Do not strip this section.
Section must be part of global data area.
This section should be merged.
Address size to be inferred from section entry size.
Section data is string data by default.
Symbol bindings.
Values:
Local symbol, not visible outside obj file containing def
Global symbol, visible to all object files being combined
Weak symbol, like global but lower-precedence
Lowest operating system-specific binding type
Highest operating system-specific binding type
Lowest processor-specific binding type
Highest processor-specific binding type
Values:
Values:
Segment types.
Values:
Unused segment.
Loadable segment.
Dynamic linking information.
Interpreter pathname.
Auxiliary information.
Reserved.
The program header table itself.
The thread-local storage template.
Lowest operating system-specific pt entry type.
Highest operating system-specific pt entry type.
Lowest processor-specific program hdr entry type.
Highest processor-specific program hdr entry type.
Indicates stack executability.
GNU property
Read-only after relocation.
Platform architecture compatibility info
Register usage information.
Runtime procedure table.
Options segment.
Abiflags segment.
Segment flags.
Values:
Execute
Write
Read
Bits for operating system-specific semantics.
Bits for processor-specific semantics.
Dynamic table entry tags.
Values:
Marks end of dynamic array.
String table offset of needed library.
Size of relocation entries in PLT.
Address associated with linkage table.
Address of symbolic hash table.
Address of dynamic string table.
Address of dynamic symbol table.
Address of relocation table (Rela entries.
Size of Rela relocation table.
Size of a Rela relocation entry.
Total size of the string table.
Size of a symbol table entry.
Address of initialization function.
Address of termination function.
String table offset of a shared objects name.
String table offset of library search path.
Changes symbol resolution algorithm.
Address of relocation table (Rel entries.
Size of Rel relocation table.
Size of a Rel relocation entry.
Type of relocation entry used for linking.
Reserved for debugger.
Relocations exist for non-writable segments.
Address of relocations associated with PLT.
Process all relocations before execution.
Pointer to array of initialization functions.
Pointer to array of termination functions.
Size of DT_INIT_ARRAY.
Size of DT_FINI_ARRAY.
String table offset of lib search path.
Flags.
Values from here to DT_LOOS follow the rules for the interpretation of the d_un union.
Pointer to array of preinit functions.
Size of the DT_PREINIT_ARRAY array.
Start of environment specific tags.
End of environment specific tags.
Start of processor specific tags.
End of processor specific tags.
Reference to the GNU hash table.
ELF32_Rela count.
ELF32_Rel count.
Flags_1.
The address of .gnu.version section.
The address of the version definition table.
The number of entries in DT_VERDEF.
The address of the version Dependency table.
The number of entries in DT_VERNEED.
32 bit version number for runtime linker interface.
Time stamp.
Checksum of external strings and common sizes.
Index of version string in string table.
32 bits of flags.
Base address of the segment.
Address of .msym section.
Address of .conflict section.
Address of .liblist section.
Number of local global offset table entries.
Number of entries in the .conflict section.
Number of entries in the .liblist section.
Number of entries in the .dynsym section.
Index of first external dynamic symbol not referenced locally.
Index of first dynamic symbol in global offset table.
Number of page table entries in global offset table.
Address of run time loader map, used for debugging.
Delta C++ class definition.
Number of entries in DT_MIPS_DELTA_CLASS.
Delta C++ class instances.
Number of entries in DT_MIPS_DELTA_INSTANCE.
Delta relocations.
Number of entries in DT_MIPS_DELTA_RELOC.
Delta symbols that Delta relocations refer to.
Number of entries in DT_MIPS_DELTA_SYM.
Delta symbols that hold class declarations.
Number of entries in DT_MIPS_DELTA_CLASSSYM.
Flags indicating information about C++ flavor.
Pixie information.
Address of .MIPS.symlib
The GOT index of the first PTE for a segment
The GOT index of the first PTE for a local symbol
The GOT index of the first PTE for a hidden symbol
The GOT index of the first PTE for a protected symbol
Address of .MIPS.options.
Address of .interface.
Unknown.
Size of the .interface section.
Size of rld_text_resolve function stored in the GOT.
Default suffix of DSO to be added by rld on dlopen( calls.
Size of compact relocation section (O32.
GP value for auxiliary GOTs.
Address of auxiliary .dynamic.
Address of the base of the PLTGOT.
Points to the base of a writable PLT.
The offset of packed relocation data (older version < M) (Android specific.
The size of packed relocation data in bytes (older version < M) (Android specific.
The offset of packed relocation data (Android specific.
The size of packed relocation data in bytes (Android specific.
The offset of packed relocation data (Android specific.
The size of packed relocation data in bytes (Android specific.
The offset of new relr relocation data (Android specific.
The size of nre relr relocation data in bytes (Android specific.
The size of a new relr relocation entry (Android specific.
Specifies the relative count of new relr relocation entries (Android specific.
DT_FLAGS and DT_FLAGS_1 values.
Values:
The object may reference $ORIGIN.
Search the shared lib before searching the exe.
Relocations may modify a non-writable segment.
Process all relocations on load.
Reject attempts to load dynamically.
Values:
Set RTLD_NOW for this object.
Set RTLD_GLOBAL for this object.
Set RTLD_GROUP for this object.
Set RTLD_NODELETE for this object.
Trigger filtee loading at runtime.
Set RTLD_INITFIRST for this object.
Set RTLD_NOOPEN for this object.
$ORIGIN must be handled.
Direct binding enabled.
Object is used to interpose.
Ignore default lib search path.
Object can’t be dldump’ed.
Configuration alternative created.
Filtee terminates filters search.
Disp reloc applied at build time.
Disp reloc applied at run-time.
Object has no-direct binding.
Object is modified after built.
Object has individual interposers.
Global auditing required.
Singleton symbols are used.
Singleton symbols are used.
Values:
ElfXX_VerDef structure version (GNU versioning)
Values:
VerDef Flags (ElfXX_VerDef::vd_flags)
Values:
Special constants for the version table. (SHT_GNU_versym/.gnu.version)
Values:
Unversioned local symbol
Unversioned global symbol
Version Index mask
Hidden bit (non-default version
ElfXX_VerNeed structure version (GNU versioning)
Values:
Values:
End of vector
Entry should be ignored
File descriptor of program
Program headers for program
Size of program header entry
Number of program headers
System page size
Base address of interpreter
Flags
Entry point of program
Program is not ELF
Real uid
Effective uid
Real gid
Effective gid
Frequency of times(
String identifying platform.
Machine dependent hints about processor capabilities.
Used FPU control word.
Data cache block size.
Instruction cache block size.
Unified cache block size.
Entry should be ignored.
Boolean, was exec setuid-like?
String identifying real platforms.
Address of 16 random bytes.
Extension of AT_HWCAP.
Filename of executable.
Methods that can be used by the LIEF::ELF::Parser to count the number of dynamic symbols
Values:
Automatic detection
Count based on sections (not very reliable
Count based on hash table (reliable
Count based on PLT/GOT relocations (very reliable but not accurate
Values:
Values:
Values:
Functions
Check if the given file is an ELF one.