LIEF: Library to Instrument Executable Formats Version 0.16.0
Loading...
Searching...
No Matches
LIEF::ELF Namespace Reference

Namespace related to the LIEF's ELF module. More...

Namespaces

namespace  DataHandler
 
namespace  details
 

Classes

class  AArch64Feature
 This class represents the GNU_PROPERTY_AARCH64_FEATURE_1_AND property. More...
 
class  AArch64PAuth
 This class represents the GNU_PROPERTY_AARCH64_FEATURE_PAUTH property. More...
 
class  AndroidIdent
 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 a core NT_FILE which describes the mapped files of the process. More...
 
class  CorePrPsInfo
 Class representing the NT_PRPSINFO core note. This kind of note represents general information about the process. More...
 
class  CorePrStatus
 Class representing core PrPsInfo object. More...
 
class  CoreSigInfo
 Class representing a 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 to name the original library. More...
 
class  Generic
 This class represents a property which doesn't have a concrete LIEF implementation. 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 class mirrors the raw ELF Elfxx_Ehdr structure. More...
 
class  Needed
 
class  Note
 Class which represents an ELF note. This class can be instantiated using the static Note::create functions. More...
 
class  NoteAbi
 Class that wraps the NT_GNU_ABI_TAG note. More...
 
class  NoteGnuProperty
 Class that wraps the NT_GNU_PROPERTY_TYPE_0 note. More...
 
class  NoteNoCopyOnProtected
 This class provides an interface over the GNU_PROPERTY_NO_COPY_ON_PROTECTED property. This property indicates that the linker shouldn't copy relocations against protected symbols. More...
 
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  QNXStack
 Class representing the QNX QNT_STACK note. 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  StackSize
 This class provides an interface over the GNU_PROPERTY_STACK_SIZE property. 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...
 
class  X86Features
 This class interfaces the different GNU_PROPERTY_X86_FEATURE_* properties which includes: More...
 
class  X86ISA
 This class interfaces the different GNU_PROPERTY_X86_ISA_* properties which includes: More...
 

Enumerations

enum class  ARCH {
  NONE = 0 , M32 = 1 , SPARC = 2 , I386 = 3 ,
  M68K = 4 , M88K = 5 , IAMCU = 6 , I860 = 7 ,
  MIPS = 8 , S370 = 9 , MIPS_RS3_LE = 10 , PARISC = 15 ,
  VPP500 = 17 , SPARC32PLUS = 18 , I60 = 19 , PPC = 20 ,
  PPC64 = 21 , S390 = 22 , SPU = 23 , V800 = 36 ,
  FR20 = 37 , RH32 = 38 , RCE = 39 , ARM = 40 ,
  ALPHA = 41 , SH = 42 , SPARCV9 = 43 , TRICORE = 44 ,
  ARC = 45 , H8_300 = 46 , H8_300H = 47 , H8S = 48 ,
  H8_500 = 49 , IA_64 = 50 , MIPS_X = 51 , COLDFIRE = 52 ,
  M68HC12 = 53 , MMA = 54 , PCP = 55 , NCPU = 56 ,
  NDR1 = 57 , STARCORE = 58 , ME16 = 59 , ST100 = 60 ,
  TINYJ = 61 , X86_64 = 62 , PDSP = 63 , PDP10 = 64 ,
  PDP11 = 65 , FX66 = 66 , ST9PLUS = 67 , ST7 = 68 ,
  M68HC16 = 69 , M68HC11 = 70 , M68HC08 = 71 , M68HC05 = 72 ,
  SVX = 73 , ST19 = 74 , VAX = 75 , CRIS = 76 ,
  JAVELIN = 77 , FIREPATH = 78 , ZSP = 79 , MMIX = 80 ,
  HUANY = 81 , PRISM = 82 , AVR = 83 , FR30 = 84 ,
  D10V = 85 , D30V = 86 , V850 = 87 , M32R = 88 ,
  MN10300 = 89 , MN10200 = 90 , PJ = 91 , OPENRISC = 92 ,
  ARC_COMPACT = 93 , XTENSA = 94 , VIDEOCORE = 95 , TMM_GPP = 96 ,
  NS32K = 97 , TPC = 98 , SNP1K = 99 , ST200 = 100 ,
  IP2K = 101 , MAX = 102 , CR = 103 , F2MC16 = 104 ,
  MSP430 = 105 , BLACKFIN = 106 , SE_C33 = 107 , SEP = 108 ,
  ARCA = 109 , UNICORE = 110 , EXCESS = 111 , DXP = 112 ,
  ALTERA_NIOS2 = 113 , CRX = 114 , XGATE = 115 , C166 = 116 ,
  M16C = 117 , DSPIC30F = 118 , CE = 119 , M32C = 120 ,
  TSK3000 = 131 , RS08 = 132 , SHARC = 133 , ECOG2 = 134 ,
  SCORE7 = 135 , DSP24 = 136 , VIDEOCORE3 = 137 , LATTICEMICO32 = 138 ,
  SE_C17 = 139 , TI_C6000 = 140 , TI_C2000 = 141 , TI_C5500 = 142 ,
  MMDSP_PLUS = 160 , CYPRESS_M8C = 161 , R32C = 162 , TRIMEDIA = 163 ,
  HEXAGON = 164 , M8051 = 165 , STXP7X = 166 , NDS32 = 167 ,
  ECOG1 = 168 , ECOG1X = 168 , MAXQ30 = 169 , XIMO16 = 170 ,
  MANIK = 171 , CRAYNV2 = 172 , RX = 173 , METAG = 174 ,
  MCST_ELBRUS = 175 , ECOG16 = 176 , CR16 = 177 , ETPU = 178 ,
  SLE9X = 179 , L10M = 180 , K10M = 181 , AARCH64 = 183 ,
  AVR32 = 185 , STM8 = 186 , TILE64 = 187 , TILEPRO = 188 ,
  CUDA = 190 , TILEGX = 191 , CLOUDSHIELD = 192 , COREA_1ST = 193 ,
  COREA_2ND = 194 , ARC_COMPACT2 = 195 , OPEN8 = 196 , RL78 = 197 ,
  VIDEOCORE5 = 198 , M78KOR = 199 , M56800EX = 200 , BA1 = 201 ,
  BA2 = 202 , XCORE = 203 , MCHP_PIC = 204 , INTEL205 = 205 ,
  INTEL206 = 206 , INTEL207 = 207 , INTEL208 = 208 , INTEL209 = 209 ,
  KM32 = 210 , KMX32 = 211 , KMX16 = 212 , KMX8 = 213 ,
  KVARC = 214 , CDP = 215 , COGE = 216 , COOL = 217 ,
  NORC = 218 , CSR_KALIMBA = 219 , AMDGPU = 224 , RISCV = 243 ,
  BPF = 247 , CSKY = 252 , LOONGARCH = 258
}
 
enum class  PROCESSOR_FLAGS : uint64_t {
  ARM_EABI_UNKNOWN = 0x00000000 | (PF_ARM_ID << PFLAGS_BIT) , ARM_SOFT_FLOAT = 0x00000200 | (PF_ARM_ID << PFLAGS_BIT) , ARM_VFP_FLOAT = 0x00000400 | (PF_ARM_ID << PFLAGS_BIT) , ARM_EABI_VER1 = 0x01000000 | (PF_ARM_ID << PFLAGS_BIT) ,
  ARM_EABI_VER2 = 0x02000000 | (PF_ARM_ID << PFLAGS_BIT) , ARM_EABI_VER3 = 0x03000000 | (PF_ARM_ID << PFLAGS_BIT) , ARM_EABI_VER4 = 0x04000000 | (PF_ARM_ID << PFLAGS_BIT) , ARM_EABI_VER5 = 0x05000000 | (PF_ARM_ID << PFLAGS_BIT) ,
  HEXAGON_MACH_V2 = 0x00000001 | (PF_HEX_ID << PFLAGS_BIT) , HEXAGON_MACH_V3 = 0x00000002 | (PF_HEX_ID << PFLAGS_BIT) , HEXAGON_MACH_V4 = 0x00000003 | (PF_HEX_ID << PFLAGS_BIT) , HEXAGON_MACH_V5 = 0x00000004 | (PF_HEX_ID << PFLAGS_BIT) ,
  HEXAGON_ISA_V2 = 0x00000010 | (PF_HEX_ID << PFLAGS_BIT) , HEXAGON_ISA_V3 = 0x00000020 | (PF_HEX_ID << PFLAGS_BIT) , HEXAGON_ISA_V4 = 0x00000030 | (PF_HEX_ID << PFLAGS_BIT) , HEXAGON_ISA_V5 = 0x00000040 | (PF_HEX_ID << PFLAGS_BIT) ,
  LOONGARCH_ABI_SOFT_FLOAT = 0x1 | (PF_LOONGARCH_ID << PFLAGS_BIT) , LOONGARCH_ABI_SINGLE_FLOAT = 0x2 | (PF_LOONGARCH_ID << PFLAGS_BIT) , LOONGARCH_ABI_DOUBLE_FLOAT = 0x3 | (PF_LOONGARCH_ID << PFLAGS_BIT) , MIPS_NOREORDER = 0x00000001 | (PF_MIPS_ID << PFLAGS_BIT) ,
  MIPS_PIC = 0x00000002 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_CPIC = 0x00000004 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ABI2 = 0x00000020 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_32BITMODE = 0x00000100 | (PF_MIPS_ID << PFLAGS_BIT) ,
  MIPS_FP64 = 0x00000200 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_NAN2008 = 0x00000400 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ABI_O32 = 0x00001000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ABI_O64 = 0x00002000 | (PF_MIPS_ID << PFLAGS_BIT) ,
  MIPS_ABI_EABI32 = 0x00003000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ABI_EABI64 = 0x00004000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_3900 = 0x00810000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_4010 = 0x00820000 | (PF_MIPS_ID << PFLAGS_BIT) ,
  MIPS_MACH_4100 = 0x00830000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_4650 = 0x00850000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_4120 = 0x00870000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_4111 = 0x00880000 | (PF_MIPS_ID << PFLAGS_BIT) ,
  MIPS_MACH_SB1 = 0x008a0000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_OCTEON = 0x008b0000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_XLR = 0x008c0000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_OCTEON2 = 0x008d0000 | (PF_MIPS_ID << PFLAGS_BIT) ,
  MIPS_MACH_OCTEON3 = 0x008e0000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_5400 = 0x00910000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_5900 = 0x00920000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_5500 = 0x00980000 | (PF_MIPS_ID << PFLAGS_BIT) ,
  MIPS_MACH_9000 = 0x00990000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_LS2E = 0x00a00000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_LS2F = 0x00a10000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_MACH_LS3A = 0x00a20000 | (PF_MIPS_ID << PFLAGS_BIT) ,
  MIPS_MICROMIPS = 0x02000000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ARCH_ASE_M16 = 0x04000000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ARCH_ASE_MDMX = 0x08000000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ARCH_1 = 0x00000000 | (PF_MIPS_ID << PFLAGS_BIT) ,
  MIPS_ARCH_2 = 0x10000000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ARCH_3 = 0x20000000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ARCH_4 = 0x30000000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ARCH_5 = 0x40000000 | (PF_MIPS_ID << PFLAGS_BIT) ,
  MIPS_ARCH_32 = 0x50000000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ARCH_64 = 0x60000000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ARCH_32R2 = 0x70000000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ARCH_64R2 = 0x80000000 | (PF_MIPS_ID << PFLAGS_BIT) ,
  MIPS_ARCH_32R6 = 0x90000000 | (PF_MIPS_ID << PFLAGS_BIT) , MIPS_ARCH_64R6 = 0xa0000000 | (PF_MIPS_ID << PFLAGS_BIT) , RISCV_RVC = 0x00000001 | (PF_RISCV_ID << PFLAGS_BIT) , RISCV_FLOAT_ABI_SOFT = 0x00000000 | (PF_RISCV_ID << PFLAGS_BIT) ,
  RISCV_FLOAT_ABI_SINGLE = 0x00000002 | (PF_RISCV_ID << PFLAGS_BIT) , RISCV_FLOAT_ABI_DOUBLE = 0x00000004 | (PF_RISCV_ID << PFLAGS_BIT) , RISCV_FLOAT_ABI_QUAD = 0x00000006 | (PF_RISCV_ID << PFLAGS_BIT) , RISCV_FLOAT_ABI_RVE = 0x00000008 | (PF_RISCV_ID << PFLAGS_BIT) ,
  RISCV_FLOAT_ABI_TSO = 0x00000010 | (PF_RISCV_ID << PFLAGS_BIT)
}
 

Functions

const char * to_string (DynamicEntry::TAG e)
 
const char * to_string (DynamicEntryFlags::FLAG e)
 
const char * to_string (ARCH e)
 
const char * to_string (Header::FILE_TYPE type)
 
const char * to_string (Header::VERSION version)
 
const char * to_string (Header::CLASS version)
 
const char * to_string (Header::OS_ABI abi)
 
const char * to_string (Header::ELF_DATA abi)
 
std::string to_json (const Object &v)
 
const char * to_string (Note::TYPE type)
 
const char * to_string (CoreAuxv::TYPE type)
 
const char * to_string (CorePrStatus::Registers::X86 e)
 
const char * to_string (CorePrStatus::Registers::X86_64 e)
 
const char * to_string (CorePrStatus::Registers::ARM e)
 
const char * to_string (CorePrStatus::Registers::AARCH64 e)
 
const char * to_string (NoteAbi::ABI abi)
 
const char * to_string (NoteGnuProperty::Property::TYPE type)
 
const char * to_string (AArch64Feature::FEATURE feature)
 
const char * to_string (X86Features::FLAG flag)
 
const char * to_string (X86Features::FEATURE feat)
 
const char * to_string (X86ISA::FLAG flag)
 
const char * to_string (X86ISA::ISA isa)
 
const char * to_string (PROCESSOR_FLAGS flag)
 
const char * to_string (Relocation::TYPE type)
 
const char * to_string (Section::TYPE e)
 
const char * to_string (Section::FLAGS e)
 
const char * to_string (Segment::TYPE e)
 
const char * to_string (Segment::FLAGS e)
 
const char * to_string (Symbol::BINDING binding)
 
const char * to_string (Symbol::TYPE type)
 
const char * to_string (Symbol::VISIBILITY viz)
 
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)
 

Detailed Description

Namespace related to the LIEF's ELF module.

Enumeration Type Documentation

◆ ARCH

enum class LIEF::ELF::ARCH
strong

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

Enumerator
NONE 

No machine

M32 

AT&T WE 32100

SPARC 

SPARC

I386 

Intel 386

M68K 

Motorola 68000

M88K 

Motorola 88000

IAMCU 

Intel MCU

I860 

Intel 80860

MIPS 

MIPS R3000

S370 

IBM System/370

MIPS_RS3_LE 

MIPS RS3000 Little-endian

PARISC 

Hewlett-Packard PA-RISC

VPP500 

Fujitsu VPP500

SPARC32PLUS 

Enhanced instruction set SPARC

I60 

Intel 80960

PPC 

PowerPC

PPC64 

PowerPC64

S390 

IBM System/390

SPU 

IBM SPU/SPC

V800 

NEC V800

FR20 

Fujitsu FR20

RH32 

TRW RH-32

RCE 

Motorola RCE

ARM 

ARM

ALPHA 

DEC Alpha

SH 

Hitachi SH

SPARCV9 

SPARC V9

TRICORE 

Siemens TriCore

ARC 

Argonaut RISC Core

H8_300 

Hitachi H8/300

H8_300H 

Hitachi H8/300H

H8S 

Hitachi H8S

H8_500 

Hitachi H8/500

IA_64 

Intel IA-64 processor architecture

MIPS_X 

Stanford MIPS-X

COLDFIRE 

Motorola ColdFire

M68HC12 

Motorola M68HC12

MMA 

Fujitsu MMA Multimedia Accelerator

PCP 

Siemens PCP

NCPU 

Sony nCPU embedded RISC processor

NDR1 

Denso NDR1 microprocessor

STARCORE 

Motorola Star*Core processor

ME16 

Toyota ME16 processor

ST100 

STMicroelectronics ST100 processor

TINYJ 

Advanced Logic Corp. TinyJ embedded processor family

X86_64 

AMD x86-64 architecture

PDSP 

Sony DSP Processor

PDP10 

Digital Equipment Corp. PDP-10

PDP11 

Digital Equipment Corp. PDP-11

FX66 

Siemens FX66 microcontroller

ST9PLUS 

STMicroelectronics ST9+ 8/16 bit microcontroller

ST7 

STMicroelectronics ST7 8-bit microcontroller

M68HC16 

Motorola MC68HC16 Microcontroller

M68HC11 

Motorola MC68HC11 Microcontroller

M68HC08 

Motorola MC68HC08 Microcontroller

M68HC05 

Motorola MC68HC05 Microcontroller

SVX 

Silicon Graphics SVx

ST19 

STMicroelectronics ST19 8-bit microcontroller

VAX 

Digital VAX

CRIS 

Axis Communications 32-bit embedded processor

JAVELIN 

Infineon Technologies 32-bit embedded processor

FIREPATH 

Element 14 64-bit DSP Processor

ZSP 

LSI Logic 16-bit DSP Processor

MMIX 

Donald Knuth's educational 64-bit processor

HUANY 

Harvard University machine-independent object files

PRISM 

SiTera Prism

AVR 

Atmel AVR 8-bit microcontroller

FR30 

Fujitsu FR30

D10V 

Mitsubishi D10V

D30V 

Mitsubishi D30V

V850 

NEC v850

M32R 

Mitsubishi M32R

MN10300 

Matsushita MN10300

MN10200 

Matsushita MN10200

PJ 

picoJava

OPENRISC 

OpenRISC 32-bit embedded processor

ARC_COMPACT 

ARC International ARCompact processor (old spelling/synonym: EM_ARC_A5)

XTENSA 

Tensilica Xtensa Architecture

VIDEOCORE 

Alphamosaic VideoCore processor

TMM_GPP 

Thompson Multimedia General Purpose Processor

NS32K 

National Semiconductor 32000 series

TPC 

Tenor Network TPC processor

SNP1K 

Trebia SNP 1000 processor

ST200 

STMicroelectronics (www.st.com) ST200

IP2K 

Ubicom IP2xxx microcontroller family

MAX 

MAX Processor

CR 

National Semiconductor CompactRISC microprocessor

F2MC16 

Fujitsu F2MC16

MSP430 

Texas Instruments embedded microcontroller msp430

BLACKFIN 

Analog Devices Blackfin (DSP) processor

SE_C33 

S1C33 Family of Seiko Epson processors

SEP 

Sharp embedded microprocessor

ARCA 

Arca RISC Microprocessor

UNICORE 

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

EXCESS 

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

DXP 

Icera Semiconductor Inc. Deep Execution Processor

ALTERA_NIOS2 

Altera Nios II soft-core processor

CRX 

National Semiconductor CompactRISC CRX

XGATE 

Motorola XGATE embedded processor

C166 

Infineon C16x/XC16x processor

M16C 

Renesas M16C series microprocessors

DSPIC30F 

Microchip Technology dsPIC30F Digital Signal

CE 

Freescale Communication Engine RISC core

M32C 

Renesas M32C series microprocessors

TSK3000 

Altium TSK3000 core

RS08 

Freescale RS08 embedded processor

SHARC 

Analog Devices SHARC family of 32-bit DSP

ECOG2 

Cyan Technology eCOG2 microprocessor

SCORE7 

Sunplus S+core7 RISC processor

DSP24 

New Japan Radio (NJR) 24-bit DSP Processor

VIDEOCORE3 

Broadcom VideoCore III processor

LATTICEMICO32 

RISC processor for Lattice FPGA architecture

SE_C17 

Seiko Epson C17 family

TI_C6000 

The Texas Instruments TMS320C6000 DSP family

TI_C2000 

The Texas Instruments TMS320C2000 DSP family

TI_C5500 

The Texas Instruments TMS320C55x DSP family

MMDSP_PLUS 

STMicroelectronics 64bit VLIW Data Signal Processor

CYPRESS_M8C 

Cypress M8C microprocessor

R32C 

Renesas R32C series microprocessors

TRIMEDIA 

NXP Semiconductors TriMedia architecture family

HEXAGON 

Qualcomm Hexagon processor

M8051 

Intel 8051 and variants

STXP7X 

STMicroelectronics STxP7x family of configurable

NDS32 
ECOG1 

Cyan Technology eCOG1X family

ECOG1X 

Cyan Technology eCOG1X family

MAXQ30 

Dallas Semiconductor MAXQ30 Core Micro-controllers

XIMO16 

New Japan Radio (NJR) 16-bit DSP Processor

MANIK 

M2000 Reconfigurable RISC Microprocessor

CRAYNV2 

Cray Inc. NV2 vector architecture

RX 

Renesas RX family

METAG 

Imagination Technologies META processor

MCST_ELBRUS 

MCST Elbrus general purpose hardware architecture

ECOG16 

Cyan Technology eCOG16 family

CR16 

National Semiconductor CompactRISC CR16 16-bit

ETPU 

Freescale Extended Time Processing Unit

SLE9X 

Infineon Technologies SLE9X core

L10M 

Intel L10M

K10M 

Intel K10M

AARCH64 

ARM AArch64

AVR32 

Atmel Corporation 32-bit microprocessor family

STM8 

STMicroeletronics STM8 8-bit microcontroller

TILE64 

Tilera TILE64 multicore architecture family

TILEPRO 

Tilera TILEPro multicore architecture family

CUDA 

NVIDIA CUDA architecture

TILEGX 

Tilera TILE-Gx multicore architecture family

CLOUDSHIELD 

CloudShield architecture family

COREA_1ST 

KIPO-KAIST Core-A 1st generation processor family

COREA_2ND 

KIPO-KAIST Core-A 2nd generation processor family

ARC_COMPACT2 

Synopsys ARCompact V2

OPEN8 

Open8 8-bit RISC soft processor core

RL78 

Renesas RL78 family

VIDEOCORE5 

Broadcom VideoCore V processor

M78KOR 

Renesas 78KOR family

M56800EX 

Freescale 56800EX Digital Signal Controller (DSC)

BA1 

Beyond BA1 CPU architecture

BA2 

Beyond BA2 CPU architecture

XCORE 

XMOS xCORE processor family

MCHP_PIC 

Microchip 8-bit PIC(r) family

INTEL205 

Reserved by Intel

INTEL206 

Reserved by Intel

INTEL207 

Reserved by Intel

INTEL208 

Reserved by Intel

INTEL209 

Reserved by Intel

KM32 

KM211 KM32 32-bit processor

KMX32 

KM211 KMX32 32-bit processor

KMX16 

KM211 KMX16 16-bit processor

KMX8 

KM211 KMX8 8-bit processor

KVARC 

KM211 KVARC processor

CDP 

Paneve CDP architecture family

COGE 

Cognitive Smart Memory Processor

COOL 

iCelero CoolEngine

NORC 

Nanoradio Optimized RISC

CSR_KALIMBA 

CSR Kalimba architecture family

AMDGPU 

AMD GPU architecture

RISCV 

RISC-V

BPF 

eBPF Filter

CSKY 

C-SKY

LOONGARCH 

LoongArch

◆ PROCESSOR_FLAGS

enum class LIEF::ELF::PROCESSOR_FLAGS : uint64_t
strong
Enumerator
ARM_EABI_UNKNOWN 
ARM_SOFT_FLOAT 
ARM_VFP_FLOAT 
ARM_EABI_VER1 
ARM_EABI_VER2 
ARM_EABI_VER3 
ARM_EABI_VER4 
ARM_EABI_VER5 
HEXAGON_MACH_V2 
HEXAGON_MACH_V3 
HEXAGON_MACH_V4 
HEXAGON_MACH_V5 
HEXAGON_ISA_V2 
HEXAGON_ISA_V3 
HEXAGON_ISA_V4 
HEXAGON_ISA_V5 
LOONGARCH_ABI_SOFT_FLOAT 
LOONGARCH_ABI_SINGLE_FLOAT 
LOONGARCH_ABI_DOUBLE_FLOAT 
MIPS_NOREORDER 
MIPS_PIC 
MIPS_CPIC 
MIPS_ABI2 
MIPS_32BITMODE 
MIPS_FP64 
MIPS_NAN2008 
MIPS_ABI_O32 
MIPS_ABI_O64 
MIPS_ABI_EABI32 
MIPS_ABI_EABI64 
MIPS_MACH_3900 
MIPS_MACH_4010 
MIPS_MACH_4100 
MIPS_MACH_4650 
MIPS_MACH_4120 
MIPS_MACH_4111 
MIPS_MACH_SB1 
MIPS_MACH_OCTEON 
MIPS_MACH_XLR 
MIPS_MACH_OCTEON2 
MIPS_MACH_OCTEON3 
MIPS_MACH_5400 
MIPS_MACH_5900 
MIPS_MACH_5500 
MIPS_MACH_9000 
MIPS_MACH_LS2E 
MIPS_MACH_LS2F 
MIPS_MACH_LS3A 
MIPS_MICROMIPS 
MIPS_ARCH_ASE_M16 
MIPS_ARCH_ASE_MDMX 
MIPS_ARCH_1 
MIPS_ARCH_2 
MIPS_ARCH_3 
MIPS_ARCH_4 
MIPS_ARCH_5 
MIPS_ARCH_32 
MIPS_ARCH_64 
MIPS_ARCH_32R2 
MIPS_ARCH_64R2 
MIPS_ARCH_32R6 
MIPS_ARCH_64R6 
RISCV_RVC 
RISCV_FLOAT_ABI_SOFT 
RISCV_FLOAT_ABI_SINGLE 
RISCV_FLOAT_ABI_DOUBLE 
RISCV_FLOAT_ABI_QUAD 
RISCV_FLOAT_ABI_RVE 
RISCV_FLOAT_ABI_TSO 

Function Documentation

◆ dl_new_hash()

uint32_t LIEF::ELF::dl_new_hash ( const char * name)

◆ hash32()

unsigned long LIEF::ELF::hash32 ( const char * name)

◆ hash64()

unsigned long LIEF::ELF::hash64 ( const char * name)

◆ is_elf() [1/3]

bool LIEF::ELF::is_elf ( BinaryStream & stream)

Check if given stream wraps an ELF file.

◆ is_elf() [2/3]

bool LIEF::ELF::is_elf ( const std::string & file)

Check if the given file is an ELF one.

◆ is_elf() [3/3]

bool LIEF::ELF::is_elf ( const std::vector< uint8_t > & raw)

check if the raw data is a ELF file

◆ to_json()

std::string LIEF::ELF::to_json ( const Object & v)

◆ to_string() [1/30]

const char * LIEF::ELF::to_string ( AArch64Feature::FEATURE feature)

◆ to_string() [2/30]

const char * LIEF::ELF::to_string ( ARCH e)

◆ to_string() [3/30]

const char * LIEF::ELF::to_string ( CoreAuxv::TYPE type)

◆ to_string() [4/30]

const char * LIEF::ELF::to_string ( CorePrStatus::Registers::AARCH64 e)

◆ to_string() [5/30]

const char * LIEF::ELF::to_string ( CorePrStatus::Registers::ARM e)

◆ to_string() [6/30]

const char * LIEF::ELF::to_string ( CorePrStatus::Registers::X86 e)

◆ to_string() [7/30]

const char * LIEF::ELF::to_string ( CorePrStatus::Registers::X86_64 e)

◆ to_string() [8/30]

const char * LIEF::ELF::to_string ( DynamicEntry::TAG e)

◆ to_string() [9/30]

const char * LIEF::ELF::to_string ( DynamicEntryFlags::FLAG e)

◆ to_string() [10/30]

const char * LIEF::ELF::to_string ( Header::CLASS version)

◆ to_string() [11/30]

const char * LIEF::ELF::to_string ( Header::ELF_DATA abi)

◆ to_string() [12/30]

const char * LIEF::ELF::to_string ( Header::FILE_TYPE type)

◆ to_string() [13/30]

const char * LIEF::ELF::to_string ( Header::OS_ABI abi)

◆ to_string() [14/30]

const char * LIEF::ELF::to_string ( Header::VERSION version)

◆ to_string() [15/30]

const char * LIEF::ELF::to_string ( Note::TYPE type)

◆ to_string() [16/30]

const char * LIEF::ELF::to_string ( NoteAbi::ABI abi)

◆ to_string() [17/30]

const char * LIEF::ELF::to_string ( NoteGnuProperty::Property::TYPE type)

◆ to_string() [18/30]

const char * LIEF::ELF::to_string ( PROCESSOR_FLAGS flag)

◆ to_string() [19/30]

const char * LIEF::ELF::to_string ( Relocation::TYPE type)

◆ to_string() [20/30]

const char * LIEF::ELF::to_string ( Section::FLAGS e)

◆ to_string() [21/30]

const char * LIEF::ELF::to_string ( Section::TYPE e)

◆ to_string() [22/30]

const char * LIEF::ELF::to_string ( Segment::FLAGS e)

◆ to_string() [23/30]

const char * LIEF::ELF::to_string ( Segment::TYPE e)

◆ to_string() [24/30]

const char * LIEF::ELF::to_string ( Symbol::BINDING binding)

◆ to_string() [25/30]

const char * LIEF::ELF::to_string ( Symbol::TYPE type)

◆ to_string() [26/30]

const char * LIEF::ELF::to_string ( Symbol::VISIBILITY viz)

◆ to_string() [27/30]

const char * LIEF::ELF::to_string ( X86Features::FEATURE feat)

◆ to_string() [28/30]

const char * LIEF::ELF::to_string ( X86Features::FLAG flag)

◆ to_string() [29/30]

const char * LIEF::ELF::to_string ( X86ISA::FLAG flag)

◆ to_string() [30/30]

const char * LIEF::ELF::to_string ( X86ISA::ISA isa)