ELF

Typedefs

typedef struct Elf_Header_t Elf_Header_t
struct Elf_Header_t

Public Members

uint8_t identity[LIEF_EI_NIDENT]
uint32_t file_type
uint32_t machine_type
uint32_t object_file_version
uint64_t entrypoint
uint64_t program_headers_offset
uint64_t section_headers_offset
uint32_t processor_flags
uint32_t header_size
uint32_t program_header_size
uint32_t numberof_segments
uint32_t section_header_size
uint32_t numberof_sections
uint32_t name_string_table_idx

Typedefs

typedef struct Elf_Binary_t Elf_Binary_t

Functions

Elf_Binary_t *elf_parse(const char *file)

Wrapper for LIEF::ELF::Parser::parse

void elf_binary_destroy(Elf_Binary_t *binary)
int elf_binary_save_header(Elf_Binary_t *binary)

Update LIEF::ELF::Header object

struct Elf_Binary_t
#include <Binary.h>

LIEF::ELF::Binary C Handler

Public Members

void *handler
const char *interpreter
uint32_t type
Elf_Header_t header
Elf_Section_t **sections
Elf_Segment_t **segments
Elf_DynamicEntry_t **dynamic_entries
Elf_Symbol_t **dynamic_symbols
Elf_Symbol_t **symtab_symbols

Typedefs

typedef struct Elf_Section_t Elf_Section_t
struct Elf_Section_t

Public Members

const char *name
uint32_t flags
uint32_t type
uint64_t virtual_address
uint64_t offset
uint64_t original_size
uint32_t info
uint64_t alignment
uint64_t entry_size
uint64_t size
uint8_t *content
double entropy

Typedefs

typedef struct Elf_Segment_t Elf_Segment_t
struct Elf_Segment_t

Public Members

uint32_t type
uint32_t flags
uint64_t virtual_address
uint64_t virtual_size
uint64_t offset
uint64_t alignment
uint64_t size
uint8_t *content

Typedefs

typedef struct Elf_Symbol_t Elf_Symbol_t
struct Elf_Symbol_t

Public Members

const char *name
uint32_t type
uint32_t binding
uint8_t information
uint8_t other
uint16_t shndx
uint64_t value
uint64_t size
bool is_exported

Whether or not the symbol is exported

bool is_imported

Whether or not the symbol is imported

Typedefs

typedef struct Elf_DynamicEntry_t Elf_DynamicEntry_t
typedef struct Elf_DynamicEntry_Library_t Elf_DynamicEntry_Library_t
typedef struct Elf_DynamicEntry_SharedObject_t Elf_DynamicEntry_SharedObject_t
typedef struct Elf_DynamicEntry_Array_t Elf_DynamicEntry_Array_t
typedef struct Elf_DynamicEntry_Rpath_t Elf_DynamicEntry_Rpath_t
typedef struct Elf_DynamicEntry_RunPath_t Elf_DynamicEntry_RunPath_t
typedef struct Elf_DynamicEntry_Flags_t Elf_DynamicEntry_Flags_t
struct Elf_DynamicEntry_t

Public Members

uint64_t tag
uint64_t value
struct Elf_DynamicEntry_Library_t

Public Members

uint64_t tag
uint64_t value
const char *name
struct Elf_DynamicEntry_SharedObject_t

Public Members

uint64_t tag
uint64_t value
const char *name
struct Elf_DynamicEntry_Array_t

Public Members

uint64_t tag
uint64_t value
uint64_t *array
struct Elf_DynamicEntry_Rpath_t

Public Members

uint64_t tag
uint64_t value
const char *rpath
struct Elf_DynamicEntry_RunPath_t

Public Members

uint64_t tag
uint64_t value
const char *runpath
struct Elf_DynamicEntry_Flags_t

Public Members

uint64_t tag
uint64_t value

Defines

ELF_RELOC(name, value)

Enums

enum LIEF_IDENTITY

e_ident size and indices.

Values:

enumerator LIEF_EI_MAG0 = 0

File identification index.

enumerator LIEF_EI_MAG1 = 1

File identification index.

enumerator LIEF_EI_MAG2 = 2

File identification index.

enumerator LIEF_EI_MAG3 = 3

File identification index.

enumerator LIEF_EI_CLASS = 4

File class.

enumerator LIEF_EI_DATA = 5

Data encoding.

enumerator LIEF_EI_VERSION = 6

File version.

enumerator LIEF_EI_OSABI = 7

OS/ABI identification.

enumerator LIEF_EI_ABIVERSION = 8

ABI version.

enumerator LIEF_EI_PAD = 9

Start of padding bytes.

enumerator LIEF_EI_NIDENT = 16

Number of bytes in e_ident.

enum LIEF_E_TYPE

Enum associated with e_type

Values:

enumerator LIEF_ET_NONE = 0

No file type

enumerator LIEF_ET_REL = 1

Relocatable file

enumerator LIEF_ET_EXEC = 2

Executable file

enumerator LIEF_ET_DYN = 3

Shared object file

enumerator LIEF_ET_CORE = 4

Core file

enumerator LIEF_ET_LOPROC = 0xff00

Beginning of processor-specific codes

enumerator LIEF_ET_HIPROC = 0xffff

Processor-specific

enum LIEF_VERSION

Versioning

Values:

enumerator LIEF_EV_NONE = 0
enumerator LIEF_EV_CURRENT = 1

Default value

enum LIEF_ARCH

Machine architectures See current registered ELF machine architectures at: http://www.sco.com/developers/gabi/latest/ch4.eheader.html.

Values:

enumerator LIEF_EM_NONE = 0

No machine

enumerator LIEF_EM_M32 = 1

AT&T WE 32100

enumerator LIEF_EM_SPARC = 2

SPARC

enumerator LIEF_EM_386 = 3

Intel 386

enumerator LIEF_EM_68K = 4

Motorola 68000

enumerator LIEF_EM_88K = 5

Motorola 88000

enumerator LIEF_EM_IAMCU = 6

Intel MCU

enumerator LIEF_EM_860 = 7

Intel 80860

enumerator LIEF_EM_MIPS = 8

MIPS R3000

enumerator LIEF_EM_S370 = 9

IBM System/370

enumerator LIEF_EM_MIPS_RS3_LE = 10

MIPS RS3000 Little-endian

enumerator LIEF_EM_PARISC = 15

Hewlett-Packard PA-RISC

enumerator LIEF_EM_VPP500 = 17

Fujitsu VPP500

enumerator LIEF_EM_SPARC32PLUS = 18

Enhanced instruction set SPARC

enumerator LIEF_EM_960 = 19

Intel 80960

enumerator LIEF_EM_PPC = 20

PowerPC

enumerator LIEF_EM_PPC64 = 21

PowerPC64

enumerator LIEF_EM_S390 = 22

IBM System/390

enumerator LIEF_EM_SPU = 23

IBM SPU/SPC

enumerator LIEF_EM_V800 = 36

NEC V800

enumerator LIEF_EM_FR20 = 37

Fujitsu FR20

enumerator LIEF_EM_RH32 = 38

TRW RH-32

enumerator LIEF_EM_RCE = 39

Motorola RCE

enumerator LIEF_EM_ARM = 40

ARM

enumerator LIEF_EM_ALPHA = 41

DEC Alpha

enumerator LIEF_EM_SH = 42

Hitachi SH

enumerator LIEF_EM_SPARCV9 = 43

SPARC V9

enumerator LIEF_EM_TRICORE = 44

Siemens TriCore

enumerator LIEF_EM_ARC = 45

Argonaut RISC Core

enumerator LIEF_EM_H8_300 = 46

Hitachi H8/300

enumerator LIEF_EM_H8_300H = 47

Hitachi H8/300H

enumerator LIEF_EM_H8S = 48

Hitachi H8S

enumerator LIEF_EM_H8_500 = 49

Hitachi H8/500

enumerator LIEF_EM_IA_64 = 50

Intel IA-64 processor architecture

enumerator LIEF_EM_MIPS_X = 51

Stanford MIPS-X

enumerator LIEF_EM_COLDFIRE = 52

Motorola ColdFire

enumerator LIEF_EM_68HC12 = 53

Motorola M68HC12

enumerator LIEF_EM_MMA = 54

Fujitsu MMA Multimedia Accelerator

enumerator LIEF_EM_PCP = 55

Siemens PCP

enumerator LIEF_EM_NCPU = 56

Sony nCPU embedded RISC processor

enumerator LIEF_EM_NDR1 = 57

Denso NDR1 microprocessor

enumerator LIEF_EM_STARCORE = 58

Motorola Star*Core processor

enumerator LIEF_EM_ME16 = 59

Toyota ME16 processor

enumerator LIEF_EM_ST100 = 60

STMicroelectronics ST100 processor

enumerator LIEF_EM_TINYJ = 61

Advanced Logic Corp. TinyJ embedded processor family

enumerator LIEF_EM_X86_64 = 62

AMD x86-64 architecture

enumerator LIEF_EM_PDSP = 63

Sony DSP Processor

enumerator LIEF_EM_PDP10 = 64

Digital Equipment Corp. PDP-10

enumerator LIEF_EM_PDP11 = 65

Digital Equipment Corp. PDP-11

enumerator LIEF_EM_FX66 = 66

Siemens FX66 microcontroller

enumerator LIEF_EM_ST9PLUS = 67

STMicroelectronics ST9+ 8/16 bit microcontroller

enumerator LIEF_EM_ST7 = 68

STMicroelectronics ST7 8-bit microcontroller

enumerator LIEF_EM_68HC16 = 69

Motorola MC68HC16 Microcontroller

enumerator LIEF_EM_68HC11 = 70

Motorola MC68HC11 Microcontroller

enumerator LIEF_EM_68HC08 = 71

Motorola MC68HC08 Microcontroller

enumerator LIEF_EM_68HC05 = 72

Motorola MC68HC05 Microcontroller

enumerator LIEF_EM_SVX = 73

Silicon Graphics SVx

enumerator LIEF_EM_ST19 = 74

STMicroelectronics ST19 8-bit microcontroller

enumerator LIEF_EM_VAX = 75

Digital VAX

enumerator LIEF_EM_CRIS = 76

Axis Communications 32-bit embedded processor

enumerator LIEF_EM_JAVELIN = 77

Infineon Technologies 32-bit embedded processor

enumerator LIEF_EM_FIREPATH = 78

Element 14 64-bit DSP Processor

enumerator LIEF_EM_ZSP = 79

LSI Logic 16-bit DSP Processor

enumerator LIEF_EM_MMIX = 80

Donald Knuth’s educational 64-bit processor

enumerator LIEF_EM_HUANY = 81

Harvard University machine-independent object files

enumerator LIEF_EM_PRISM = 82

SiTera Prism

enumerator LIEF_EM_AVR = 83

Atmel AVR 8-bit microcontroller

enumerator LIEF_EM_FR30 = 84

Fujitsu FR30

enumerator LIEF_EM_D10V = 85

Mitsubishi D10V

enumerator LIEF_EM_D30V = 86

Mitsubishi D30V

enumerator LIEF_EM_V850 = 87

NEC v850

enumerator LIEF_EM_M32R = 88

Mitsubishi M32R

enumerator LIEF_EM_MN10300 = 89

Matsushita MN10300

enumerator LIEF_EM_MN10200 = 90

Matsushita MN10200

enumerator LIEF_EM_PJ = 91

picoJava

enumerator LIEF_EM_OPENRISC = 92

OpenRISC 32-bit embedded processor

enumerator LIEF_EM_ARC_COMPACT = 93

ARC International ARCompact processor (old spelling/synonym: EM_ARC_A5

enumerator LIEF_EM_XTENSA = 94

Tensilica Xtensa Architecture

enumerator LIEF_EM_VIDEOCORE = 95

Alphamosaic VideoCore processor

enumerator LIEF_EM_TMM_GPP = 96

Thompson Multimedia General Purpose Processor

enumerator LIEF_EM_NS32K = 97

National Semiconductor 32000 series

enumerator LIEF_EM_TPC = 98

Tenor Network TPC processor

enumerator LIEF_EM_SNP1K = 99

Trebia SNP 1000 processor

enumerator LIEF_EM_ST200 = 100

STMicroelectronics (www.st.com ST200

enumerator LIEF_EM_IP2K = 101

Ubicom IP2xxx microcontroller family

enumerator LIEF_EM_MAX = 102

MAX Processor

enumerator LIEF_EM_CR = 103

National Semiconductor CompactRISC microprocessor

enumerator LIEF_EM_F2MC16 = 104

Fujitsu F2MC16

enumerator LIEF_EM_MSP430 = 105

Texas Instruments embedded microcontroller msp430

enumerator LIEF_EM_BLACKFIN = 106

Analog Devices Blackfin (DSP processor

enumerator LIEF_EM_SE_C33 = 107

S1C33 Family of Seiko Epson processors

enumerator LIEF_EM_SEP = 108

Sharp embedded microprocessor

enumerator LIEF_EM_ARCA = 109

Arca RISC Microprocessor

enumerator LIEF_EM_UNICORE = 110

Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University

enumerator LIEF_EM_EXCESS = 111

eXcess: 16/32/64-bit configurable embedded CPU

enumerator LIEF_EM_DXP = 112

Icera Semiconductor Inc. Deep Execution Processor

enumerator LIEF_EM_ALTERA_NIOS2 = 113

Altera Nios II soft-core processor

enumerator LIEF_EM_CRX = 114

National Semiconductor CompactRISC CRX

enumerator LIEF_EM_XGATE = 115

Motorola XGATE embedded processor

enumerator LIEF_EM_C166 = 116

Infineon C16x/XC16x processor

enumerator LIEF_EM_M16C = 117

Renesas M16C series microprocessors

enumerator LIEF_EM_DSPIC30F = 118

Microchip Technology dsPIC30F Digital Signal

enumerator LIEF_EM_CE = 119

Freescale Communication Engine RISC core

enumerator LIEF_EM_M32C = 120

Renesas M32C series microprocessors

enumerator LIEF_EM_TSK3000 = 131

Altium TSK3000 core

enumerator LIEF_EM_RS08 = 132

Freescale RS08 embedded processor

enumerator LIEF_EM_SHARC = 133

Analog Devices SHARC family of 32-bit DSP

enumerator LIEF_EM_ECOG2 = 134

Cyan Technology eCOG2 microprocessor

enumerator LIEF_EM_SCORE7 = 135

Sunplus S+core7 RISC processor

enumerator LIEF_EM_DSP24 = 136

New Japan Radio (NJR 24-bit DSP Processor

enumerator LIEF_EM_VIDEOCORE3 = 137

Broadcom VideoCore III processor

enumerator LIEF_EM_LATTICEMICO32 = 138

RISC processor for Lattice FPGA architecture

enumerator LIEF_EM_SE_C17 = 139

Seiko Epson C17 family

enumerator LIEF_EM_TI_C6000 = 140

The Texas Instruments TMS320C6000 DSP family

enumerator LIEF_EM_TI_C2000 = 141

The Texas Instruments TMS320C2000 DSP family

enumerator LIEF_EM_TI_C5500 = 142

The Texas Instruments TMS320C55x DSP family

enumerator LIEF_EM_MMDSP_PLUS = 160

STMicroelectronics 64bit VLIW Data Signal Processor

enumerator LIEF_EM_CYPRESS_M8C = 161

Cypress M8C microprocessor

enumerator LIEF_EM_R32C = 162

Renesas R32C series microprocessors

enumerator LIEF_EM_TRIMEDIA = 163

NXP Semiconductors TriMedia architecture family

enumerator LIEF_EM_HEXAGON = 164

Qualcomm Hexagon processor

enumerator LIEF_EM_8051 = 165

Intel 8051 and variants

enumerator LIEF_EM_STXP7X = 166

STMicroelectronics STxP7x family of configurable

enumerator LIEF_EM_NDS32 = 167
enumerator LIEF_EM_ECOG1 = 168

Cyan Technology eCOG1X family

enumerator LIEF_EM_ECOG1X = 168

Cyan Technology eCOG1X family

enumerator LIEF_EM_MAXQ30 = 169

Dallas Semiconductor MAXQ30 Core Micro-controllers

enumerator LIEF_EM_XIMO16 = 170

New Japan Radio (NJR 16-bit DSP Processor

enumerator LIEF_EM_MANIK = 171

M2000 Reconfigurable RISC Microprocessor

enumerator LIEF_EM_CRAYNV2 = 172

Cray Inc. NV2 vector architecture

enumerator LIEF_EM_RX = 173

Renesas RX family

enumerator LIEF_EM_METAG = 174

Imagination Technologies META processor

enumerator LIEF_EM_MCST_ELBRUS = 175

MCST Elbrus general purpose hardware architecture

enumerator LIEF_EM_ECOG16 = 176

Cyan Technology eCOG16 family

enumerator LIEF_EM_CR16 = 177

National Semiconductor CompactRISC CR16 16-bit

enumerator LIEF_EM_ETPU = 178

Freescale Extended Time Processing Unit

enumerator LIEF_EM_SLE9X = 179

Infineon Technologies SLE9X core

enumerator LIEF_EM_L10M = 180

Intel L10M

enumerator LIEF_EM_K10M = 181

Intel K10M

enumerator LIEF_EM_AARCH64 = 183

ARM AArch64

enumerator LIEF_EM_AVR32 = 185

Atmel Corporation 32-bit microprocessor family

enumerator LIEF_EM_STM8 = 186

STMicroeletronics STM8 8-bit microcontroller

enumerator LIEF_EM_TILE64 = 187

Tilera TILE64 multicore architecture family

enumerator LIEF_EM_TILEPRO = 188

Tilera TILEPro multicore architecture family

enumerator LIEF_EM_CUDA = 190

NVIDIA CUDA architecture

enumerator LIEF_EM_TILEGX = 191

Tilera TILE-Gx multicore architecture family

enumerator LIEF_EM_CLOUDSHIELD = 192

CloudShield architecture family

enumerator LIEF_EM_COREA_1ST = 193

KIPO-KAIST Core-A 1st generation processor family

enumerator LIEF_EM_COREA_2ND = 194

KIPO-KAIST Core-A 2nd generation processor family

enumerator LIEF_EM_ARC_COMPACT2 = 195

Synopsys ARCompact V2

enumerator LIEF_EM_OPEN8 = 196

Open8 8-bit RISC soft processor core

enumerator LIEF_EM_RL78 = 197

Renesas RL78 family

enumerator LIEF_EM_VIDEOCORE5 = 198

Broadcom VideoCore V processor

enumerator LIEF_EM_78KOR = 199

Renesas 78KOR family

enumerator LIEF_EM_56800EX = 200

Freescale 56800EX Digital Signal Controller (DSC

enumerator LIEF_EM_BA1 = 201

Beyond BA1 CPU architecture

enumerator LIEF_EM_BA2 = 202

Beyond BA2 CPU architecture

enumerator LIEF_EM_XCORE = 203

XMOS xCORE processor family

enumerator LIEF_EM_MCHP_PIC = 204

Microchip 8-bit PIC(r family

enumerator LIEF_EM_INTEL205 = 205

Reserved by Intel

enumerator LIEF_EM_INTEL206 = 206

Reserved by Intel

enumerator LIEF_EM_INTEL207 = 207

Reserved by Intel

enumerator LIEF_EM_INTEL208 = 208

Reserved by Intel

enumerator LIEF_EM_INTEL209 = 209

Reserved by Intel

enumerator LIEF_EM_KM32 = 210

KM211 KM32 32-bit processor

enumerator LIEF_EM_KMX32 = 211

KM211 KMX32 32-bit processor

enumerator LIEF_EM_KMX16 = 212

KM211 KMX16 16-bit processor

enumerator LIEF_EM_KMX8 = 213

KM211 KMX8 8-bit processor

enumerator LIEF_EM_KVARC = 214

KM211 KVARC processor

enumerator LIEF_EM_CDP = 215

Paneve CDP architecture family

enumerator LIEF_EM_COGE = 216

Cognitive Smart Memory Processor

enumerator LIEF_EM_COOL = 217

iCelero CoolEngine

enumerator LIEF_EM_NORC = 218

Nanoradio Optimized RISC

enumerator LIEF_EM_CSR_KALIMBA = 219

CSR Kalimba architecture family

enumerator LIEF_EM_AMDGPU = 224

AMD GPU architecture

enumerator LIEF_EM_RISCV = 243

RISC-V

enumerator LIEF_EM_BPF = 247

eBPF Filter

enumerator LIEF_EM_LOONGARCH = 258

LoongArch

enum LIEF_ELF_CLASS

Object file classes.

Values:

enumerator LIEF_ELFCLASSNONE = 0

Unknown

enumerator LIEF_ELFCLASS32 = 1

32-bit object file

enumerator LIEF_ELFCLASS64 = 2

64-bit object file

enum LIEF_ELF_DATA

Object file byte orderings.

Values:

enumerator LIEF_ELFDATANONE = 0

Invalid data encoding.

enumerator LIEF_ELFDATA2LSB = 1

Little-endian object file

enumerator LIEF_ELFDATA2MSB = 2

Big-endian object file

enum LIEF_OS_ABI

OS ABI identification.

Values:

enumerator LIEF_OSABI_SYSTEMV = 0

UNIX System V ABI

enumerator LIEF_OSABI_HPUX = 1

HP-UX operating system

enumerator LIEF_OSABI_NETBSD = 2

NetBSD

enumerator LIEF_OSABI_GNU = 3

GNU/Linux

enumerator LIEF_OSABI_LINUX = 3

Historical alias for ELFOSABI_GNU.

enumerator LIEF_OSABI_HURD = 4

GNU/Hurd

enumerator LIEF_OSABI_SOLARIS = 6

Solaris

enumerator LIEF_OSABI_AIX = 7

AIX

enumerator LIEF_OSABI_IRIX = 8

IRIX

enumerator LIEF_OSABI_FREEBSD = 9

FreeBSD

enumerator LIEF_OSABI_TRU64 = 10

TRU64 UNIX

enumerator LIEF_OSABI_MODESTO = 11

Novell Modesto

enumerator LIEF_OSABI_OPENBSD = 12

OpenBSD

enumerator LIEF_OSABI_OPENVMS = 13

OpenVMS

enumerator LIEF_OSABI_NSK = 14

Hewlett-Packard Non-Stop Kernel

enumerator LIEF_OSABI_AROS = 15

AROS

enumerator LIEF_OSABI_FENIXOS = 16

FenixOS

enumerator LIEF_OSABI_CLOUDABI = 17

Nuxi CloudABI

enumerator LIEF_OSABI_C6000_ELFABI = 64

Bare-metal TMS320C6000

enumerator LIEF_OSABI_AMDGPU_HSA = 64

AMD HSA runtime

enumerator LIEF_OSABI_C6000_LINUX = 65

Linux TMS320C6000

enumerator LIEF_OSABI_ARM = 97

ARM

enumerator LIEF_OSABI_STANDALONE = 255

Standalone (embedded application

enum LIEF_RELOC_x86_64

x86_64 relocations.

Values:

enum RELOC_i386

i386 relocations.

Values:

enum LIEF_RELOC_POWERPC32

Values:

enum LIEF_RELOC_POWERPC64

Values:

enum LIEF_RELOC_AARCH64

Values:

enum LIEF_RELOC_ARM

Values:

enum LIEF_RELOC_MIPS

Values:

enum LIEF_RELOC_HEXAGON

Values:

enum LIEF_RELOC_SYSTEMZ

Values:

enum LIEF_RELOC_SPARC

Values:

enum LIEF_RELOC_LOONGARCH

Values:

enum LIEF_PPC64_EFLAGS

Values:

enumerator LIEF_EF_PPC64_ABI = 3
enum LIEF_ARM_EFLAGS

Values:

enumerator LIEF_EF_ARM_SOFT_FLOAT = 0x00000200U
enumerator LIEF_EF_ARM_VFP_FLOAT = 0x00000400U
enumerator LIEF_EF_ARM_EABI_UNKNOWN = 0x00000000U
enumerator LIEF_EF_ARM_EABI_VER1 = 0x01000000U
enumerator LIEF_EF_ARM_EABI_VER2 = 0x02000000U
enumerator LIEF_EF_ARM_EABI_VER3 = 0x03000000U
enumerator LIEF_EF_ARM_EABI_VER4 = 0x04000000U
enumerator LIEF_EF_ARM_EABI_VER5 = 0x05000000U
enumerator LIEF_EF_ARM_EABIMASK = 0xFF000000U
enum LIEF_MIPS_EFLAGS

Values:

enumerator LIEF_EF_MIPS_NOREORDER = 0x00000001
enumerator LIEF_EF_MIPS_PIC = 0x00000002
enumerator LIEF_EF_MIPS_CPIC = 0x00000004
enumerator LIEF_EF_MIPS_ABI2 = 0x00000020
enumerator LIEF_EF_MIPS_32BITMODE = 0x00000100
enumerator LIEF_EF_MIPS_FP64 = 0x00000200
enumerator LIEF_EF_MIPS_NAN2008 = 0x00000400
enumerator LIEF_EF_MIPS_ABI_O32 = 0x00001000
enumerator LIEF_EF_MIPS_ABI_O64 = 0x00002000
enumerator LIEF_EF_MIPS_ABI_EABI32 = 0x00003000
enumerator LIEF_EF_MIPS_ABI_EABI64 = 0x00004000
enumerator LIEF_EF_MIPS_ABI = 0x0000f000
enumerator LIEF_EF_MIPS_MACH_3900 = 0x00810000
enumerator LIEF_EF_MIPS_MACH_4010 = 0x00820000
enumerator LIEF_EF_MIPS_MACH_4100 = 0x00830000
enumerator LIEF_EF_MIPS_MACH_4650 = 0x00850000
enumerator LIEF_EF_MIPS_MACH_4120 = 0x00870000
enumerator LIEF_EF_MIPS_MACH_4111 = 0x00880000
enumerator LIEF_EF_MIPS_MACH_SB1 = 0x008a0000
enumerator LIEF_EF_MIPS_MACH_OCTEON = 0x008b0000
enumerator LIEF_EF_MIPS_MACH_XLR = 0x008c0000
enumerator LIEF_EF_MIPS_MACH_OCTEON2 = 0x008d0000
enumerator LIEF_EF_MIPS_MACH_OCTEON3 = 0x008e0000
enumerator LIEF_EF_MIPS_MACH_5400 = 0x00910000
enumerator LIEF_EF_MIPS_MACH_5900 = 0x00920000
enumerator LIEF_EF_MIPS_MACH_5500 = 0x00980000
enumerator LIEF_EF_MIPS_MACH_9000 = 0x00990000
enumerator LIEF_EF_MIPS_MACH_LS2E = 0x00a00000
enumerator LIEF_EF_MIPS_MACH_LS2F = 0x00a10000
enumerator LIEF_EF_MIPS_MACH_LS3A = 0x00a20000
enumerator LIEF_EF_MIPS_MACH = 0x00ff0000
enumerator LIEF_EF_MIPS_MICROMIPS = 0x02000000
enumerator LIEF_EF_MIPS_ARCH_ASE_M16 = 0x04000000
enumerator LIEF_EF_MIPS_ARCH_ASE_MDMX = 0x08000000
enumerator LIEF_EF_MIPS_ARCH_ASE = 0x0f000000
enumerator LIEF_EF_MIPS_ARCH_1 = 0x00000000
enumerator LIEF_EF_MIPS_ARCH_2 = 0x10000000
enumerator LIEF_EF_MIPS_ARCH_3 = 0x20000000
enumerator LIEF_EF_MIPS_ARCH_4 = 0x30000000
enumerator LIEF_EF_MIPS_ARCH_5 = 0x40000000
enumerator LIEF_EF_MIPS_ARCH_32 = 0x50000000
enumerator LIEF_EF_MIPS_ARCH_64 = 0x60000000
enumerator LIEF_EF_MIPS_ARCH_32R2 = 0x70000000
enumerator LIEF_EF_MIPS_ARCH_64R2 = 0x80000000
enumerator LIEF_EF_MIPS_ARCH_32R6 = 0x90000000
enumerator LIEF_EF_MIPS_ARCH_64R6 = 0xa0000000
enumerator LIEF_EF_MIPS_ARCH = 0xf0000000
enum LIEF_HEXAGON_EFLAGS

Values:

enumerator LIEF_EF_HEXAGON_MACH_V2 = 0x00000001
enumerator LIEF_EF_HEXAGON_MACH_V3 = 0x00000002
enumerator LIEF_EF_HEXAGON_MACH_V4 = 0x00000003
enumerator LIEF_EF_HEXAGON_MACH_V5 = 0x00000004
enumerator LIEF_EF_HEXAGON_ISA_MACH = 0x00000000
enumerator LIEF_EF_HEXAGON_ISA_V2 = 0x00000010
enumerator LIEF_EF_HEXAGON_ISA_V3 = 0x00000020
enumerator LIEF_EF_HEXAGON_ISA_V4 = 0x00000030
enumerator LIEF_EF_HEXAGON_ISA_V5 = 0x00000040
enum LIEF_LOONGARCH_EFLAGS

Values:

enumerator LIEF_EF_LOONGARCH_ABI_SOFT_FLOAT = 0x1
enumerator LIEF_EF_LOONGARCH_ABI_SINGLE_FLOAT = 0x2
enumerator LIEF_EF_LOONGARCH_ABI_DOUBLE_FLOAT = 0x3
enum LIEF_SYMBOL_SECTION_INDEX

Special section indices.

Values:

enumerator LIEF_SHN_UNDEF = 0

Undefined, missing, irrelevant, or meaningless

enumerator LIEF_SHN_LORESERVE = 0xff00

Lowest reserved index

enumerator LIEF_SHN_LOPROC = 0xff00

Lowest processor-specific index

enumerator LIEF_SHN_HIPROC = 0xff1f

Highest processor-specific index

enumerator LIEF_SHN_LOOS = 0xff20

Lowest operating system-specific index

enumerator LIEF_SHN_HIOS = 0xff3f

Highest operating system-specific index

enumerator LIEF_SHN_ABS = 0xfff1

Symbol has absolute value; does not need relocation

enumerator LIEF_SHN_COMMON = 0xfff2

FORTRAN COMMON or C external global variables

enumerator LIEF_SHN_XINDEX = 0xffff

Mark that the index is >= SHN_LORESERVE

enumerator LIEF_SHN_HIRESERVE = 0xffff

Highest reserved index

enum LIEF_ELF_SECTION_TYPES

Section types.

Values:

enumerator LIEF_SHT_NULL = 0

No associated section (inactive entry.

enumerator LIEF_SHT_PROGBITS = 1

Program-defined contents.

enumerator LIEF_SHT_SYMTAB = 2

Symbol table.

enumerator LIEF_SHT_STRTAB = 3

String table.

enumerator LIEF_SHT_RELA = 4

Relocation entries; explicit addends.

enumerator LIEF_SHT_HASH = 5

Symbol hash table.

enumerator LIEF_SHT_DYNAMIC = 6

Information for dynamic linking.

enumerator LIEF_SHT_NOTE = 7

Information about the file.

enumerator LIEF_SHT_NOBITS = 8

Data occupies no space in the file.

enumerator LIEF_SHT_REL = 9

Relocation entries; no explicit addends.

enumerator LIEF_SHT_SHLIB = 10

Reserved.

enumerator LIEF_SHT_DYNSYM = 11

Symbol table.

enumerator LIEF_SHT_INIT_ARRAY = 14

Pointers to initialization functions.

enumerator LIEF_SHT_FINI_ARRAY = 15

Pointers to termination functions.

enumerator LIEF_SHT_PREINIT_ARRAY = 16

Pointers to pre-init functions.

enumerator LIEF_SHT_GROUP = 17

Section group.

enumerator LIEF_SHT_SYMTAB_SHNDX = 18

Indices for SHN_XINDEX entries.

enumerator LIEF_SHT_LOOS = 0x60000000

Lowest operating system-specific type.

enumerator LIEF_SHT_ANDROID_REL = 0x60000001

Packed relocations (Android specific.

enumerator LIEF_SHT_ANDROID_RELA = 0x60000002

Packed relocations (Android specific.

enumerator LIEF_SHT_LLVM_ADDRSIG = 0x6fff4c03

This section is used to mark symbols as address-significant.

enumerator LIEF_SHT_RELR = 0x6fffff00

New relr relocations (Android specific.

enumerator LIEF_SHT_GNU_ATTRIBUTES = 0x6ffffff5

Object attributes.

enumerator LIEF_SHT_GNU_HASH = 0x6ffffff6

GNU-style hash table.

enumerator LIEF_SHT_GNU_verdef = 0x6ffffffd

GNU version definitions.

enumerator LIEF_SHT_GNU_verneed = 0x6ffffffe

GNU version references.

enumerator LIEF_SHT_GNU_versym = 0x6fffffff

GNU symbol versions table.

enumerator LIEF_SHT_HIOS = 0x6fffffff

Highest operating system-specific type.

enumerator LIEF_SHT_LOPROC = 0x70000000

Lowest processor arch-specific type.

enumerator LIEF_SHT_ARM_EXIDX = 0x70000001U

Exception Index table

enumerator LIEF_SHT_ARM_PREEMPTMAP = 0x70000002U

BPABI DLL dynamic linking pre-emption map

enumerator LIEF_SHT_ARM_ATTRIBUTES = 0x70000003U

Object file compatibility attributes

enumerator LIEF_SHT_ARM_DEBUGOVERLAY = 0x70000004U
enumerator LIEF_SHT_ARM_OVERLAYSECTION = 0x70000005U
enumerator LIEF_SHT_HEX_ORDERED = 0x70000000

Link editor is to sort the entries in

enumerator LIEF_SHT_X86_64_UNWIND = 0x70000001

Unwind information

enumerator LIEF_SHT_MIPS_REGINFO = 0x70000006

Register usage information

enumerator LIEF_SHT_MIPS_OPTIONS = 0x7000000d

General options

enumerator LIEF_SHT_MIPS_ABIFLAGS = 0x7000002a

ABI information.

enumerator LIEF_SHT_HIPROC = 0x7fffffff

Highest processor arch-specific type.

enumerator LIEF_SHT_LOUSER = 0x80000000

Lowest type reserved for applications.

enumerator LIEF_SHT_HIUSER = 0xffffffff

Highest type reserved for applications.

enum LIEF_ELF_SECTION_FLAGS

Section flags.

Values:

enumerator LIEF_SHF_NONE = 0x0
enumerator LIEF_SHF_WRITE = 0x1

Section data should be writable during execution.

enumerator LIEF_SHF_ALLOC = 0x2

Section occupies memory during program execution.

enumerator LIEF_SHF_EXECINSTR = 0x4

Section contains executable machine instructions.

enumerator LIEF_SHF_MERGE = 0x10

The data in this section may be merged.

enumerator LIEF_SHF_STRINGS = 0x20

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.

enumerator LIEF_SHF_OS_NONCONFORMING = 0x100U

This section requires special OS-specific processing to avoid incorrect behavior

enumerator LIEF_SHF_GROUP = 0x200U

This section is a member of a section group.

enumerator LIEF_SHF_TLS = 0x400U

This section holds Thread-Local Storage.

enumerator LIEF_SHF_EXCLUDE = 0x80000000U

This section is excluded from the final executable or shared library.

enumerator LIEF_XCORE_SHF_CP_SECTION = 0x800U
enumerator LIEF_XCORE_SHF_DP_SECTION = 0x1000U
enumerator LIEF_SHF_MASKOS = 0x0ff00000
enumerator LIEF_SHF_MASKPROC = 0xf0000000

Bits indicating processor-specific flags.

enumerator LIEF_SHF_X86_64_LARGE = 0x10000000
enumerator LIEF_SHF_HEX_GPREL = 0x10000000
enumerator LIEF_SHF_MIPS_NODUPES = 0x01000000
enumerator LIEF_SHF_MIPS_NAMES = 0x02000000

Linker must generate implicit hidden weak names.

enumerator LIEF_SHF_MIPS_LOCAL = 0x04000000

Section data local to process.

enumerator LIEF_SHF_MIPS_NOSTRIP = 0x08000000

Do not strip this section.

enumerator LIEF_SHF_MIPS_GPREL = 0x10000000

Section must be part of global data area.

enumerator LIEF_SHF_MIPS_MERGE = 0x20000000

This section should be merged.

enumerator LIEF_SHF_MIPS_ADDR = 0x40000000

Address size to be inferred from section entry size.

enumerator LIEF_SHF_MIPS_STRING = 0x80000000

Section data is string data by default.

enum LIEF_SYMBOL_BINDINGS

Symbol bindings.

Values:

enumerator LIEF_STB_LOCAL = 0

Local symbol, not visible outside obj file containing def

enumerator LIEF_STB_GLOBAL = 1

Global symbol, visible to all object files being combined

enumerator LIEF_STB_WEAK = 2

Weak symbol, like global but lower-precedence

enumerator LIEF_STB_GNU_UNIQUE = 10
enumerator LIEF_STB_LOOS = 10

Lowest operating system-specific binding type

enumerator LIEF_STB_HIOS = 12

Highest operating system-specific binding type

enumerator LIEF_STB_LOPROC = 13

Lowest processor-specific binding type

enumerator LIEF_STB_HIPROC = 15

Highest processor-specific binding type

enum LIEF_ELF_SYMBOL_TYPES

Values:

enumerator LIEF_STT_NOTYPE = 0
enumerator LIEF_STT_OBJECT = 1
enumerator LIEF_STT_FUNC = 2
enumerator LIEF_STT_SECTION = 3
enumerator LIEF_STT_FILE = 4
enumerator LIEF_STT_COMMON = 5
enumerator LIEF_STT_TLS = 6
enumerator LIEF_STT_GNU_IFUNC = 10
enumerator LIEF_STT_LOOS = 10
enumerator LIEF_STT_HIOS = 12
enumerator LIEF_STT_LOPROC = 13
enumerator LIEF_STT_HIPROC = 15
enum LIEF_ELF_SYMBOL_VISIBILITY

Values:

enumerator LIEF_STV_DEFAULT = 0
enumerator LIEF_STV_INTERNAL = 1
enumerator LIEF_STV_HIDDEN = 2
enumerator LIEF_STV_PROTECTED = 3
enum LIEF_SEGMENT_TYPES

Segment types.

Values:

enumerator LIEF_PT_NULL = 0

Unused segment.

enumerator LIEF_PT_LOAD = 1

Loadable segment.

enumerator LIEF_PT_DYNAMIC = 2

Dynamic linking information.

enumerator LIEF_PT_INTERP = 3

Interpreter pathname.

enumerator LIEF_PT_NOTE = 4

Auxiliary information.

enumerator LIEF_PT_SHLIB = 5

Reserved.

enumerator LIEF_PT_PHDR = 6

The program header table itself.

enumerator LIEF_PT_TLS = 7

The thread-local storage template.

enumerator LIEF_PT_LOOS = 0x60000000

Lowest operating system-specific pt entry type.

enumerator LIEF_PT_HIOS = 0x6fffffff

Highest operating system-specific pt entry type.

enumerator LIEF_PT_LOPROC = 0x70000000

Lowest processor-specific program hdr entry type.

enumerator LIEF_PT_HIPROC = 0x7fffffff

Highest processor-specific program hdr entry type.

enumerator LIEF_PT_GNU_EH_FRAME = 0x6474e550
enumerator LIEF_PT_SUNW_EH_FRAME = 0x6474e550
enumerator LIEF_PT_SUNW_UNWIND = 0x6464e550
enumerator LIEF_PT_GNU_STACK = 0x6474e551

Indicates stack executability.

enumerator LIEF_PT_GNU_PROPERTY = 0x6474e553

GNU property

enumerator LIEF_PT_GNU_RELRO = 0x6474e552

Read-only after relocation.

enumerator LIEF_PT_ARM_ARCHEXT = 0x70000000

Platform architecture compatibility info

enumerator LIEF_PT_ARM_EXIDX = 0x70000001
enumerator LIEF_PT_ARM_UNWIND = 0x70000001
enumerator LIEF_PT_MIPS_REGINFO = 0x70000000

Register usage information.

enumerator LIEF_PT_MIPS_RTPROC = 0x70000001

Runtime procedure table.

enumerator LIEF_PT_MIPS_OPTIONS = 0x70000002

Options segment.

enumerator LIEF_PT_MIPS_ABIFLAGS = 0x70000003

Abiflags segment.

enum LIEF_ELF_SEGMENT_FLAGS

Segment flags.

Values:

enumerator LIEF_PF_NONE = 0
enumerator LIEF_PF_X = 1

Execute

enumerator LIEF_PF_W = 2

Write

enumerator LIEF_PF_R = 4

Read

enumerator LIEF_PF_MASKOS = 0x0ff00000

Bits for operating system-specific semantics.

enumerator LIEF_PF_MASKPROC = 0xf0000000

Bits for processor-specific semantics.

enum LIEF_DYNAMIC_TAGS

Dynamic table entry tags.

Values:

enumerator LIEF_DT_NULL = 0

Marks end of dynamic array.

enumerator LIEF_DT_NEEDED = 1

String table offset of needed library.

enumerator LIEF_DT_PLTRELSZ = 2

Size of relocation entries in PLT.

enumerator LIEF_DT_PLTGOT = 3

Address associated with linkage table.

enumerator LIEF_DT_HASH = 4

Address of symbolic hash table.

enumerator LIEF_DT_STRTAB = 5

Address of dynamic string table.

enumerator LIEF_DT_SYMTAB = 6

Address of dynamic symbol table.

enumerator LIEF_DT_RELA = 7

Address of relocation table (Rela entries.

enumerator LIEF_DT_RELASZ = 8

Size of Rela relocation table.

enumerator LIEF_DT_RELAENT = 9

Size of a Rela relocation entry.

enumerator LIEF_DT_STRSZ = 10

Total size of the string table.

enumerator LIEF_DT_SYMENT = 11

Size of a symbol table entry.

enumerator LIEF_DT_INIT = 12

Address of initialization function.

enumerator LIEF_DT_FINI = 13

Address of termination function.

enumerator LIEF_DT_SONAME = 14

String table offset of a shared objects name.

enumerator LIEF_DT_RPATH = 15

String table offset of library search path.

enumerator LIEF_DT_SYMBOLIC = 16

Changes symbol resolution algorithm.

enumerator LIEF_DT_REL = 17

Address of relocation table (Rel entries.

enumerator LIEF_DT_RELSZ = 18

Size of Rel relocation table.

enumerator LIEF_DT_RELENT = 19

Size of a Rel relocation entry.

enumerator LIEF_DT_PLTREL = 20

Type of relocation entry used for linking.

enumerator LIEF_DT_DEBUG = 21

Reserved for debugger.

enumerator LIEF_DT_TEXTREL = 22

Relocations exist for non-writable segments.

enumerator LIEF_DT_JMPREL = 23

Address of relocations associated with PLT.

enumerator LIEF_DT_BIND_NOW = 24

Process all relocations before execution.

enumerator LIEF_DT_INIT_ARRAY = 25

Pointer to array of initialization functions.

enumerator LIEF_DT_FINI_ARRAY = 26

Pointer to array of termination functions.

enumerator LIEF_DT_INIT_ARRAYSZ = 27

Size of DT_INIT_ARRAY.

enumerator LIEF_DT_FINI_ARRAYSZ = 28

Size of DT_FINI_ARRAY.

enumerator LIEF_DT_RUNPATH = 29

String table offset of lib search path.

enumerator LIEF_DT_FLAGS = 30

Flags.

enumerator LIEF_DT_ENCODING = 32

Values from here to DT_LOOS follow the rules for the interpretation of the d_un union.

enumerator LIEF_DT_PREINIT_ARRAY = 32

Pointer to array of preinit functions.

enumerator LIEF_DT_PREINIT_ARRAYSZ = 33

Size of the DT_PREINIT_ARRAY array.

enumerator LIEF_DT_LOOS = 0x60000000

Start of environment specific tags.

enumerator LIEF_DT_HIOS = 0x6FFFFFFF

End of environment specific tags.

enumerator LIEF_DT_LOPROC = 0x70000000

Start of processor specific tags.

enumerator LIEF_DT_HIPROC = 0x7FFFFFFF

End of processor specific tags.

enumerator LIEF_DT_GNU_HASH = 0x6FFFFEF5

Reference to the GNU hash table.

enumerator LIEF_DT_RELACOUNT = 0x6FFFFFF9

ELF32_Rela count.

enumerator LIEF_DT_RELCOUNT = 0x6FFFFFFA

ELF32_Rel count.

enumerator LIEF_DT_FLAGS_1 = 0x6FFFFFFB

Flags_1.

enumerator LIEF_DT_VERSYM = 0x6FFFFFF0

The address of .gnu.version section.

enumerator LIEF_DT_VERDEF = 0x6FFFFFFC

The address of the version definition table.

enumerator LIEF_DT_VERDEFNUM = 0x6FFFFFFD

The number of entries in DT_VERDEF.

enumerator LIEF_DT_VERNEED = 0x6FFFFFFE

The address of the version Dependency table.

enumerator LIEF_DT_VERNEEDNUM = 0x6FFFFFFF

The number of entries in DT_VERNEED.

enumerator LIEF_DT_MIPS_RLD_VERSION = 0x70000001

32 bit version number for runtime linker interface.

enumerator LIEF_DT_MIPS_TIME_STAMP = 0x70000002

Time stamp.

enumerator LIEF_DT_MIPS_ICHECKSUM = 0x70000003

Checksum of external strings and common sizes.

enumerator LIEF_DT_MIPS_IVERSION = 0x70000004

Index of version string in string table.

enumerator LIEF_DT_MIPS_FLAGS = 0x70000005

32 bits of flags.

enumerator LIEF_DT_MIPS_BASE_ADDRESS = 0x70000006

Base address of the segment.

enumerator LIEF_DT_MIPS_MSYM = 0x70000007

Address of .msym section.

enumerator LIEF_DT_MIPS_CONFLICT = 0x70000008

Address of .conflict section.

enumerator LIEF_DT_MIPS_LIBLIST = 0x70000009

Address of .liblist section.

enumerator LIEF_DT_MIPS_LOCAL_GOTNO = 0x7000000a

Number of local global offset table entries.

enumerator LIEF_DT_MIPS_CONFLICTNO = 0x7000000b

Number of entries in the .conflict section.

enumerator LIEF_DT_MIPS_LIBLISTNO = 0x70000010

Number of entries in the .liblist section.

enumerator LIEF_DT_MIPS_SYMTABNO = 0x70000011

Number of entries in the .dynsym section.

enumerator LIEF_DT_MIPS_UNREFEXTNO = 0x70000012

Index of first external dynamic symbol not referenced locally.

enumerator LIEF_DT_MIPS_GOTSYM = 0x70000013

Index of first dynamic symbol in global offset table.

enumerator LIEF_DT_MIPS_HIPAGENO = 0x70000014

Number of page table entries in global offset table.

enumerator LIEF_DT_MIPS_RLD_MAP = 0x70000016

Address of run time loader map, used for debugging.

enumerator LIEF_DT_MIPS_DELTA_CLASS = 0x70000017

Delta C++ class definition.

enumerator LIEF_DT_MIPS_DELTA_CLASS_NO = 0x70000018

Number of entries in DT_MIPS_DELTA_CLASS.

enumerator LIEF_DT_MIPS_DELTA_INSTANCE = 0x70000019

Delta C++ class instances.

enumerator LIEF_DT_MIPS_DELTA_INSTANCE_NO = 0x7000001A

Number of entries in DT_MIPS_DELTA_INSTANCE.

enumerator LIEF_DT_MIPS_DELTA_RELOC = 0x7000001B

Delta relocations.

enumerator LIEF_DT_MIPS_DELTA_RELOC_NO = 0x7000001C

Number of entries in DT_MIPS_DELTA_RELOC.

enumerator LIEF_DT_MIPS_DELTA_SYM = 0x7000001D

Delta symbols that Delta relocations refer to.

enumerator LIEF_DT_MIPS_DELTA_SYM_NO = 0x7000001E

Number of entries in DT_MIPS_DELTA_SYM.

enumerator LIEF_DT_MIPS_DELTA_CLASSSYM = 0x70000020

Delta symbols that hold class declarations.

enumerator LIEF_DT_MIPS_DELTA_CLASSSYM_NO = 0x70000021

Number of entries in DT_MIPS_DELTA_CLASSSYM.

enumerator LIEF_DT_MIPS_CXX_FLAGS = 0x70000022

Flags indicating information about C++ flavor.

enumerator LIEF_DT_MIPS_PIXIE_INIT = 0x70000023

Pixie information.

enumerator LIEF_DT_MIPS_SYMBOL_LIB = 0x70000024

Address of .MIPS.symlib

enumerator LIEF_DT_MIPS_LOCALPAGE_GOTIDX = 0x70000025

The GOT index of the first PTE for a segment

enumerator LIEF_DT_MIPS_LOCAL_GOTIDX = 0x70000026

The GOT index of the first PTE for a local symbol

enumerator LIEF_DT_MIPS_HIDDEN_GOTIDX = 0x70000027

The GOT index of the first PTE for a hidden symbol

enumerator LIEF_DT_MIPS_PROTECTED_GOTIDX = 0x70000028

The GOT index of the first PTE for a protected symbol

enumerator LIEF_DT_MIPS_OPTIONS = 0x70000029

Address of .MIPS.options.

enumerator LIEF_DT_MIPS_INTERFACE = 0x7000002A

Address of .interface.

enumerator LIEF_DT_MIPS_DYNSTR_ALIGN = 0x7000002B

Unknown.

enumerator LIEF_DT_MIPS_INTERFACE_SIZE = 0x7000002C

Size of the .interface section.

enumerator LIEF_DT_MIPS_RLD_TEXT_RESOLVE_ADDR = 0x7000002D

Size of rld_text_resolve function stored in the GOT.

enumerator LIEF_DT_MIPS_PERF_SUFFIX = 0x7000002E

Default suffix of DSO to be added by rld on dlopen( calls.

enumerator LIEF_DT_MIPS_COMPACT_SIZE = 0x7000002F

Size of compact relocation section (O32.

enumerator LIEF_DT_MIPS_GP_VALUE = 0x70000030

GP value for auxiliary GOTs.

enumerator LIEF_DT_MIPS_AUX_DYNAMIC = 0x70000031

Address of auxiliary .dynamic.

enumerator LIEF_DT_MIPS_PLTGOT = 0x70000032

Address of the base of the PLTGOT.

enumerator LIEF_DT_MIPS_RWPLT = 0x70000034

Points to the base of a writable PLT.

enumerator LIEF_DT_ANDROID_REL_OFFSET = 0x6000000D

The offset of packed relocation data (older version < M) (Android specific.

enumerator LIEF_DT_ANDROID_REL_SIZE = 0x6000000E

The size of packed relocation data in bytes (older version < M) (Android specific.

enumerator LIEF_DT_ANDROID_REL = 0x6000000F

The offset of packed relocation data (Android specific.

enumerator LIEF_DT_ANDROID_RELSZ = 0x60000010

The size of packed relocation data in bytes (Android specific.

enumerator LIEF_DT_ANDROID_RELA = 0x60000011

The offset of packed relocation data (Android specific.

enumerator LIEF_DT_ANDROID_RELASZ = 0x60000012

The size of packed relocation data in bytes (Android specific.

enumerator LIEF_DT_RELR = 0x6FFFE000

The offset of new relr relocation data (Android specific.

enumerator LIEF_DT_RELRSZ = 0x6FFFE001

The size of nre relr relocation data in bytes (Android specific.

enumerator LIEF_DT_RELRENT = 0x6FFFE003

The size of a new relr relocation entry (Android specific.

enumerator LIEF_DT_RELRCOUNT = 0x6FFFE005

Specifies the relative count of new relr relocation entries (Android specific.

enum LIEF_DYNAMIC_FLAGS

DT_FLAGS and DT_FLAGS_1 values.

Values:

enumerator LIEF_DF_ORIGIN = 0x00000001

The object may reference $ORIGIN.

enumerator LIEF_DF_SYMBOLIC = 0x00000002

Search the shared lib before searching the exe.

enumerator LIEF_DF_TEXTREL = 0x00000004

Relocations may modify a non-writable segment.

enumerator LIEF_DF_BIND_NOW = 0x00000008

Process all relocations on load.

enumerator LIEF_DF_STATIC_TLS = 0x00000010

Reject attempts to load dynamically.

enum LIEF_DYNAMIC_FLAGS_1

Values:

enumerator LIEF_DF_1_NOW = 0x00000001

Set RTLD_NOW for this object.

enumerator LIEF_DF_1_GLOBAL = 0x00000002

Set RTLD_GLOBAL for this object.

enumerator LIEF_DF_1_GROUP = 0x00000004

Set RTLD_GROUP for this object.

enumerator LIEF_DF_1_NODELETE = 0x00000008

Set RTLD_NODELETE for this object.

enumerator LIEF_DF_1_LOADFLTR = 0x00000010

Trigger filtee loading at runtime.

enumerator LIEF_DF_1_INITFIRST = 0x00000020

Set RTLD_INITFIRST for this object.

enumerator LIEF_DF_1_NOOPEN = 0x00000040

Set RTLD_NOOPEN for this object.

enumerator LIEF_DF_1_ORIGIN = 0x00000080

$ORIGIN must be handled.

enumerator LIEF_DF_1_DIRECT = 0x00000100

Direct binding enabled.

enumerator LIEF_DF_1_TRANS = 0x00000200
enumerator LIEF_DF_1_INTERPOSE = 0x00000400

Object is used to interpose.

enumerator LIEF_DF_1_NODEFLIB = 0x00000800

Ignore default lib search path.

enumerator LIEF_DF_1_NODUMP = 0x00001000

Object can’t be dldump’ed.

enumerator LIEF_DF_1_CONFALT = 0x00002000

Configuration alternative created.

enumerator LIEF_DF_1_ENDFILTEE = 0x00004000

Filtee terminates filters search.

enumerator LIEF_DF_1_DISPRELDNE = 0x00008000

Disp reloc applied at build time.

enumerator LIEF_DF_1_DISPRELPND = 0x00010000

Disp reloc applied at run-time.

enumerator LIEF_DF_1_NODIRECT = 0x00020000

Object has no-direct binding.

enumerator LIEF_DF_1_IGNMULDEF = 0x00040000
enumerator LIEF_DF_1_NOKSYMS = 0x00080000
enumerator LIEF_DF_1_NOHDR = 0x00100000
enumerator LIEF_DF_1_EDITED = 0x00200000

Object is modified after built.

enumerator LIEF_DF_1_NORELOC = 0x00400000
enumerator LIEF_DF_1_SYMINTPOSE = 0x00800000

Object has individual interposers.

enumerator LIEF_DF_1_GLOBAUDIT = 0x01000000

Global auditing required.

enumerator LIEF_DF_1_SINGLETON = 0x02000000

Singleton symbols are used.

enumerator LIEF_DF_1_PIE = 0x08000000

Singleton symbols are used.

Values:

enumerator LIEF_RHF_NONE = 0x00000000
enumerator LIEF_RHF_QUICKSTART = 0x00000001
enumerator LIEF_RHF_NOTPOT = 0x00000002
enumerator LIEF_RHS_NO_LIBRARY_REPLACEMENT = 0x00000004
enumerator LIEF_RHF_NO_MOVE = 0x00000008
enumerator LIEF_RHF_SGI_ONLY = 0x00000010
enumerator LIEF_RHF_GUARANTEE_INIT = 0x00000020
enumerator LIEF_RHF_DELTA_C_PLUS_PLUS = 0x00000040
enumerator LIEF_RHF_GUARANTEE_START_INIT = 0x00000080
enumerator LIEF_RHF_PIXIE = 0x00000100
enumerator LIEF_RHF_DEFAULT_DELAY_LOAD = 0x00000200
enumerator LIEF_RHF_REQUICKSTART = 0x00000400
enumerator LIEF_RHF_REQUICKSTARTED = 0x00000800
enumerator LIEF_RHF_CORD = 0x00001000
enumerator LIEF_RHF_NO_UNRES_UNDEF = 0x00002000
enumerator LIEF_RHF_RLD_ORDER_SAFE = 0x00004000

ElfXX_VerDef structure version (GNU versioning)

Values:

enumerator LIEF_VER_DEF_NONE = 0
enumerator LIEF_VER_DEF_CURRENT = 1

VerDef Flags (ElfXX_VerDef::vd_flags)

Values:

enumerator LIEF_VER_FLG_BASE = 0x1
enumerator LIEF_VER_FLG_WEAK = 0x2
enumerator LIEF_VER_FLG_INFO = 0x4

Special constants for the version table. (SHT_GNU_versym/.gnu.version)

Values:

enumerator LIEF_VER_NDX_LOCAL = 0

Unversioned local symbol

enumerator LIEF_VER_NDX_GLOBAL = 1

Unversioned global symbol

enumerator LIEF_VERSYM_VERSION = 0x7fff

Version Index mask

enumerator LIEF_VERSYM_HIDDEN = 0x8000

Hidden bit (non-default version

ElfXX_VerNeed structure version (GNU versioning)

Values:

enumerator LIEF_VER_NEED_NONE = 0
enumerator LIEF_VER_NEED_CURRENT = 1
enum LIEF_AUX_TYPE

Values:

enumerator LIEF_AT_NULL = 0

End of vector

enumerator LIEF_AT_IGNORE = 1

Entry should be ignored

enumerator LIEF_AT_EXECFD = 2

File descriptor of program

enumerator LIEF_AT_PHDR = 3

Program headers for program

enumerator LIEF_AT_PHENT = 4

Size of program header entry

enumerator LIEF_AT_PHNUM = 5

Number of program headers

enumerator LIEF_AT_PAGESZ = 6

System page size

enumerator LIEF_AT_BASE = 7

Base address of interpreter

enumerator LIEF_AT_FLAGS = 8

Flags

enumerator LIEF_AT_ENTRY = 9

Entry point of program

enumerator LIEF_AT_NOTELF = 10

Program is not ELF

enumerator LIEF_AT_UID = 11

Real uid

enumerator LIEF_AT_EUID = 12

Effective uid

enumerator LIEF_AT_GID = 13

Real gid

enumerator LIEF_AT_EGID = 14

Effective gid

enumerator LIEF_AT_CLKTCK = 17

Frequency of times(

enumerator LIEF_AT_PLATFORM = 15

String identifying platform.

enumerator LIEF_AT_HWCAP = 16

Machine dependent hints about processor capabilities.

enumerator LIEF_AT_FPUCW = 18

Used FPU control word.

enumerator LIEF_AT_DCACHEBSIZE = 19

Data cache block size.

enumerator LIEF_AT_ICACHEBSIZE = 20

Instruction cache block size.

enumerator LIEF_AT_UCACHEBSIZE = 21

Unified cache block size.

enumerator LIEF_AT_IGNOREPPC = 22

Entry should be ignored.

enumerator LIEF_AT_SECURE = 23

Boolean, was exec setuid-like?

enumerator LIEF_AT_BASE_PLATFORM = 24

String identifying real platforms.

enumerator LIEF_AT_RANDOM = 25

Address of 16 random bytes.

enumerator LIEF_AT_HWCAP2 = 26

Extension of AT_HWCAP.

enumerator LIEF_AT_EXECFN = 31

Filename of executable.

enumerator LIEF_AT_SYSINFO = 32
enumerator LIEF_AT_SYSINFO_EHDR = 33
enumerator LIEF_AT_L1I_CACHESHAPE = 34
enumerator LIEF_AT_L1D_CACHESHAPE = 35
enumerator LIEF_AT_L2_CACHESHAPE = 36
enumerator LIEF_AT_L3_CACHESHAPE = 37
enum LIEF_DYNSYM_COUNT_METHODS

Methods that can be used by the LIEF::ELF::Parser to count the number of dynamic symbols

Values:

enumerator LIEF_COUNT_AUTO = 0

Automatic detection

enumerator LIEF_COUNT_SECTION = 1

Count based on sections (not very reliable

enumerator LIEF_COUNT_HASH = 2

Count based on hash table (reliable

enumerator LIEF_COUNT_RELOCATIONS = 3

Count based on PLT/GOT relocations (very reliable but not accurate

enum LIEF_NOTE_TYPES

Values:

enumerator LIEF_NT_UNKNOWN = 0
enumerator LIEF_NT_GNU_ABI_TAG = 1
enumerator LIEF_NT_GNU_HWCAP = 2
enumerator LIEF_NT_GNU_BUILD_ID = 3
enumerator LIEF_NT_GNU_GOLD_VERSION = 4
enumerator LIEF_NT_GNU_PROPERTY_TYPE_0 = 5
enumerator LIEF_NT_GNU_BUILD_ATTRIBUTE_OPEN = 0x100
enumerator LIEF_NT_GNU_BUILD_ATTRIBUTE_FUNC = 0x101
enumerator LIEF_NT_CRASHPAD = 0x4f464e49
enum LIEF_NOTE_TYPES_CORE

Values:

enumerator LIEF_NT_CORE_UNKNOWN = 0
enumerator LIEF_NT_PRSTATUS = 1
enumerator LIEF_NT_PRFPREG = 2
enumerator LIEF_NT_PRPSINFO = 3
enumerator LIEF_NT_TASKSTRUCT = 4
enumerator LIEF_NT_AUXV = 6
enumerator LIEF_NT_SIGINFO = 0x53494749
enumerator LIEF_NT_FILE = 0x46494c45
enumerator LIEF_NT_PRXFPREG = 0x46e62b7f
enumerator LIEF_NT_ARM_VFP = 0x400
enumerator LIEF_NT_ARM_TLS = 0x401
enumerator LIEF_NT_ARM_HW_BREAK = 0x402
enumerator LIEF_NT_ARM_HW_WATCH = 0x403
enumerator LIEF_NT_ARM_SYSTEM_CALL = 0x404
enumerator LIEF_NT_ARM_SVE = 0x405
enumerator LIEF_NT_386_TLS = 0x200
enumerator LIEF_NT_386_IOPERM = 0x201
enumerator LIEF_NT_386_XSTATE = 0x202
enum LIEF_NOTE_ABIS

Values:

enumerator LIEF_ELF_NOTE_UNKNOWN = ~(unsigned int)(0)
enumerator LIEF_ELF_NOTE_OS_LINUX = 0
enumerator LIEF_ELF_NOTE_OS_GNU = 1
enumerator LIEF_ELF_NOTE_OS_SOLARIS2 = 2
enumerator LIEF_ELF_NOTE_OS_FREEBSD = 3
enumerator LIEF_ELF_NOTE_OS_NETBSD = 4
enumerator LIEF_ELF_NOTE_OS_SYLLABLE = 5
enum LIEF_RELOCATION_PURPOSES

Values:

enumerator LIEF_RELOC_PURPOSE_NONE = 0
enumerator LIEF_RELOC_PURPOSE_PLTGOT = 1
enumerator LIEF_RELOC_PURPOSE_DYNAMIC = 2
enumerator LIEF_RELOC_PURPOSE_OBJECT = 3

Functions

bool is_elf(const char *file)

Check if the given file is an ELF one.