ELF

Parser

lief.ELF.parse(*args, **kwargs)

Overloaded function.

  1. parse(filename: str, dynsym_count_method: _pylief.ELF.DYNSYM_COUNT_METHODS=DYNSYM_COUNT_METHODS.AUTO) -> LIEF::ELF::Binary

Parse the given binary and return a Binary object

For weird binaries (e.g sectionless) you can choose the method to use to count dynamic symbols (DYNSYM_COUNT_METHODS)

  1. parse(raw: List[int], name: str=’‘, dynsym_count_method: _pylief.ELF.DYNSYM_COUNT_METHODS=DYNSYM_COUNT_METHODS.AUTO) -> LIEF::ELF::Binary

Parse the given binary and return a Binary object

For weird binaries (e.g sectionless) you can choose the method to use to count dynamic symbols (DYNSYM_COUNT_METHODS)

  1. parse(io: object, name: str=’‘) -> LIEF::ELF::Binary

Binary

class lief.ELF.Binary(self: _pylief.ELF.Binary, arg0: str, arg1: _pylief.ELF.ELF_CLASS) → None

ELF binary representation

class VA_TYPES(self: _pylief.VA_TYPES, arg0: int) → None
AUTO = VA_TYPES.AUTO
RVA = VA_TYPES.RVA
VA = VA_TYPES.VA
abstract

Return the Binary object

Warning

Getting this property modifies the __class__ attribute so that the current binary looks like a Binary.

Use the concrete to get back to the original binary.

add(*args, **kwargs)

Overloaded function.

  1. add(self: _pylief.ELF.Binary, arg0: LIEF::ELF::DynamicEntry) -> LIEF::ELF::DynamicEntry

dynamic_entry

  1. add(self: _pylief.ELF.Binary, section: LIEF::ELF::Section, loaded: bool=True) -> LIEF::ELF::Section

Add the given Section to the binary.

If the section should not be loaded in memory, loaded parameter have to be set to False (default: True)

  1. add(self: _pylief.ELF.Binary, segment: LIEF::ELF::Segment, base: int=0) -> LIEF::ELF::Segment

Add a segment in the binary

  1. add(self: _pylief.ELF.Binary, note: LIEF::ELF::Note) -> LIEF::ELF::Note

Add a new Note in the binary

add_dynamic_relocation(self: _pylief.ELF.Binary, arg0: LIEF::ELF::Relocation) → LIEF::ELF::Relocation
add_dynamic_symbol(self: _pylief.ELF.Binary, symbol: LIEF::ELF::Symbol, symbol_version: _pylief.ELF.SymbolVersion=<_pylief.ELF.SymbolVersion object at 0x7f5f791dbd18>) → LIEF::ELF::Symbol

Add a dynamic Symbol to the binary

add_exported_function(self: _pylief.ELF.Binary, address: int, name: str='') → LIEF::ELF::Symbol

Create a symbol for the function at the given address and export it

add_library(self: _pylief.ELF.Binary, library_name: str) → LIEF::ELF::DynamicEntryLibrary

Add a library with the given name as dependency

add_pltgot_relocation(self: _pylief.ELF.Binary, arg0: LIEF::ELF::Relocation) → LIEF::ELF::Relocation
add_static_symbol(self: _pylief.ELF.Binary, symbol: LIEF::ELF::Symbol) → LIEF::ELF::Symbol

Add a static Symbol to the binary

concrete

Return either lief.ELF.Binary, lief.PE.Binary, lief.MachO.Binary object

ctor_functions

Constructor functions that are called prior any other functions

dtor_functions

Destuctor functions that are called the main execution

dynamic_entries

Return an iterator to DynamicEntry entries as a list

dynamic_relocations

Return an iterator over dynamics Relocation

dynamic_symbols

Return an iterator to dynamic Symbol

entrypoint

Binary’s entrypoint

eof_offset

Last offset that is used by the ELF format. Data after this offset are considered as overlay data

export_symbol(*args, **kwargs)

Overloaded function.

  1. export_symbol(self: _pylief.ELF.Binary, symbol: LIEF::ELF::Symbol) -> LIEF::ELF::Symbol

Export the given symbol and create it if it doesn’t exist

  1. export_symbol(self: _pylief.ELF.Binary, symbol_name: str, value: int=0) -> LIEF::ELF::Symbol

Export the symbol with the given name and create it if it doesn’t exist

exported_functions

Return binary’s exported Function

exported_symbols

Return dynamic Symbol which are exported

extend(*args, **kwargs)

Overloaded function.

  1. extend(self: _pylief.ELF.Binary, segment: LIEF::ELF::Segment, size: int) -> LIEF::ELF::Segment

Extend the given given Segment by the given size

  1. extend(self: _pylief.ELF.Binary, segment: LIEF::ELF::Section, size: int) -> LIEF::ELF::Section

Extend the given given Section by the given size

format

File format EXE_FORMATS of the underlying binary.

functions
get(*args, **kwargs)

Overloaded function.

  1. get(self: _pylief.ELF.Binary, tag: _pylief.ELF.DYNAMIC_TAGS) -> LIEF::ELF::DynamicEntry

Return first binary’s DynamicEntry given its DYNAMIC_TAGS

  1. get(self: _pylief.ELF.Binary, type: _pylief.ELF.SEGMENT_TYPES) -> LIEF::ELF::Segment

Return first binary’s Segment given its SEGMENT_TYPES

  1. get(self: _pylief.ELF.Binary, type: _pylief.ELF.NOTE_TYPES) -> LIEF::ELF::Note

Return first binary’s Note given its NOTE_TYPES

  1. get(self: _pylief.ELF.Binary, type: _pylief.ELF.SECTION_TYPES) -> LIEF::ELF::Section

Return first binary’s Section given its ELF_SECTION_TYPES

get_content_from_virtual_address(self: _pylief.Binary, virtual_address: int, size: int, va_type: _pylief.VA_TYPES=VA_TYPES.AUTO) → List[int]

Return the content located at virtual address.

Virtual address is specified in the first argument and size to read (in bytes) in the second. If the underlying binary is a PE, one can specify if the virtual address is a RVA or a VA. By default it is set to AUTO

get_dynamic_symbol(self: _pylief.ELF.Binary, symbol_name: str) → LIEF::ELF::Symbol

Get the dynamic symbol from the given name

get_function_address(self: _pylief.Binary, function_name: str) → int

Return the address of the given function name

get_library(self: _pylief.ELF.Binary, library_name: str) → LIEF::ELF::DynamicEntryLibrary

Return the DynamicEntryLibrary with the given name

get_relocation(*args, **kwargs)

Overloaded function.

  1. get_relocation(self: _pylief.ELF.Binary, symbol_name: str) -> LIEF::ELF::Relocation

Return the Relocation associated with the given symbol name

  1. get_relocation(self: _pylief.ELF.Binary, symbol: LIEF::ELF::Symbol) -> LIEF::ELF::Relocation

Return the Relocation associated with the given Symbol

  1. get_relocation(self: _pylief.ELF.Binary, address: int) -> LIEF::ELF::Relocation

Return the Relocation associated with the given address

get_section(self: _pylief.ELF.Binary, section_name: str) → LIEF::ELF::Section

Return the Section with the given name

get_static_symbol(self: _pylief.ELF.Binary, symbol_name: str) → LIEF::ELF::Symbol

Get the dynamic symbol from the given name

get_symbol(self: _pylief.Binary, symbol_name: str) → LIEF::Symbol

Return the Symbol with the given name

gnu_hash

Return the GnuHash object

Hash are used by the loader to speed up symbols resolving (GNU Version)

has(*args, **kwargs)

Overloaded function.

  1. has(self: _pylief.ELF.Binary, tag: _pylief.ELF.DYNAMIC_TAGS) -> bool

Check if the DynamicEntry associated with the given DYNAMIC_TAGS exists

  1. has(self: _pylief.ELF.Binary, type: _pylief.ELF.SEGMENT_TYPES) -> bool

Check if a Segment of type (SEGMENT_TYPES) exists

  1. has(self: _pylief.ELF.Binary, type: _pylief.ELF.NOTE_TYPES) -> bool

Check if a Note of type (NOTE_TYPES) exists

  1. has(self: _pylief.ELF.Binary, type: _pylief.ELF.SECTION_TYPES) -> bool

Check if a Section of type (ECTION_TYPES) exists

has_dynamic_symbol(self: _pylief.ELF.Binary, symbol_name: str) → bool

Check if the symbol with the given name exists in the dynamic symbol table

has_interpreter

True if the binary uses a loader

has_library(self: _pylief.ELF.Binary, library_name: str) → bool

Check if the given library name exists in the current binary

has_notes

True if the binary contains notes

has_nx

Check if the binary uses NX protection

has_overlay

True if data are appended to the end of the binary

has_section(self: _pylief.ELF.Binary, section_name: str) → bool

Check if a section with the given name exists in the binary

has_static_symbol(self: _pylief.ELF.Binary, symbol_name: str) → bool

Check if the symbol with the given name exists in the static symbol table

has_symbol(self: _pylief.Binary, symbol_name: str) → bool

Check if a Symbol with the given name exists

header

Return Header object

imagebase

Return the program image base. (e.g. 0x400000)

imported_functions

Return binary’s imported Function (name)

imported_symbols

Return dynamic Symbol which are imported

interpreter

ELF interprer (loader) if any. (e.g. /lib64/ld-linux-x86-64.so.2)

is_pie

True if the binary is a pie one

last_offset_section

Return the last offset used in binary according to section headers

last_offset_segment

Return the last offset used in binary according to segment headers

libraries

Return binary’s imported libraries (name)

name

Binary’s name

next_virtual_address

Return the next virtual address available

notes

Return an iterator to Note entries as a list

object_relocations

Return an iterator over object Relocation

overlay

Overlay data that are not a part of the ELF format

patch_address(*args, **kwargs)

Overloaded function.

  1. patch_address(self: _pylief.Binary, address: int, patch_value: List[int], va_type: _pylief.VA_TYPES=VA_TYPES.AUTO) -> None

Virtual address is specified in the first argument and the content in the second (as a list of bytes). If the underlying binary is a PE, one can specify if the virtual address is a RVA or a VA. By default it is set to AUTO

  1. patch_address(self: _pylief.Binary, address: int, patch_value: int, size: int=8, va_type: _pylief.VA_TYPES=VA_TYPES.AUTO) -> None

Virtual address is specified in the first argument, integer in the second and sizeof the integer in third one. If the underlying binary is a PE, one can specify if the virtual address is a RVA or a VA. By default it is set to AUTO

patch_pltgot(*args, **kwargs)

Overloaded function.

  1. patch_pltgot(self: _pylief.ELF.Binary, symbol_name: str, address: int) -> None

Patch the imported symbol’s name with the address

  1. patch_pltgot(self: _pylief.ELF.Binary, symbol: LIEF::ELF::Symbol, address: int) -> None

Patch the imported Symbol with the address

permute_dynamic_symbols(self: _pylief.ELF.Binary, permutation: List[int]) → None

Apply the given permutation on the dynamic symbols table

pltgot_relocations

Return an iterator over PLT/GOT Relocation

relocations

Return an iterator over all Relocation s

remove(*args, **kwargs)

Overloaded function.

  1. remove(self: _pylief.ELF.Binary, dynamic_entry: LIEF::ELF::DynamicEntry) -> None

Remove the given DynamicEntry from the dynamic table

  1. remove(self: _pylief.ELF.Binary, tag: _pylief.ELF.DYNAMIC_TAGS) -> None

Remove all DynamicEntry with the given DYNAMIC_TAGS

  1. remove(self: _pylief.ELF.Binary, section: LIEF::ELF::Section, clear: bool=False) -> None

Remove the given Section. clear specify whether or not we must fill its content with 0 before removing

  1. remove(self: _pylief.ELF.Binary, note: LIEF::ELF::Note) -> None

Remove the given Note

  1. remove(self: _pylief.ELF.Binary, type: _pylief.ELF.NOTE_TYPES) -> None

Remove all Note with the given NOTE_TYPES

remove_library(self: _pylief.ELF.Binary, library_name: str) → None

Remove the given library

remove_section(self: _pylief.Binary, name: str, clear: bool=False) → None

Remove the section with the given name

remove_static_symbol(self: _pylief.ELF.Binary, arg0: LIEF::ELF::Symbol) → None

Remove the given Symbol in the .symtab section

replace(self: _pylief.ELF.Binary, new_segment: LIEF::ELF::Segment, original_segment: LIEF::ELF::Segment, base: int=0) → LIEF::ELF::Segment

Replace the segment given in 2nd parameter with the segment given in the first one and return the updated segment

section_from_offset(self: _pylief.ELF.Binary, offset: int) → LIEF::ELF::Section

Return binary’s Section which holds the offset

section_from_virtual_address(self: _pylief.ELF.Binary, address: int) → LIEF::ELF::Section

Return binary’s Section which holds the given virtual address

sections

Return an iterator to binary’s Section

segment_from_offset(self: _pylief.ELF.Binary, offset: int) → LIEF::ELF::Segment

Return binary’s Segment which holds the offset

segment_from_virtual_address(self: _pylief.ELF.Binary, address: int) → LIEF::ELF::Segment

Return binary’s Segment which holds the address

segments

Return an interator to binary’s Segment

static_symbols

Return an iterator to static Symbol

strings

Return list of strings used in the current ELF file. Basically we look for string in the .roadata section

strip(self: _pylief.ELF.Binary) → None

Strip the binary

symbols

Return an iterator over both static and dynamic Symbol

symbols_version

Return an iterator SymbolVersion

symbols_version_definition

Return an iterator to SymbolVersionDefinition

symbols_version_requirement

Return an iterator to SymbolVersionRequirement

sysv_hash

Return the SysvHash object

Hash are used by the loader to speed up symbols resolving (SYSV version)

type

Return the binary’s ELF_CLASS

use_gnu_hash

True if GNU hash is used

use_sysv_hash

True if SYSV hash is used

virtual_address_to_offset(self: _pylief.ELF.Binary, virtual_address: int) → int

Convert the virtual address to an offset in the binary

virtual_size

Return the binary’s size when mapped in memory

write(self: _pylief.ELF.Binary, output: str) → None

Rebuild the binary and write it in a file

xref(self: _pylief.Binary, Return all **virtual address** that *use* the ``address`` given in parametervirtual_address: int) → List[int]


Section

class lief.ELF.Section(*args, **kwargs)

Overloaded function.

  1. __init__(self: _pylief.ELF.Section) -> None

Default constructor

  1. __init__(self: _pylief.ELF.Section, name: str, type: _pylief.ELF.SECTION_TYPES=SECTION_TYPES.PROGBITS) -> None

Constructor from name and type

  1. __init__(self: _pylief.ELF.Section, arg0: List[int], arg1: _pylief.ELF.ELF_CLASS) -> None
add(self: _pylief.ELF.Section, flag: _pylief.ELF.SECTION_FLAGS) → None

Add the given SECTION_FLAGS to the list of flags

alignment

Section alignment

clear(self: _pylief.ELF.Section, value: int=0) → _pylief.ELF.Section

Clear the content of the section with the given value

content

Section’s content

entropy

Section’s entropy

entry_size

If section’s content is an array, entry_size holds the element size

Example:The .dynamic section contains an array of DynamicEntry. As the size of a dynamic entry is 0x10 (for ELF64), entry_size will contains this value

Warning

This value is not necessarily reliable.

file_offset

Offset of the section’s content

flags

Return section’s flags as an integer

flags_list

Return section’s flags as a list of SECTION_FLAGS

has(*args, **kwargs)

Overloaded function.

  1. has(self: _pylief.ELF.Section, flag: _pylief.ELF.SECTION_FLAGS) -> bool

Check if the given SECTION_FLAGS is present

  1. has(self: _pylief.ELF.Section, segment: LIEF::ELF::Segment) -> bool

Check if the given Segment is present in segments

information

Section information (this value depends on the section)

Index to another section

name

Section’s name

name_idx

Index of the section’s name in the string table

Warning

The value will probably change when re-building binary.

offset

Section’s offset

original_size

original data size. Without modification we have original_size == size

remove(self: _pylief.ELF.Section, flag: _pylief.ELF.SECTION_FLAGS) → None

Remove the given SECTION_FLAGS to the list of flags

search(*args, **kwargs)

Overloaded function.

  1. search(self: _pylief.Section, number: int, pos: int=0, size: int=0) -> int

Look for integer within the current section

  1. search(self: _pylief.Section, str: str, pos: int=0) -> int

Look for string within the current section

search_all(*args, **kwargs)

Overloaded function.

  1. search_all(self: _pylief.Section, number: int, size: int=0) -> List[int]

Look for all integers within the current section

  1. search_all(self: _pylief.Section, str: str) -> List[int]

Look for all strings within the current section

segments

Return segment(s) associated with the given section

size

Section’s size

type

Return a SECTION_TYPES

virtual_address

Return address where the section will be mapped in memory

Warning

This value is not reliable use segment’s virtual address (virtual_address) instead.


Segment

class lief.ELF.Segment(*args, **kwargs)

Overloaded function.

  1. __init__(self: _pylief.ELF.Segment) -> None
  2. __init__(self: _pylief.ELF.Segment, arg0: List[int]) -> None
  3. __init__(self: _pylief.ELF.Segment, arg0: List[int], arg1: _pylief.ELF.ELF_CLASS) -> None
add(self: _pylief.ELF.Segment, flag: _pylief.ELF.SEGMENT_FLAGS) → None

Add the given SEGMENT_FLAGS to the list of flags

alignment

This member gives the value to which the segments are aligned in memory and in the file. Values 0 and 1 mean no alignment is required.

content

Segment’s raw data

file_offset

Data offset in the binary

flags

Segment’s flags

has(*args, **kwargs)

Overloaded function.

  1. has(self: _pylief.ELF.Segment, flag: _pylief.ELF.SEGMENT_FLAGS) -> bool

Check if the given SEGMENT_FLAGS is present

  1. has(self: _pylief.ELF.Segment, section: _pylief.ELF.Section) -> bool

Check if the given Section is present in sections

  1. has(self: _pylief.ELF.Segment, section_name: str) -> bool

Check if the given Section ‘s name is present in sections

physical_address

Physical address of beginning of segment (OS-specific)

physical_size

Size of data in the binary

remove(self: _pylief.ELF.Segment, flag: _pylief.ELF.SEGMENT_FLAGS) → None

Remove the given SEGMENT_FLAGS to the list of flags

sections

Section (s) inside this segment

type

Segment’s SEGMENT_TYPES

virtual_address

Address where the segment will be mapped

Warning

We must have

\[ \begin{align}\begin{aligned}\text{virtual address} \equiv \text{file offset} \pmod{\text{page size}}\\\text{virtual address} \equiv \text{file offset} \pmod{\text{alignment}}\end{aligned}\end{align} \]
virtual_size

Size of this segment in memory


Dynamic Entry

class lief.ELF.DynamicEntry(*args, **kwargs)

Overloaded function.

  1. __init__(self: _pylief.ELF.DynamicEntry) -> None

Default constructor

  1. __init__(self: _pylief.ELF.DynamicEntry, tag: _pylief.ELF.DYNAMIC_TAGS, value: int) -> None

Constructor with DYNAMIC_TAGS and value

tag

Return the entry’s DYNAMIC_TAGS which represent the entry type

value

Return the entry’s value.


Dynamic Entry Library

class lief.ELF.DynamicEntryLibrary(self: _pylief.ELF.DynamicEntryLibrary, library_name: str) → None

Constructor from library name

name

Return library’s name

tag

Return the entry’s DYNAMIC_TAGS which represent the entry type

value

Return the entry’s value.


Dynamic Shared Object

class lief.ELF.DynamicSharedObject(self: _pylief.ELF.DynamicSharedObject, library_name: str) → None

Constructor from library name

name

Return the library name

tag

Return the entry’s DYNAMIC_TAGS which represent the entry type

value

Return the entry’s value.


Dynamic Entry Run Path

class lief.ELF.DynamicEntryRunPath(*args, **kwargs)

Overloaded function.

  1. __init__(self: _pylief.ELF.DynamicEntryRunPath, path: str=’‘) -> None

Constructor from (run)path

  1. __init__(self: _pylief.ELF.DynamicEntryRunPath, paths: List[str]) -> None

Constructor from a list of paths

append(self: _pylief.ELF.DynamicEntryRunPath, path: str) → _pylief.ELF.DynamicEntryRunPath

Append the given path

insert(self: _pylief.ELF.DynamicEntryRunPath, position: int, path: str) → _pylief.ELF.DynamicEntryRunPath

Insert a path at the given position

name

Runpath raw value

paths

Paths as a list

remove(self: _pylief.ELF.DynamicEntryRunPath, path: str) → _pylief.ELF.DynamicEntryRunPath

Remove the given path

runpath

Runpath raw value

tag

Return the entry’s DYNAMIC_TAGS which represent the entry type

value

Return the entry’s value.


Dynamic Entry RPath

class lief.ELF.DynamicEntryRpath(*args, **kwargs)

Overloaded function.

  1. __init__(self: _pylief.ELF.DynamicEntryRpath, path: str=’‘) -> None

Constructor from (r)path

  1. __init__(self: _pylief.ELF.DynamicEntryRpath, paths: List[str]) -> None

Constructor from a list of paths

append(self: _pylief.ELF.DynamicEntryRpath, path: str) → _pylief.ELF.DynamicEntryRpath

Append the given path

insert(self: _pylief.ELF.DynamicEntryRpath, position: int, path: str) → _pylief.ELF.DynamicEntryRpath

Insert a path at the given position

name

Return path value

paths

Paths as a list

remove(self: _pylief.ELF.DynamicEntryRpath, path: str) → _pylief.ELF.DynamicEntryRpath

Remove the given path

rpath

Return path value

tag

Return the entry’s DYNAMIC_TAGS which represent the entry type

value

Return the entry’s value.


Dynamic Entry Array

class lief.ELF.DynamicEntryArray(*args, **kwargs)

Overloaded function.

  1. __init__(self: _pylief.ELF.DynamicEntryArray) -> None
  2. __init__(self: _pylief.ELF.DynamicEntryArray, tag: _pylief.ELF.DYNAMIC_TAGS, value: int) -> None

Constructor with DYNAMIC_TAGS and value

append(self: _pylief.ELF.DynamicEntryArray, callback: int) → _pylief.ELF.DynamicEntryArray

Append the given callback

array

Return the array

insert(self: _pylief.ELF.DynamicEntryArray, position: int, callback: int) → _pylief.ELF.DynamicEntryArray

Insert a callback at the given position

remove(self: _pylief.ELF.DynamicEntryArray, callback: int) → _pylief.ELF.DynamicEntryArray

Remove the given callback

tag

Return the entry’s DYNAMIC_TAGS which represent the entry type

value

Return the entry’s value.


Dynamic Entry Flags

class lief.ELF.DynamicEntryFlags(*args, **kwargs)

Overloaded function.

  1. __init__(self: _pylief.ELF.DynamicEntryFlags) -> None
  2. __init__(self: _pylief.ELF.DynamicEntryFlags, tag: _pylief.ELF.DYNAMIC_TAGS, value: int) -> None

Constructor with DYNAMIC_TAGS and value

add(*args, **kwargs)

Overloaded function.

  1. add(self: _pylief.ELF.DynamicEntryFlags, flag: _pylief.ELF.DYNAMIC_FLAGS) -> None

Add the given DYNAMIC_FLAGS

  1. add(self: _pylief.ELF.DynamicEntryFlags, flag: _pylief.ELF.DYNAMIC_FLAGS_1) -> None

Add the given DYNAMIC_FLAGS_1

flags

Return list of DYNAMIC_FLAGS or DYNAMIC_FLAGS_1 (integer)

remove(*args, **kwargs)

Overloaded function.

  1. remove(self: _pylief.ELF.DynamicEntryFlags, flag: _pylief.ELF.DYNAMIC_FLAGS) -> None

Remove the given DYNAMIC_FLAGS

  1. remove(self: _pylief.ELF.DynamicEntryFlags, flag: _pylief.ELF.DYNAMIC_FLAGS_1) -> None

Remove the given DYNAMIC_FLAGS_1

tag

Return the entry’s DYNAMIC_TAGS which represent the entry type

value

Return the entry’s value.


Relocations

class lief.ELF.Relocation(*args, **kwargs)

Overloaded function.

  1. __init__(self: _pylief.ELF.Relocation) -> None
  2. __init__(self: _pylief.ELF.Relocation, address: int, type: int=0, addend: int=0, is_rela: bool=False) -> None
addend

Additional value

address

Relocation’s address

has_section

True if a this relocation has a Section associated

has_symbol

True if a Symbol is associated with the relocations

info

Extra information like symbol index

is_rel

True if the relocation doesn’t use the addend proprety

is_rela

True if the relocation uses the addend proprety

purpose

Purpose (RELOCATION_PURPOSES) of the relocation

section

Section to which the relocation applies

size

Relocation’s size (in bits)

symbol

Symbol associated with the relocation

type

Relocation type.

See:


Symbol

class lief.ELF.Symbol(self: _pylief.ELF.Symbol) → None
binding

A symbol’s binding determines the linkage visibility and behavior. See SYMBOL_BINDINGS

demangled_name

Symbol’s unmangled name

exported

Whether or not the symbol is exported

has_version

Check if this symbols has a SymbolVersion

imported

Whether or not the symbol is imported

information

This member specifies the symbol’s type and binding attributes

is_function

True if the symbol is a function

is_static

True if the symbol is a static one

is_variable

True if the symbol is a variable

name

Symbol’s name

other

This member should holds 0 and should not have defined meaning.

See: visibility

shndx

Section index associated with the symbol

size

Many symbols have associated sizes. For example, a data object’s size is the number of bytes contained in the object. This member holds 0 if the symbol has no size or an unknown size.

symbol_version

Return the SymbolVersion associated with this symbol

type

A symbol’s type provides a general classification for the associated entity. See: SYMBOL_TYPES

value

This member have slightly different interpretations

  • In relocatable files, value holds alignment constraints for a symbol whose section index is SHN_COMMON.
  • In relocatable files, value holds a section offset for a defined symbol. That is, value is anoffset from the beginning of the section associated with this symbol.
  • In executable and shared object files, value holds a virtual address. To make these files’ssymbols more useful for the dynamic linker, the section offset (file interpretation) gives way toa virtual address (memory interpretation) for which the section number is irrelevant.
visibility

Symbol SYMBOL_VISIBILITY.

It’s basically an alias on other


Symbol Version

class lief.ELF.SymbolVersion(*args, **kwargs)

Overloaded function.

  1. __init__(self: _pylief.ELF.SymbolVersion) -> None

Default constructor

  1. __init__(self: _pylief.ELF.SymbolVersion, arg0: int) -> None

Constructor from value

global_ = <_pylief.ELF.SymbolVersion object>
has_auxiliary_version

Check if this symbols has a SymbolVersionAux

local = <_pylief.ELF.SymbolVersion object>
symbol_version_auxiliary

Return the SymbolVersionAux associated with this version

value
  • 0 : The symbol is local
  • 1 : The symbol is global

All other values are used for versions in the own object or in any of the dependencies. This is the version the symbol is tight to.


Symbol Version Auxiliary

class lief.ELF.SymbolVersionAux

Class which modelize an Auxiliary Symbol version

name

Symbol’s name


Symbol Version Definition

class lief.ELF.SymbolVersionDefinition

Class which modelization of an entry defined in DT_VERDEF (or .gnu.version_d)

auxiliary_symbols
flags
hash
version

Version revision. Should holds 1


Symbol Version Requirement

class lief.ELF.SymbolVersionRequirement

Class which modelize an entry in DT_VERNEED or .gnu.version_r table

get_auxiliary_symbols(self: _pylief.ELF.SymbolVersionRequirement) → _pylief.N4LIEF12ref_iteratorIRSt6vectorIPNS_3ELF27SymbolVersionAuxRequirementESaIS4_EEN9__gnu_cxx17__normal_iteratorIPS4_S6_EEEE

Auxiliary entries

name
version

Version revision. Should holds 1


GNU Hash table

class lief.ELF.GnuHash(self: _pylief.ELF.GnuHash) → None
bloom_filters

Bloom filters

buckets

hash buckets

check(*args, **kwargs)

Overloaded function.

  1. check(self: _pylief.ELF.GnuHash, symbol_name: str) -> bool

Check if the symbol probably exists. If the returned value is false you can assume at 100% that the symbol with the given name doesn’t exists. If true you can’t do any assumption

  1. check(self: _pylief.ELF.GnuHash, hash_value: int) -> bool

Check if the symbol associated with the given probably exists. If the returned value is false you can assume at 100% that the symbol doesn’t exists. If true you can’t do any assumption

check_bloom_filter(self: _pylief.ELF.GnuHash, hash: int) → bool

Check if the given hash pass the bloom filter

check_bucket(self: _pylief.ELF.GnuHash, hash: int) → bool

Check if the given hash pass the bucket filter

hash_values

Hash values

nb_buckets

Return the number of buckets

shift2

Shift count used in the bloom filter

symbol_index

Index of the first symbol in the dynamic symbols table which is accessible with the hash table


SYSV Hash table

class lief.ELF.SysvHash(self: _pylief.ELF.SysvHash) → None
buckets

Buckets values

chains

Chains values

nbucket

Return the number of buckets

nchain

Return the number of chains (symbol table index)


Note

class lief.ELF.Note(*args, **kwargs)

Overloaded function.

  1. __init__(self: _pylief.ELF.Note) -> None

Default ctor

  1. __init__(self: _pylief.ELF.Note, name: str, type: _pylief.ELF.NOTE_TYPES, description: List[int]) -> None

Ctor from name, type and description

abi

Return the target NOTE_TYPES. Require a ABI_TAG type

description

Return the description associated with the note

name

Return the name of the note (Usually the owner).

type

Return the type of the note. Can be one of the NOTE_TYPES values

version

Return the target version as (Major, Minor, Patch). Require a ABI_TAG type


Android Note

class lief.ELF.AndroidNote
abi

Return the target NOTE_TYPES. Require a ABI_TAG type

description

Return the description associated with the note

name

Return the name of the note (Usually the owner).

ndk_build_number

Android NDK build number

ndk_version

Android NDK version used to build the current binary

sdk_version

Target SDK platform

type

Return the type of the note. Can be one of the NOTE_TYPES values

version

Return the target version as (Major, Minor, Patch). Require a ABI_TAG type


Builder

class lief.ELF.Builder(self: _pylief.ELF.Builder, elf_binary: _pylief.ELF.Binary) → None

Constructor that takes a Binary

build(self: _pylief.ELF.Builder) → None

Perform the build process

empties_gnuhash(self: _pylief.ELF.Builder, arg0: bool) → _pylief.ELF.Builder

Disable the GnuHash

get_build(self: _pylief.ELF.Builder) → List[int]

Return the build result as a list of bytes

write(self: _pylief.ELF.Builder, output: str) → None

Write the build result into the output file

Enums

Identity

class lief.ELF.IDENTITY(self: _pylief.ELF.IDENTITY, arg0: int) → None
ABIVERSION = IDENTITY.ABIVERSION
CLASS = IDENTITY.CLASS
DATA = IDENTITY.DATA
MAG0 = IDENTITY.MAG0
MAG1 = IDENTITY.MAG1
MAG2 = IDENTITY.MAG2
MAG3 = IDENTITY.MAG3
NIDENT = IDENTITY.NIDENT
OSABI = IDENTITY.OSABI
PAD = IDENTITY.PAD
VERSION = IDENTITY.VERSION

ELF Class

class lief.ELF.ELF_CLASS(self: _pylief.ELF.ELF_CLASS, arg0: int) → None
CLASS32 = ELF_CLASS.CLASS32
CLASS64 = ELF_CLASS.CLASS64
NONE = ELF_CLASS.NONE

ELF Data

class lief.ELF.ELF_DATA(self: _pylief.ELF.ELF_DATA, arg0: int) → None
LSB = ELF_DATA.LSB
MSB = ELF_DATA.MSB
NONE = ELF_DATA.NONE

ELF OS/ABI

class lief.ELF.OS_ABI(self: _pylief.ELF.OS_ABI, arg0: int) → None
AIX = OS_ABI.AIX
AMDGPU_HSA = OS_ABI.AMDGPU_HSA
ARM = OS_ABI.ARM
AROS = OS_ABI.AROS
C6000_LINUX = OS_ABI.C6000_LINUX
CLOUDABI = OS_ABI.CLOUDABI
FENIXOS = OS_ABI.FENIXOS
FREEBSD = OS_ABI.FREEBSD
HPUX = OS_ABI.HPUX
HURD = OS_ABI.HURD
IRIX = OS_ABI.IRIX
LINUX = OS_ABI.LINUX
MODESTO = OS_ABI.MODESTO
NETBSD = OS_ABI.NETBSD
NSK = OS_ABI.NSK
OPENBSD = OS_ABI.OPENBSD
OPENVMS = OS_ABI.OPENVMS
SOLARIS = OS_ABI.SOLARIS
STANDALONE = OS_ABI.STANDALONE
SYSTEMV = OS_ABI.SYSTEMV
TRU64 = OS_ABI.TRU64

Symbol section index

class lief.ELF.SYMBOL_SECTION_INDEX(self: _pylief.ELF.SYMBOL_SECTION_INDEX, arg0: int) → None
ABS = SYMBOL_SECTION_INDEX.ABS
COMMON = SYMBOL_SECTION_INDEX.COMMON
HIOS = SYMBOL_SECTION_INDEX.HIOS
HIPROC = SYMBOL_SECTION_INDEX.HIPROC
LOOS = SYMBOL_SECTION_INDEX.LOOS
LOPROC = SYMBOL_SECTION_INDEX.LOPROC
UNDEF = SYMBOL_SECTION_INDEX.UNDEF
XINDEX = SYMBOL_SECTION_INDEX.XINDEX

Binary types

class lief.ELF.E_TYPE(self: _pylief.ELF.E_TYPE, arg0: int) → None
CORE = E_TYPE.CORE
DYNAMIC = E_TYPE.DYNAMIC
EXECUTABLE = E_TYPE.EXECUTABLE
HIPROC = E_TYPE.HIPROC
LOPROC = E_TYPE.LOPROC
NONE = E_TYPE.NONE
RELOCATABLE = E_TYPE.RELOCATABLE

Section types

class lief.ELF.SECTION_TYPES(self: _pylief.ELF.SECTION_TYPES, arg0: int) → None
ARM_ATTRIBUTES = SECTION_TYPES.ARM_ATTRIBUTES
ARM_DEBUGOVERLAY = SECTION_TYPES.ARM_DEBUGOVERLAY
ARM_EXIDX = SECTION_TYPES.ARM_EXIDX
ARM_OVERLAYSECTION = SECTION_TYPES.ARM_OVERLAYSECTION
ARM_PREEMPTMAP = SECTION_TYPES.ARM_PREEMPTMAP
DYNAMIC = SECTION_TYPES.DYNAMIC
DYNSYM = SECTION_TYPES.DYNSYM
FINI_ARRAY = SECTION_TYPES.FINI_ARRAY
GNU_ATTRIBUTES = SECTION_TYPES.GNU_ATTRIBUTES
GNU_HASH = SECTION_TYPES.GNU_HASH
GNU_VERDEF = SECTION_TYPES.GNU_VERDEF
GNU_VERNEED = SECTION_TYPES.GNU_VERNEED
GROUP = SECTION_TYPES.GROUP
HASH = SECTION_TYPES.HASH
HEX_ORDERED = SECTION_TYPES.HEX_ORDERED
HIOS = SECTION_TYPES.HIOS
HIPROC = SECTION_TYPES.HIPROC
HIUSER = SECTION_TYPES.HIUSER
INIT_ARRAY = SECTION_TYPES.INIT_ARRAY
LOOS = SECTION_TYPES.LOOS
LOUSER = SECTION_TYPES.LOUSER
NOBITS = SECTION_TYPES.NOBITS
NOTE = SECTION_TYPES.NOTE
NULL = SECTION_TYPES.NULL
PREINIT_ARRAY = SECTION_TYPES.PREINIT_ARRAY
PROGBITS = SECTION_TYPES.PROGBITS
REL = SECTION_TYPES.REL
RELA = SECTION_TYPES.RELA
SHLIB = SECTION_TYPES.SHLIB
STRTAB = SECTION_TYPES.STRTAB
SYMTAB = SECTION_TYPES.SYMTAB
SYMTAB_SHNDX = SECTION_TYPES.SYMTAB_SHNDX

Section flags

class lief.ELF.SECTION_FLAGS(self: _pylief.ELF.SECTION_FLAGS, arg0: int) → None
ALLOC = SECTION_FLAGS.ALLOC
EXECINSTR = SECTION_FLAGS.EXECINSTR
GROUP = SECTION_FLAGS.GROUP
HEX_GPREL = SECTION_FLAGS.HEX_GPREL
MASKOS = SECTION_FLAGS.MASKOS
MASKPROC = SECTION_FLAGS.MASKPROC
MERGE = SECTION_FLAGS.MERGE
MIPS_STRING = SECTION_FLAGS.MIPS_STRING
NONE = SECTION_FLAGS.NONE
OS_NONCONFORMING = SECTION_FLAGS.OS_NONCONFORMING
STRINGS = SECTION_FLAGS.STRINGS
TLS = SECTION_FLAGS.TLS
WRITE = SECTION_FLAGS.WRITE
XCORE_SHF_CP_SECTION = SECTION_FLAGS.XCORE_SHF_CP_SECTION

Segment types

class lief.ELF.SEGMENT_TYPES(self: _pylief.ELF.SEGMENT_TYPES, arg0: int) → None
ARM_ARCHEXT = SEGMENT_TYPES.ARM_ARCHEXT
ARM_UNWIND = SEGMENT_TYPES.ARM_UNWIND
DYNAMIC = SEGMENT_TYPES.DYNAMIC
GNU_EH_FRAME = SEGMENT_TYPES.GNU_EH_FRAME
GNU_RELRO = SEGMENT_TYPES.GNU_RELRO
GNU_STACK = SEGMENT_TYPES.GNU_STACK
HIOS = SEGMENT_TYPES.HIOS
HIPROC = SEGMENT_TYPES.HIPROC
INTERP = SEGMENT_TYPES.INTERP
LOAD = SEGMENT_TYPES.LOAD
LOOS = SEGMENT_TYPES.LOOS
NOTE = SEGMENT_TYPES.NOTE
NULL = SEGMENT_TYPES.NULL
PHDR = SEGMENT_TYPES.PHDR
SHLIB = SEGMENT_TYPES.SHLIB
SUNW_UNWIND = SEGMENT_TYPES.SUNW_UNWIND
TLS = SEGMENT_TYPES.TLS

Segment flags

class lief.ELF.SEGMENT_FLAGS(self: _pylief.ELF.SEGMENT_FLAGS, arg0: int) → None
NONE = SEGMENT_FLAGS.NONE
R = SEGMENT_FLAGS.R
W = SEGMENT_FLAGS.W
X = SEGMENT_FLAGS.X

Architectures

class lief.ELF.ARCH(self: _pylief.ELF.ARCH, arg0: int) → None
AARCH64 = ARCH.AARCH64
ALPHA = ARCH.ALPHA
ALTERA_NIOS2 = ARCH.ALTERA_NIOS2
AMDGPU = ARCH.AMDGPU
ARC = ARCH.ARC
ARCA = ARCH.ARCA
ARCH_56800EX = ARCH.ARCH_56800EX
ARCH_68HC05 = ARCH.ARCH_68HC05
ARCH_68HC08 = ARCH.ARCH_68HC08
ARCH_68HC11 = ARCH.ARCH_68HC11
ARCH_68HC12 = ARCH.ARCH_68HC12
ARCH_68HC16 = ARCH.ARCH_68HC16
ARCH_68K = ARCH.ARCH_68K
ARCH_78KOR = ARCH.ARCH_78KOR
ARCH_8051 = ARCH.ARCH_8051
ARCH_860 = ARCH.ARCH_860
ARCH_88K = ARCH.ARCH_88K
ARCH_960 = ARCH.ARCH_960
ARC_COMPACT = ARCH.ARC_COMPACT
ARC_COMPACT2 = ARCH.ARC_COMPACT2
ARM = ARCH.ARM
AVR = ARCH.AVR
AVR32 = ARCH.AVR32
BA1 = ARCH.BA1
BA2 = ARCH.BA2
BLACKFIN = ARCH.BLACKFIN
C166 = ARCH.C166
CDP = ARCH.CDP
CE = ARCH.CE
CLOUDSHIELD = ARCH.CLOUDSHIELD
COGE = ARCH.COGE
COLDFIRE = ARCH.COLDFIRE
COOL = ARCH.COOL
COREA_1ST = ARCH.COREA_1ST
COREA_2ND = ARCH.COREA_2ND
CR = ARCH.CR
CR16 = ARCH.CR16
CRAYNV2 = ARCH.CRAYNV2
CRIS = ARCH.CRIS
CRX = ARCH.CRX
CSR_KALIMBA = ARCH.CSR_KALIMBA
CUDA = ARCH.CUDA
CYPRESS_M8C = ARCH.CYPRESS_M8C
D10V = ARCH.D10V
D30V = ARCH.D30V
DSP24 = ARCH.DSP24
DSPIC30F = ARCH.DSPIC30F
DXP = ARCH.DXP
ECOG16 = ARCH.ECOG16
ECOG1X = ARCH.ECOG1X
ECOG2 = ARCH.ECOG2
ETPU = ARCH.ETPU
EXCESS = ARCH.EXCESS
F2MC16 = ARCH.F2MC16
FIREPATH = ARCH.FIREPATH
FR20 = ARCH.FR20
FR30 = ARCH.FR30
FX66 = ARCH.FX66
H8S = ARCH.H8S
H8_300 = ARCH.H8_300
H8_300H = ARCH.H8_300H
H8_500 = ARCH.H8_500
HEXAGON = ARCH.HEXAGON
HUANY = ARCH.HUANY
IAMCU = ARCH.IAMCU
IA_64 = ARCH.IA_64
INTEL205 = ARCH.INTEL205
INTEL206 = ARCH.INTEL206
INTEL207 = ARCH.INTEL207
INTEL208 = ARCH.INTEL208
INTEL209 = ARCH.INTEL209
IP2K = ARCH.IP2K
JAVELIN = ARCH.JAVELIN
K10M = ARCH.K10M
KM32 = ARCH.KM32
KMX16 = ARCH.KMX16
KMX32 = ARCH.KMX32
KMX8 = ARCH.KMX8
KVARC = ARCH.KVARC
L10M = ARCH.L10M
LATTICEMICO32 = ARCH.LATTICEMICO32
M16C = ARCH.M16C
M32 = ARCH.M32
M32C = ARCH.M32C
M32R = ARCH.M32R
MANIK = ARCH.MANIK
MAX = ARCH.MAX
MAXQ30 = ARCH.MAXQ30
MCHP_PIC = ARCH.MCHP_PIC
MCST_ELBRUS = ARCH.MCST_ELBRUS
ME16 = ARCH.ME16
METAG = ARCH.METAG
MIPS = ARCH.MIPS
MIPS_RS3_LE = ARCH.MIPS_RS3_LE
MIPS_X = ARCH.MIPS_X
MMA = ARCH.MMA
MMDSP_PLUS = ARCH.MMDSP_PLUS
MMIX = ARCH.MMIX
MN10200 = ARCH.MN10200
MN10300 = ARCH.MN10300
MSP430 = ARCH.MSP430
NCPU = ARCH.NCPU
NDR1 = ARCH.NDR1
NDS32 = ARCH.NDS32
NORC = ARCH.NORC
NS32K = ARCH.NS32K
None = ARCH.None
OPEN8 = ARCH.OPEN8
OPENRISC = ARCH.OPENRISC
PARISC = ARCH.PARISC
PCP = ARCH.PCP
PDP10 = ARCH.PDP10
PDP11 = ARCH.PDP11
PDSP = ARCH.PDSP
PJ = ARCH.PJ
PPC = ARCH.PPC
PPC64 = ARCH.PPC64
PRISM = ARCH.PRISM
R32C = ARCH.R32C
RCE = ARCH.RCE
RH32 = ARCH.RH32
RL78 = ARCH.RL78
RS08 = ARCH.RS08
RX = ARCH.RX
S370 = ARCH.S370
S390 = ARCH.S390
SCORE7 = ARCH.SCORE7
SEP = ARCH.SEP
SE_C17 = ARCH.SE_C17
SE_C33 = ARCH.SE_C33
SH = ARCH.SH
SHARC = ARCH.SHARC
SLE9X = ARCH.SLE9X
SNP1K = ARCH.SNP1K
SPARC = ARCH.SPARC
SPARCV9 = ARCH.SPARCV9
SPU = ARCH.SPU
ST100 = ARCH.ST100
ST19 = ARCH.ST19
ST200 = ARCH.ST200
ST7 = ARCH.ST7
ST9PLUS = ARCH.ST9PLUS
STARCORE = ARCH.STARCORE
STM8 = ARCH.STM8
STXP7X = ARCH.STXP7X
SVX = ARCH.SVX
TILE64 = ARCH.TILE64
TILEGX = ARCH.TILEGX
TILEPRO = ARCH.TILEPRO
TINYJ = ARCH.TINYJ
TI_C2000 = ARCH.TI_C2000
TI_C5500 = ARCH.TI_C5500
TI_C6000 = ARCH.TI_C6000
TMM_GPP = ARCH.TMM_GPP
TPC = ARCH.TPC
TRICORE = ARCH.TRICORE
TRIMEDIA = ARCH.TRIMEDIA
TSK3000 = ARCH.TSK3000
UNICORE = ARCH.UNICORE
V800 = ARCH.V800
V850 = ARCH.V850
VAX = ARCH.VAX
VIDEOCORE = ARCH.VIDEOCORE
VIDEOCORE3 = ARCH.VIDEOCORE3
VIDEOCORE5 = ARCH.VIDEOCORE5
VPP500 = ARCH.VPP500
XCORE = ARCH.XCORE
XGATE = ARCH.XGATE
XIMO16 = ARCH.XIMO16
XTENSA = ARCH.XTENSA
ZSP = ARCH.ZSP
i386 = ARCH.i386
x86_64 = ARCH.x86_64

Version

class lief.ELF.VERSION(self: _pylief.ELF.VERSION, arg0: int) → None
CURRENT = VERSION.CURRENT
NONE = VERSION.NONE

Dynamic tags

class lief.ELF.DYNAMIC_TAGS(self: _pylief.ELF.DYNAMIC_TAGS, arg0: int) → None
BIND_NOW = DYNAMIC_TAGS.BIND_NOW
DEBUG = DYNAMIC_TAGS.DEBUG
FINI = DYNAMIC_TAGS.FINI
FINI_ARRAY = DYNAMIC_TAGS.FINI_ARRAY
FINI_ARRAYSZ = DYNAMIC_TAGS.FINI_ARRAYSZ
FLAGS = DYNAMIC_TAGS.FLAGS
FLAGS_1 = DYNAMIC_TAGS.FLAGS_1
GNU_HASH = DYNAMIC_TAGS.GNU_HASH
HASH = DYNAMIC_TAGS.HASH
HIPROC = DYNAMIC_TAGS.HIPROC
INIT = DYNAMIC_TAGS.INIT
INIT_ARRAY = DYNAMIC_TAGS.INIT_ARRAY
INIT_ARRAYSZ = DYNAMIC_TAGS.INIT_ARRAYSZ
JMPREL = DYNAMIC_TAGS.JMPREL
LOOS = DYNAMIC_TAGS.LOOS
LOPROC = DYNAMIC_TAGS.LOPROC
MIPS_AUX_DYNAMIC = DYNAMIC_TAGS.MIPS_AUX_DYNAMIC
MIPS_BASE_ADDRESS = DYNAMIC_TAGS.MIPS_BASE_ADDRESS
MIPS_COMPACT_SIZE = DYNAMIC_TAGS.MIPS_COMPACT_SIZE
MIPS_CONFLICT = DYNAMIC_TAGS.MIPS_CONFLICT
MIPS_CONFLICTNO = DYNAMIC_TAGS.MIPS_CONFLICTNO
MIPS_CXX_FLAGS = DYNAMIC_TAGS.MIPS_CXX_FLAGS
MIPS_DELTA_CLASS = DYNAMIC_TAGS.MIPS_DELTA_CLASS
MIPS_DELTA_CLASSSYM = DYNAMIC_TAGS.MIPS_DELTA_CLASSSYM
MIPS_DELTA_CLASSSYM_NO = DYNAMIC_TAGS.MIPS_DELTA_CLASSSYM_NO
MIPS_DELTA_CLASS_NO = DYNAMIC_TAGS.MIPS_DELTA_CLASS_NO
MIPS_DELTA_INSTANCE = DYNAMIC_TAGS.MIPS_DELTA_INSTANCE
MIPS_DELTA_INSTANCE_NO = DYNAMIC_TAGS.MIPS_DELTA_INSTANCE_NO
MIPS_DELTA_RELOC = DYNAMIC_TAGS.MIPS_DELTA_RELOC
MIPS_DELTA_RELOC_NO = DYNAMIC_TAGS.MIPS_DELTA_RELOC_NO
MIPS_DELTA_SYM = DYNAMIC_TAGS.MIPS_DELTA_SYM
MIPS_DELTA_SYM_NO = DYNAMIC_TAGS.MIPS_DELTA_SYM_NO
MIPS_DYNSTR_ALIGN = DYNAMIC_TAGS.MIPS_DYNSTR_ALIGN
MIPS_FLAGS = DYNAMIC_TAGS.MIPS_FLAGS
MIPS_GOTSYM = DYNAMIC_TAGS.MIPS_GOTSYM
MIPS_GP_VALUE = DYNAMIC_TAGS.MIPS_GP_VALUE
MIPS_HIDDEN_GOTIDX = DYNAMIC_TAGS.MIPS_HIDDEN_GOTIDX
MIPS_HIPAGENO = DYNAMIC_TAGS.MIPS_HIPAGENO
MIPS_ICHECKSUM = DYNAMIC_TAGS.MIPS_ICHECKSUM
MIPS_INTERFACE = DYNAMIC_TAGS.MIPS_INTERFACE
MIPS_INTERFACE_SIZE = DYNAMIC_TAGS.MIPS_INTERFACE_SIZE
MIPS_IVERSION = DYNAMIC_TAGS.MIPS_IVERSION
MIPS_LIBLIST = DYNAMIC_TAGS.MIPS_LIBLIST
MIPS_LIBLISTNO = DYNAMIC_TAGS.MIPS_LIBLISTNO
MIPS_LOCALPAGE_GOTIDX = DYNAMIC_TAGS.MIPS_LOCALPAGE_GOTIDX
MIPS_LOCAL_GOTIDX = DYNAMIC_TAGS.MIPS_LOCAL_GOTIDX
MIPS_LOCAL_GOTNO = DYNAMIC_TAGS.MIPS_LOCAL_GOTNO
MIPS_MSYM = DYNAMIC_TAGS.MIPS_MSYM
MIPS_OPTIONS = DYNAMIC_TAGS.MIPS_OPTIONS
MIPS_PERF_SUFFIX = DYNAMIC_TAGS.MIPS_PERF_SUFFIX
MIPS_PIXIE_INIT = DYNAMIC_TAGS.MIPS_PIXIE_INIT
MIPS_PLTGOT = DYNAMIC_TAGS.MIPS_PLTGOT
MIPS_PROTECTED_GOTIDX = DYNAMIC_TAGS.MIPS_PROTECTED_GOTIDX
MIPS_RLD_MAP = DYNAMIC_TAGS.MIPS_RLD_MAP
MIPS_RLD_TEXT_RESOLVE_ADDR = DYNAMIC_TAGS.MIPS_RLD_TEXT_RESOLVE_ADDR
MIPS_RLD_VERSION = DYNAMIC_TAGS.MIPS_RLD_VERSION
MIPS_RWPLT = DYNAMIC_TAGS.MIPS_RWPLT
MIPS_SYMBOL_LIB = DYNAMIC_TAGS.MIPS_SYMBOL_LIB
MIPS_SYMTABNO = DYNAMIC_TAGS.MIPS_SYMTABNO
MIPS_TIME_STAMP = DYNAMIC_TAGS.MIPS_TIME_STAMP
MIPS_UNREFEXTNO = DYNAMIC_TAGS.MIPS_UNREFEXTNO
NEEDED = DYNAMIC_TAGS.NEEDED
NULL = DYNAMIC_TAGS.NULL
PLTGOT = DYNAMIC_TAGS.PLTGOT
PLTREL = DYNAMIC_TAGS.PLTREL
PLTRELSZ = DYNAMIC_TAGS.PLTRELSZ
PREINIT_ARRAY = DYNAMIC_TAGS.PREINIT_ARRAY
PREINIT_ARRAYSZ = DYNAMIC_TAGS.PREINIT_ARRAYSZ
REL = DYNAMIC_TAGS.REL
RELA = DYNAMIC_TAGS.RELA
RELACOUNT = DYNAMIC_TAGS.RELACOUNT
RELAENT = DYNAMIC_TAGS.RELAENT
RELASZ = DYNAMIC_TAGS.RELASZ
RELCOUNT = DYNAMIC_TAGS.RELCOUNT
RELENT = DYNAMIC_TAGS.RELENT
RELSZ = DYNAMIC_TAGS.RELSZ
RPATH = DYNAMIC_TAGS.RPATH
RUNPATH = DYNAMIC_TAGS.RUNPATH
SONAME = DYNAMIC_TAGS.SONAME
STRSZ = DYNAMIC_TAGS.STRSZ
STRTAB = DYNAMIC_TAGS.STRTAB
SYMBOLIC = DYNAMIC_TAGS.SYMBOLIC
SYMENT = DYNAMIC_TAGS.SYMENT
SYMTAB = DYNAMIC_TAGS.SYMTAB
TEXTREL = DYNAMIC_TAGS.TEXTREL
VERDEF = DYNAMIC_TAGS.VERDEF
VERDEFNUM = DYNAMIC_TAGS.VERDEFNUM
VERNEED = DYNAMIC_TAGS.VERNEED
VERNEEDNUM = DYNAMIC_TAGS.VERNEEDNUM
VERSYM = DYNAMIC_TAGS.VERSYM

Dynamic flags

class lief.ELF.DYNAMIC_FLAGS(self: _pylief.ELF.DYNAMIC_FLAGS, arg0: int) → None
BIND_NOW = DYNAMIC_FLAGS.BIND_NOW
ORIGIN = DYNAMIC_FLAGS.ORIGIN
STATIC_TLS = DYNAMIC_FLAGS.STATIC_TLS
SYMBOLIC = DYNAMIC_FLAGS.SYMBOLIC
TEXTREL = DYNAMIC_FLAGS.TEXTREL

Dynamic flags 1

class lief.ELF.DYNAMIC_FLAGS_1(self: _pylief.ELF.DYNAMIC_FLAGS_1, arg0: int) → None
CONFALT = DYNAMIC_FLAGS_1.CONFALT
DIRECT = DYNAMIC_FLAGS_1.DIRECT
DISPRELDNE = DYNAMIC_FLAGS_1.DISPRELDNE
DISPRELPND = DYNAMIC_FLAGS_1.DISPRELPND
EDITED = DYNAMIC_FLAGS_1.EDITED
ENDFILTEE = DYNAMIC_FLAGS_1.ENDFILTEE
GLOBAL = DYNAMIC_FLAGS_1.GLOBAL
GLOBAUDIT = DYNAMIC_FLAGS_1.GLOBAUDIT
GROUP = DYNAMIC_FLAGS_1.GROUP
IGNMULDEF = DYNAMIC_FLAGS_1.IGNMULDEF
INITFIRST = DYNAMIC_FLAGS_1.INITFIRST
INTERPOSE = DYNAMIC_FLAGS_1.INTERPOSE
LOADFLTR = DYNAMIC_FLAGS_1.LOADFLTR
NODEFLIB = DYNAMIC_FLAGS_1.NODEFLIB
NODELETE = DYNAMIC_FLAGS_1.NODELETE
NODIRECT = DYNAMIC_FLAGS_1.NODIRECT
NODUMP = DYNAMIC_FLAGS_1.NODUMP
NOHDR = DYNAMIC_FLAGS_1.NOHDR
NOKSYMS = DYNAMIC_FLAGS_1.NOKSYMS
NOOPEN = DYNAMIC_FLAGS_1.NOOPEN
NORELOC = DYNAMIC_FLAGS_1.NORELOC
NOW = DYNAMIC_FLAGS_1.NOW
ORIGIN = DYNAMIC_FLAGS_1.ORIGIN
SINGLETON = DYNAMIC_FLAGS_1.SINGLETON
SYMINTPOSE = DYNAMIC_FLAGS_1.SYMINTPOSE
TRANS = DYNAMIC_FLAGS_1.TRANS

Symbol types

class lief.ELF.SYMBOL_TYPES(self: _pylief.ELF.SYMBOL_TYPES, arg0: int) → None
COMMON = SYMBOL_TYPES.COMMON
FILE = SYMBOL_TYPES.FILE
FUNC = SYMBOL_TYPES.FUNC
HIOS = SYMBOL_TYPES.HIOS
HIPROC = SYMBOL_TYPES.HIPROC
LOOS = SYMBOL_TYPES.LOOS
LOPROC = SYMBOL_TYPES.LOPROC
NOTYPE = SYMBOL_TYPES.NOTYPE
OBJECT = SYMBOL_TYPES.OBJECT
SECTION = SYMBOL_TYPES.SECTION
TLS = SYMBOL_TYPES.TLS

Symbol bindings

class lief.ELF.SYMBOL_BINDINGS(self: _pylief.ELF.SYMBOL_BINDINGS, arg0: int) → None
GLOBAL = SYMBOL_BINDINGS.GLOBAL
GNU_UNIQUE = SYMBOL_BINDINGS.GNU_UNIQUE
HIOS = SYMBOL_BINDINGS.HIOS
HIPROC = SYMBOL_BINDINGS.HIPROC
LOCAL = SYMBOL_BINDINGS.LOCAL
LOPROC = SYMBOL_BINDINGS.LOPROC
WEAK = SYMBOL_BINDINGS.WEAK

Symbol Visibility

class lief.ELF.SYMBOL_VISIBILITY(self: _pylief.ELF.SYMBOL_VISIBILITY, arg0: int) → None
DEFAULT = SYMBOL_VISIBILITY.DEFAULT
HIDDEN = SYMBOL_VISIBILITY.HIDDEN
INTERNAL = SYMBOL_VISIBILITY.INTERNAL
PROTECTED = SYMBOL_VISIBILITY.PROTECTED

Relocations x86-64

class lief.ELF.RELOCATION_X86_64(self: _pylief.ELF.RELOCATION_X86_64, arg0: int) → None
COPY = RELOCATION_X86_64.COPY
DTPMOD64 = RELOCATION_X86_64.DTPMOD64
DTPOFF32 = RELOCATION_X86_64.DTPOFF32
DTPOFF64 = RELOCATION_X86_64.DTPOFF64
GLOB_DAT = RELOCATION_X86_64.GLOB_DAT
GOT32 = RELOCATION_X86_64.GOT32
GOT64 = RELOCATION_X86_64.GOT64
GOTOFF64 = RELOCATION_X86_64.GOTOFF64
GOTPC32 = RELOCATION_X86_64.GOTPC32
GOTPC32_TLSDESC = RELOCATION_X86_64.GOTPC32_TLSDESC
GOTPC64 = RELOCATION_X86_64.GOTPC64
GOTPCREL = RELOCATION_X86_64.GOTPCREL
GOTPCREL64 = RELOCATION_X86_64.GOTPCREL64
GOTPCRELX = RELOCATION_X86_64.GOTPCRELX
GOTPLT64 = RELOCATION_X86_64.GOTPLT64
GOTTPOFF = RELOCATION_X86_64.GOTTPOFF
IRELATIVE = RELOCATION_X86_64.IRELATIVE
JUMP_SLOT = RELOCATION_X86_64.JUMP_SLOT
NONE = RELOCATION_X86_64.NONE
PC16 = RELOCATION_X86_64.PC16
PC32 = RELOCATION_X86_64.PC32
PC32_BND = RELOCATION_X86_64.PC32_BND
PC64 = RELOCATION_X86_64.PC64
PC8 = RELOCATION_X86_64.PC8
PLT32 = RELOCATION_X86_64.PLT32
PLT32_BND = RELOCATION_X86_64.PLT32_BND
PLTOFF64 = RELOCATION_X86_64.PLTOFF64
R16 = RELOCATION_X86_64.R16
R32 = RELOCATION_X86_64.R32
R32S = RELOCATION_X86_64.R32S
R64 = RELOCATION_X86_64.R64
R8 = RELOCATION_X86_64.R8
RELATIVE = RELOCATION_X86_64.RELATIVE
RELATIVE64 = RELOCATION_X86_64.RELATIVE64
REX_GOTPCRELX = RELOCATION_X86_64.REX_GOTPCRELX
SIZE32 = RELOCATION_X86_64.SIZE32
SIZE64 = RELOCATION_X86_64.SIZE64
TLSDESC = RELOCATION_X86_64.TLSDESC
TLSDESC_CALL = RELOCATION_X86_64.TLSDESC_CALL
TLSGD = RELOCATION_X86_64.TLSGD
TLSLD = RELOCATION_X86_64.TLSLD
TPOFF32 = RELOCATION_X86_64.TPOFF32
TPOFF64 = RELOCATION_X86_64.TPOFF64

Relocations x86 (i386)

class lief.ELF.RELOCATION_i386(self: _pylief.ELF.RELOCATION_i386, arg0: int) → None
COPY = RELOCATION_i386.COPY
GLOB_DAT = RELOCATION_i386.GLOB_DAT
GOT32 = RELOCATION_i386.GOT32
GOTOFF = RELOCATION_i386.GOTOFF
GOTPC = RELOCATION_i386.GOTPC
IRELATIVE = RELOCATION_i386.IRELATIVE
JUMP_SLOT = RELOCATION_i386.JUMP_SLOT
NONE = RELOCATION_i386.NONE
NUM = RELOCATION_i386.NUM
PC16 = RELOCATION_i386.PC16
PC32 = RELOCATION_i386.PC32
PC8 = RELOCATION_i386.PC8
PLT32 = RELOCATION_i386.PLT32
R16 = RELOCATION_i386.R16
R32 = RELOCATION_i386.R32
R32PLT = RELOCATION_i386.R32PLT
R8 = RELOCATION_i386.R8
RELATIVE = RELOCATION_i386.RELATIVE
TLS_DESC = RELOCATION_i386.TLS_DESC
TLS_DESC_CALL = RELOCATION_i386.TLS_DESC_CALL
TLS_DTPMOD32 = RELOCATION_i386.TLS_DTPMOD32
TLS_DTPOFF32 = RELOCATION_i386.TLS_DTPOFF32
TLS_GD = RELOCATION_i386.TLS_GD
TLS_GD_32 = RELOCATION_i386.TLS_GD_32
TLS_GD_CALL = RELOCATION_i386.TLS_GD_CALL
TLS_GD_POP = RELOCATION_i386.TLS_GD_POP
TLS_GD_PUSH = RELOCATION_i386.TLS_GD_PUSH
TLS_GOTDESC = RELOCATION_i386.TLS_GOTDESC
TLS_GOTIE = RELOCATION_i386.TLS_GOTIE
TLS_IE = RELOCATION_i386.TLS_IE
TLS_IE_32 = RELOCATION_i386.TLS_IE_32
TLS_LDM = RELOCATION_i386.TLS_LDM
TLS_LDM_32 = RELOCATION_i386.TLS_LDM_32
TLS_LDM_CALL = RELOCATION_i386.TLS_LDM_CALL
TLS_LDM_POP = RELOCATION_i386.TLS_LDM_POP
TLS_LDM_PUSH = RELOCATION_i386.TLS_LDM_PUSH
TLS_LDO_32 = RELOCATION_i386.TLS_LDO_32
TLS_LE = RELOCATION_i386.TLS_LE
TLS_LE_32 = RELOCATION_i386.TLS_LE_32
TLS_TPOFF = RELOCATION_i386.TLS_TPOFF
TLS_TPOFF32 = RELOCATION_i386.TLS_TPOFF32

Relocations ARM

class lief.ELF.RELOCATION_ARM(self: _pylief.ELF.RELOCATION_ARM, arg0: int) → None
ABS12 = RELOCATION_ARM.ABS12
ABS16 = RELOCATION_ARM.ABS16
ABS32 = RELOCATION_ARM.ABS32
ABS32_NOI = RELOCATION_ARM.ABS32_NOI
ABS8 = RELOCATION_ARM.ABS8
ALU_PCREL_15_8 = RELOCATION_ARM.ALU_PCREL_15_8
ALU_PCREL_23_15 = RELOCATION_ARM.ALU_PCREL_23_15
ALU_PCREL_7_0 = RELOCATION_ARM.ALU_PCREL_7_0
ALU_PC_G0 = RELOCATION_ARM.ALU_PC_G0
ALU_PC_G0_NC = RELOCATION_ARM.ALU_PC_G0_NC
ALU_PC_G1 = RELOCATION_ARM.ALU_PC_G1
ALU_PC_G1_NC = RELOCATION_ARM.ALU_PC_G1_NC
ALU_PC_G2 = RELOCATION_ARM.ALU_PC_G2
ALU_SBREL_19_12_NC = RELOCATION_ARM.ALU_SBREL_19_12_NC
ALU_SBREL_27_20_CK = RELOCATION_ARM.ALU_SBREL_27_20_CK
ALU_SB_G0 = RELOCATION_ARM.ALU_SB_G0
ALU_SB_G0_NC = RELOCATION_ARM.ALU_SB_G0_NC
ALU_SB_G1 = RELOCATION_ARM.ALU_SB_G1
ALU_SB_G1_NC = RELOCATION_ARM.ALU_SB_G1_NC
ALU_SB_G2 = RELOCATION_ARM.ALU_SB_G2
BASE_ABS = RELOCATION_ARM.BASE_ABS
BASE_PREL = RELOCATION_ARM.BASE_PREL
BREL_ADJ = RELOCATION_ARM.BREL_ADJ
CALL = RELOCATION_ARM.CALL
COPY = RELOCATION_ARM.COPY
GLOB_DAT = RELOCATION_ARM.GLOB_DAT
GNU_VTENTRY = RELOCATION_ARM.GNU_VTENTRY
GNU_VTINHERIT = RELOCATION_ARM.GNU_VTINHERIT
GOTOFF12 = RELOCATION_ARM.GOTOFF12
GOTOFF32 = RELOCATION_ARM.GOTOFF32
GOTRELAX = RELOCATION_ARM.GOTRELAX
GOT_ABS = RELOCATION_ARM.GOT_ABS
GOT_BREL = RELOCATION_ARM.GOT_BREL
GOT_BREL12 = RELOCATION_ARM.GOT_BREL12
GOT_PREL = RELOCATION_ARM.GOT_PREL
IRELATIVE = RELOCATION_ARM.IRELATIVE
JUMP24 = RELOCATION_ARM.JUMP24
JUMP_SLOT = RELOCATION_ARM.JUMP_SLOT
LDC_PC_G0 = RELOCATION_ARM.LDC_PC_G0
LDC_PC_G1 = RELOCATION_ARM.LDC_PC_G1
LDC_PC_G2 = RELOCATION_ARM.LDC_PC_G2
LDC_SB_G0 = RELOCATION_ARM.LDC_SB_G0
LDC_SB_G1 = RELOCATION_ARM.LDC_SB_G1
LDC_SB_G2 = RELOCATION_ARM.LDC_SB_G2
LDRS_PC_G0 = RELOCATION_ARM.LDRS_PC_G0
LDRS_PC_G1 = RELOCATION_ARM.LDRS_PC_G1
LDRS_PC_G2 = RELOCATION_ARM.LDRS_PC_G2
LDRS_SB_G0 = RELOCATION_ARM.LDRS_SB_G0
LDRS_SB_G1 = RELOCATION_ARM.LDRS_SB_G1
LDRS_SB_G2 = RELOCATION_ARM.LDRS_SB_G2
LDR_PC_G0 = RELOCATION_ARM.LDR_PC_G0
LDR_PC_G1 = RELOCATION_ARM.LDR_PC_G1
LDR_PC_G2 = RELOCATION_ARM.LDR_PC_G2
LDR_SBREL_11_0_NC = RELOCATION_ARM.LDR_SBREL_11_0_NC
LDR_SB_G0 = RELOCATION_ARM.LDR_SB_G0
LDR_SB_G1 = RELOCATION_ARM.LDR_SB_G1
LDR_SB_G2 = RELOCATION_ARM.LDR_SB_G2
ME_TOO = RELOCATION_ARM.ME_TOO
MOVT_ABS = RELOCATION_ARM.MOVT_ABS
MOVT_BREL = RELOCATION_ARM.MOVT_BREL
MOVT_PREL = RELOCATION_ARM.MOVT_PREL
MOVW_ABS_NC = RELOCATION_ARM.MOVW_ABS_NC
MOVW_BREL = RELOCATION_ARM.MOVW_BREL
MOVW_BREL_NC = RELOCATION_ARM.MOVW_BREL_NC
MOVW_PREL_NC = RELOCATION_ARM.MOVW_PREL_NC
NONE = RELOCATION_ARM.NONE
PC24 = RELOCATION_ARM.PC24
PLT32 = RELOCATION_ARM.PLT32
PLT32_ABS = RELOCATION_ARM.PLT32_ABS
PREL31 = RELOCATION_ARM.PREL31
PRIVATE_0 = RELOCATION_ARM.PRIVATE_0
PRIVATE_1 = RELOCATION_ARM.PRIVATE_1
PRIVATE_10 = RELOCATION_ARM.PRIVATE_10
PRIVATE_11 = RELOCATION_ARM.PRIVATE_11
PRIVATE_12 = RELOCATION_ARM.PRIVATE_12
PRIVATE_13 = RELOCATION_ARM.PRIVATE_13
PRIVATE_14 = RELOCATION_ARM.PRIVATE_14
PRIVATE_15 = RELOCATION_ARM.PRIVATE_15
PRIVATE_2 = RELOCATION_ARM.PRIVATE_2
PRIVATE_3 = RELOCATION_ARM.PRIVATE_3
PRIVATE_4 = RELOCATION_ARM.PRIVATE_4
PRIVATE_5 = RELOCATION_ARM.PRIVATE_5
PRIVATE_6 = RELOCATION_ARM.PRIVATE_6
PRIVATE_7 = RELOCATION_ARM.PRIVATE_7
PRIVATE_8 = RELOCATION_ARM.PRIVATE_8
PRIVATE_9 = RELOCATION_ARM.PRIVATE_9
RBASE = RELOCATION_ARM.RBASE
REL32 = RELOCATION_ARM.REL32
REL32_NOI = RELOCATION_ARM.REL32_NOI
RELATIVE = RELOCATION_ARM.RELATIVE
RPC24 = RELOCATION_ARM.RPC24
RREL32 = RELOCATION_ARM.RREL32
RSBREL32 = RELOCATION_ARM.RSBREL32
RXPC25 = RELOCATION_ARM.RXPC25
SBREL31 = RELOCATION_ARM.SBREL31
SBREL32 = RELOCATION_ARM.SBREL32
TARGET1 = RELOCATION_ARM.TARGET1
TARGET2 = RELOCATION_ARM.TARGET2
THM_ABS5 = RELOCATION_ARM.THM_ABS5
THM_ALU_PREL_11_0 = RELOCATION_ARM.THM_ALU_PREL_11_0
THM_CALL = RELOCATION_ARM.THM_CALL
THM_JUMP11 = RELOCATION_ARM.THM_JUMP11
THM_JUMP19 = RELOCATION_ARM.THM_JUMP19
THM_JUMP24 = RELOCATION_ARM.THM_JUMP24
THM_JUMP6 = RELOCATION_ARM.THM_JUMP6
THM_JUMP8 = RELOCATION_ARM.THM_JUMP8
THM_MOVT_ABS = RELOCATION_ARM.THM_MOVT_ABS
THM_MOVT_BREL = RELOCATION_ARM.THM_MOVT_BREL
THM_MOVT_PREL = RELOCATION_ARM.THM_MOVT_PREL
THM_MOVW_ABS_NC = RELOCATION_ARM.THM_MOVW_ABS_NC
THM_MOVW_BREL = RELOCATION_ARM.THM_MOVW_BREL
THM_MOVW_BREL_NC = RELOCATION_ARM.THM_MOVW_BREL_NC
THM_MOVW_PREL_NC = RELOCATION_ARM.THM_MOVW_PREL_NC
THM_PC12 = RELOCATION_ARM.THM_PC12
THM_PC8 = RELOCATION_ARM.THM_PC8
THM_RPC22 = RELOCATION_ARM.THM_RPC22
THM_SWI8 = RELOCATION_ARM.THM_SWI8
THM_TLS_CALL = RELOCATION_ARM.THM_TLS_CALL
THM_TLS_DESCSEQ16 = RELOCATION_ARM.THM_TLS_DESCSEQ16
THM_TLS_DESCSEQ32 = RELOCATION_ARM.THM_TLS_DESCSEQ32
THM_XPC22 = RELOCATION_ARM.THM_XPC22
TLS_CALL = RELOCATION_ARM.TLS_CALL
TLS_DESC = RELOCATION_ARM.TLS_DESC
TLS_DESCSEQ = RELOCATION_ARM.TLS_DESCSEQ
TLS_DTPMOD32 = RELOCATION_ARM.TLS_DTPMOD32
TLS_DTPOFF32 = RELOCATION_ARM.TLS_DTPOFF32
TLS_GD32 = RELOCATION_ARM.TLS_GD32
TLS_GOTDESC = RELOCATION_ARM.TLS_GOTDESC
TLS_IE12GP = RELOCATION_ARM.TLS_IE12GP
TLS_IE32 = RELOCATION_ARM.TLS_IE32
TLS_LDM32 = RELOCATION_ARM.TLS_LDM32
TLS_LDO12 = RELOCATION_ARM.TLS_LDO12
TLS_LDO32 = RELOCATION_ARM.TLS_LDO32
TLS_LE12 = RELOCATION_ARM.TLS_LE12
TLS_LE32 = RELOCATION_ARM.TLS_LE32
TLS_TPOFF32 = RELOCATION_ARM.TLS_TPOFF32
V4BX = RELOCATION_ARM.V4BX
XPC25 = RELOCATION_ARM.XPC25

Relocations AARCH64

class lief.ELF.RELOCATION_AARCH64(self: _pylief.ELF.RELOCATION_AARCH64, arg0: int) → None
ABS16 = RELOCATION_AARCH64.ABS16
ABS32 = RELOCATION_AARCH64.ABS32
ABS64 = RELOCATION_AARCH64.ABS64
ADD_ABS_LO12_NC = RELOCATION_AARCH64.ADD_ABS_LO12_NC
ADR_GOT_PAGE = RELOCATION_AARCH64.ADR_GOT_PAGE
ADR_PREL_LO21 = RELOCATION_AARCH64.ADR_PREL_LO21
ADR_PREL_PG_HI21 = RELOCATION_AARCH64.ADR_PREL_PG_HI21
ADR_PREL_PG_HI21_NC = RELOCATION_AARCH64.ADR_PREL_PG_HI21_NC
CALL26 = RELOCATION_AARCH64.CALL26
CONDBR19 = RELOCATION_AARCH64.CONDBR19
COPY = RELOCATION_AARCH64.COPY
GLOB_DAT = RELOCATION_AARCH64.GLOB_DAT
GOTREL32 = RELOCATION_AARCH64.GOTREL32
GOTREL64 = RELOCATION_AARCH64.GOTREL64
GOT_LD_PREL19 = RELOCATION_AARCH64.GOT_LD_PREL19
IRELATIVE = RELOCATION_AARCH64.IRELATIVE
JUMP26 = RELOCATION_AARCH64.JUMP26
JUMP_SLOT = RELOCATION_AARCH64.JUMP_SLOT
LD64_GOTOFF_LO15 = RELOCATION_AARCH64.LD64_GOTOFF_LO15
LD64_GOTPAGE_LO15 = RELOCATION_AARCH64.LD64_GOTPAGE_LO15
LD64_GOT_LO12_NC = RELOCATION_AARCH64.LD64_GOT_LO12_NC
LDST128_ABS_LO12_NC = RELOCATION_AARCH64.LDST128_ABS_LO12_NC
LDST16_ABS_LO12_NC = RELOCATION_AARCH64.LDST16_ABS_LO12_NC
LDST32_ABS_LO12_NC = RELOCATION_AARCH64.LDST32_ABS_LO12_NC
LDST64_ABS_LO12_NC = RELOCATION_AARCH64.LDST64_ABS_LO12_NC
LDST8_ABS_LO12_NC = RELOCATION_AARCH64.LDST8_ABS_LO12_NC
LD_PREL_LO19 = RELOCATION_AARCH64.LD_PREL_LO19
MOVW_GOTOFF_G0 = RELOCATION_AARCH64.MOVW_GOTOFF_G0
MOVW_GOTOFF_G0_NC = RELOCATION_AARCH64.MOVW_GOTOFF_G0_NC
MOVW_GOTOFF_G1 = RELOCATION_AARCH64.MOVW_GOTOFF_G1
MOVW_GOTOFF_G1_NC = RELOCATION_AARCH64.MOVW_GOTOFF_G1_NC
MOVW_GOTOFF_G2 = RELOCATION_AARCH64.MOVW_GOTOFF_G2
MOVW_GOTOFF_G2_NC = RELOCATION_AARCH64.MOVW_GOTOFF_G2_NC
MOVW_GOTOFF_G3 = RELOCATION_AARCH64.MOVW_GOTOFF_G3
MOVW_PREL_G0 = RELOCATION_AARCH64.MOVW_PREL_G0
MOVW_PREL_G0_NC = RELOCATION_AARCH64.MOVW_PREL_G0_NC
MOVW_PREL_G1 = RELOCATION_AARCH64.MOVW_PREL_G1
MOVW_PREL_G1_NC = RELOCATION_AARCH64.MOVW_PREL_G1_NC
MOVW_PREL_G2 = RELOCATION_AARCH64.MOVW_PREL_G2
MOVW_PREL_G2_NC = RELOCATION_AARCH64.MOVW_PREL_G2_NC
MOVW_PREL_G3 = RELOCATION_AARCH64.MOVW_PREL_G3
MOVW_SABS_G0 = RELOCATION_AARCH64.MOVW_SABS_G0
MOVW_SABS_G1 = RELOCATION_AARCH64.MOVW_SABS_G1
MOVW_SABS_G2 = RELOCATION_AARCH64.MOVW_SABS_G2
MOVW_UABS_G0 = RELOCATION_AARCH64.MOVW_UABS_G0
MOVW_UABS_G0_NC = RELOCATION_AARCH64.MOVW_UABS_G0_NC
MOVW_UABS_G1 = RELOCATION_AARCH64.MOVW_UABS_G1
MOVW_UABS_G1_NC = RELOCATION_AARCH64.MOVW_UABS_G1_NC
MOVW_UABS_G2 = RELOCATION_AARCH64.MOVW_UABS_G2
MOVW_UABS_G2_NC = RELOCATION_AARCH64.MOVW_UABS_G2_NC
MOVW_UABS_G3 = RELOCATION_AARCH64.MOVW_UABS_G3
NONE = RELOCATION_AARCH64.NONE
PREL16 = RELOCATION_AARCH64.PREL16
PREL32 = RELOCATION_AARCH64.PREL32
PREL64 = RELOCATION_AARCH64.PREL64
RELATIVE = RELOCATION_AARCH64.RELATIVE
TLSDESC = RELOCATION_AARCH64.TLSDESC
TLSDESC_ADD = RELOCATION_AARCH64.TLSDESC_ADD
TLSDESC_ADD_LO12_NC = RELOCATION_AARCH64.TLSDESC_ADD_LO12_NC
TLSDESC_ADR_PAGE21 = RELOCATION_AARCH64.TLSDESC_ADR_PAGE21
TLSDESC_ADR_PREL21 = RELOCATION_AARCH64.TLSDESC_ADR_PREL21
TLSDESC_CALL = RELOCATION_AARCH64.TLSDESC_CALL
TLSDESC_LD64_LO12_NC = RELOCATION_AARCH64.TLSDESC_LD64_LO12_NC
TLSDESC_LDR = RELOCATION_AARCH64.TLSDESC_LDR
TLSDESC_LD_PREL19 = RELOCATION_AARCH64.TLSDESC_LD_PREL19
TLSDESC_OFF_G0_NC = RELOCATION_AARCH64.TLSDESC_OFF_G0_NC
TLSDESC_OFF_G1 = RELOCATION_AARCH64.TLSDESC_OFF_G1
TLSGD_ADD_LO12_NC = RELOCATION_AARCH64.TLSGD_ADD_LO12_NC
TLSGD_ADR_PAGE21 = RELOCATION_AARCH64.TLSGD_ADR_PAGE21
TLSGD_ADR_PREL21 = RELOCATION_AARCH64.TLSGD_ADR_PREL21
TLSGD_MOVW_G0_NC = RELOCATION_AARCH64.TLSGD_MOVW_G0_NC
TLSGD_MOVW_G1 = RELOCATION_AARCH64.TLSGD_MOVW_G1
TLSIE_ADR_GOTTPREL_PAGE21 = RELOCATION_AARCH64.TLSIE_ADR_GOTTPREL_PAGE21
TLSIE_LD64_GOTTPREL_LO12_NC = RELOCATION_AARCH64.TLSIE_LD64_GOTTPREL_LO12_NC
TLSIE_LD_GOTTPREL_PREL19 = RELOCATION_AARCH64.TLSIE_LD_GOTTPREL_PREL19
TLSIE_MOVW_GOTTPREL_G0_NC = RELOCATION_AARCH64.TLSIE_MOVW_GOTTPREL_G0_NC
TLSIE_MOVW_GOTTPREL_G1 = RELOCATION_AARCH64.TLSIE_MOVW_GOTTPREL_G1
TLSLD_ADD_DTPREL_HI12 = RELOCATION_AARCH64.TLSLD_ADD_DTPREL_HI12
TLSLD_ADD_DTPREL_LO12 = RELOCATION_AARCH64.TLSLD_ADD_DTPREL_LO12
TLSLD_ADD_DTPREL_LO12_NC = RELOCATION_AARCH64.TLSLD_ADD_DTPREL_LO12_NC
TLSLD_ADD_LO12_NC = RELOCATION_AARCH64.TLSLD_ADD_LO12_NC
TLSLD_ADR_PAGE21 = RELOCATION_AARCH64.TLSLD_ADR_PAGE21
TLSLD_ADR_PREL21 = RELOCATION_AARCH64.TLSLD_ADR_PREL21
TLSLD_LDST128_DTPREL_LO12 = RELOCATION_AARCH64.TLSLD_LDST128_DTPREL_LO12
TLSLD_LDST128_DTPREL_LO12_NC = RELOCATION_AARCH64.TLSLD_LDST128_DTPREL_LO12_NC
TLSLD_LDST16_DTPREL_LO12 = RELOCATION_AARCH64.TLSLD_LDST16_DTPREL_LO12
TLSLD_LDST16_DTPREL_LO12_NC = RELOCATION_AARCH64.TLSLD_LDST16_DTPREL_LO12_NC
TLSLD_LDST32_DTPREL_LO12 = RELOCATION_AARCH64.TLSLD_LDST32_DTPREL_LO12
TLSLD_LDST32_DTPREL_LO12_NC = RELOCATION_AARCH64.TLSLD_LDST32_DTPREL_LO12_NC
TLSLD_LDST64_DTPREL_LO12 = RELOCATION_AARCH64.TLSLD_LDST64_DTPREL_LO12
TLSLD_LDST64_DTPREL_LO12_NC = RELOCATION_AARCH64.TLSLD_LDST64_DTPREL_LO12_NC
TLSLD_LDST8_DTPREL_LO12 = RELOCATION_AARCH64.TLSLD_LDST8_DTPREL_LO12
TLSLD_LDST8_DTPREL_LO12_NC = RELOCATION_AARCH64.TLSLD_LDST8_DTPREL_LO12_NC
TLSLD_LD_PREL19 = RELOCATION_AARCH64.TLSLD_LD_PREL19
TLSLD_MOVW_DTPREL_G0 = RELOCATION_AARCH64.TLSLD_MOVW_DTPREL_G0
TLSLD_MOVW_DTPREL_G0_NC = RELOCATION_AARCH64.TLSLD_MOVW_DTPREL_G0_NC
TLSLD_MOVW_DTPREL_G1 = RELOCATION_AARCH64.TLSLD_MOVW_DTPREL_G1
TLSLD_MOVW_DTPREL_G1_NC = RELOCATION_AARCH64.TLSLD_MOVW_DTPREL_G1_NC
TLSLD_MOVW_DTPREL_G2 = RELOCATION_AARCH64.TLSLD_MOVW_DTPREL_G2
TLSLD_MOVW_G0_NC = RELOCATION_AARCH64.TLSLD_MOVW_G0_NC
TLSLD_MOVW_G1 = RELOCATION_AARCH64.TLSLD_MOVW_G1
TLSLE_ADD_TPREL_HI12 = RELOCATION_AARCH64.TLSLE_ADD_TPREL_HI12
TLSLE_ADD_TPREL_LO12 = RELOCATION_AARCH64.TLSLE_ADD_TPREL_LO12
TLSLE_ADD_TPREL_LO12_NC = RELOCATION_AARCH64.TLSLE_ADD_TPREL_LO12_NC
TLSLE_LDST128_TPREL_LO12 = RELOCATION_AARCH64.TLSLE_LDST128_TPREL_LO12
TLSLE_LDST128_TPREL_LO12_NC = RELOCATION_AARCH64.TLSLE_LDST128_TPREL_LO12_NC
TLSLE_LDST16_TPREL_LO12 = RELOCATION_AARCH64.TLSLE_LDST16_TPREL_LO12
TLSLE_LDST16_TPREL_LO12_NC = RELOCATION_AARCH64.TLSLE_LDST16_TPREL_LO12_NC
TLSLE_LDST32_TPREL_LO12 = RELOCATION_AARCH64.TLSLE_LDST32_TPREL_LO12
TLSLE_LDST32_TPREL_LO12_NC = RELOCATION_AARCH64.TLSLE_LDST32_TPREL_LO12_NC
TLSLE_LDST64_TPREL_LO12 = RELOCATION_AARCH64.TLSLE_LDST64_TPREL_LO12
TLSLE_LDST64_TPREL_LO12_NC = RELOCATION_AARCH64.TLSLE_LDST64_TPREL_LO12_NC
TLSLE_LDST8_TPREL_LO12 = RELOCATION_AARCH64.TLSLE_LDST8_TPREL_LO12
TLSLE_LDST8_TPREL_LO12_NC = RELOCATION_AARCH64.TLSLE_LDST8_TPREL_LO12_NC
TLSLE_MOVW_TPREL_G0 = RELOCATION_AARCH64.TLSLE_MOVW_TPREL_G0
TLSLE_MOVW_TPREL_G0_NC = RELOCATION_AARCH64.TLSLE_MOVW_TPREL_G0_NC
TLSLE_MOVW_TPREL_G1 = RELOCATION_AARCH64.TLSLE_MOVW_TPREL_G1
TLSLE_MOVW_TPREL_G1_NC = RELOCATION_AARCH64.TLSLE_MOVW_TPREL_G1_NC
TLSLE_MOVW_TPREL_G2 = RELOCATION_AARCH64.TLSLE_MOVW_TPREL_G2
TLS_DTPMOD64 = RELOCATION_AARCH64.TLS_DTPMOD64
TLS_DTPREL64 = RELOCATION_AARCH64.TLS_DTPREL64
TLS_TPREL64 = RELOCATION_AARCH64.TLS_TPREL64
TSTBR14 = RELOCATION_AARCH64.TSTBR14

Dynamic symbols counting

class lief.ELF.DYNSYM_COUNT_METHODS(self: _pylief.ELF.DYNSYM_COUNT_METHODS, arg0: int) → None
AUTO = DYNSYM_COUNT_METHODS.AUTO
HASH = DYNSYM_COUNT_METHODS.HASH
RELOCATIONS = DYNSYM_COUNT_METHODS.RELOCATIONS
SECTION = DYNSYM_COUNT_METHODS.SECTION

Relocation purpose

class lief.ELF.RELOCATION_PURPOSES(self: _pylief.ELF.RELOCATION_PURPOSES, arg0: int) → None
DYNAMIC = RELOCATION_PURPOSES.DYNAMIC
NONE = RELOCATION_PURPOSES.NONE
OBJECT = RELOCATION_PURPOSES.OBJECT
PLTGOT = RELOCATION_PURPOSES.PLTGOT

Note types

class lief.ELF.NOTE_TYPES(self: _pylief.ELF.NOTE_TYPES, arg0: int) → None
ABI_TAG = NOTE_TYPES.ABI_TAG
BUILD_ID = NOTE_TYPES.BUILD_ID
GOLD_VERSION = NOTE_TYPES.GOLD_VERSION
HWCAP = NOTE_TYPES.HWCAP
UNKNOWN = NOTE_TYPES.UNKNOWN

Note ABIs

class lief.ELF.NOTE_ABIS(self: _pylief.ELF.NOTE_ABIS, arg0: int) → None
FREEBSD = NOTE_ABIS.FREEBSD
GNU = NOTE_ABIS.GNU
LINUX = NOTE_ABIS.LINUX
NETBSD = NOTE_ABIS.NETBSD
SOLARIS2 = NOTE_ABIS.SOLARIS2
SYLLABLE = NOTE_ABIS.SYLLABLE
UNKNOWN = NOTE_ABIS.UNKNOWN

ARM Processor flags

class lief.ELF.ARM_EFLAGS(self: _pylief.ELF.ARM_EFLAGS, arg0: int) → None
EABI_VER1 = ARM_EFLAGS.EABI_VER1
EABI_VER2 = ARM_EFLAGS.EABI_VER2
EABI_VER3 = ARM_EFLAGS.EABI_VER3
EABI_VER4 = ARM_EFLAGS.EABI_VER4
EABI_VER5 = ARM_EFLAGS.EABI_VER5
SOFT_FLOAT = ARM_EFLAGS.SOFT_FLOAT
UNKNOWN = ARM_EFLAGS.UNKNOWN
VFP_FLOAT = ARM_EFLAGS.VFP_FLOAT

MIPS Processor flags

class lief.ELF.MIPS_EFLAGS(self: _pylief.ELF.MIPS_EFLAGS, arg0: int) → None
ABI2 = MIPS_EFLAGS.ABI2
ABI_EABI32 = MIPS_EFLAGS.ABI_EABI32
ABI_EABI64 = MIPS_EFLAGS.ABI_EABI64
ABI_O32 = MIPS_EFLAGS.ABI_O32
ABI_O64 = MIPS_EFLAGS.ABI_O64
ARCH_1 = MIPS_EFLAGS.ARCH_1
ARCH_2 = MIPS_EFLAGS.ARCH_2
ARCH_3 = MIPS_EFLAGS.ARCH_3
ARCH_32 = MIPS_EFLAGS.ARCH_32
ARCH_32R2 = MIPS_EFLAGS.ARCH_32R2
ARCH_32R6 = MIPS_EFLAGS.ARCH_32R6
ARCH_4 = MIPS_EFLAGS.ARCH_4
ARCH_5 = MIPS_EFLAGS.ARCH_5
ARCH_64 = MIPS_EFLAGS.ARCH_64
ARCH_64R2 = MIPS_EFLAGS.ARCH_64R2
ARCH_64R6 = MIPS_EFLAGS.ARCH_64R6
ARCH_ASE_M16 = MIPS_EFLAGS.ARCH_ASE_M16
ARCH_ASE_MDMX = MIPS_EFLAGS.ARCH_ASE_MDMX
CPIC = MIPS_EFLAGS.CPIC
FP64 = MIPS_EFLAGS.FP64
MACH_3900 = MIPS_EFLAGS.MACH_3900
MACH_4010 = MIPS_EFLAGS.MACH_4010
MACH_4100 = MIPS_EFLAGS.MACH_4100
MACH_4111 = MIPS_EFLAGS.MACH_4111
MACH_4120 = MIPS_EFLAGS.MACH_4120
MACH_4650 = MIPS_EFLAGS.MACH_4650
MACH_5400 = MIPS_EFLAGS.MACH_5400
MACH_5500 = MIPS_EFLAGS.MACH_5500
MACH_5900 = MIPS_EFLAGS.MACH_5900
MACH_9000 = MIPS_EFLAGS.MACH_9000
MACH_LS2E = MIPS_EFLAGS.MACH_LS2E
MACH_LS2F = MIPS_EFLAGS.MACH_LS2F
MACH_LS3A = MIPS_EFLAGS.MACH_LS3A
MACH_OCTEON = MIPS_EFLAGS.MACH_OCTEON
MACH_OCTEON2 = MIPS_EFLAGS.MACH_OCTEON2
MACH_OCTEON3 = MIPS_EFLAGS.MACH_OCTEON3
MACH_SB1 = MIPS_EFLAGS.MACH_SB1
MACH_XLR = MIPS_EFLAGS.MACH_XLR
MICROMIPS = MIPS_EFLAGS.MICROMIPS
NAN2008 = MIPS_EFLAGS.NAN2008
NOREORDER = MIPS_EFLAGS.NOREORDER
PIC = MIPS_EFLAGS.PIC

PPC64 Processor flags

class lief.ELF.PPC64_EFLAGS(self: _pylief.ELF.PPC64_EFLAGS, arg0: int) → None
ABI = PPC64_EFLAGS.ABI

Hexagon Processor flags

class lief.ELF.HEXAGON_EFLAGS(self: _pylief.ELF.HEXAGON_EFLAGS, arg0: int) → None
ISA_MACH = HEXAGON_EFLAGS.ISA_MACH
ISA_V2 = HEXAGON_EFLAGS.ISA_V2
ISA_V3 = HEXAGON_EFLAGS.ISA_V3
ISA_V4 = HEXAGON_EFLAGS.ISA_V4
ISA_V5 = HEXAGON_EFLAGS.ISA_V5
MACH_V2 = HEXAGON_EFLAGS.MACH_V2
MACH_V3 = HEXAGON_EFLAGS.MACH_V3
MACH_V4 = HEXAGON_EFLAGS.MACH_V4
MACH_V5 = HEXAGON_EFLAGS.MACH_V5