ELF

Parser

lief.ELF.parse(*args) lief.ELF.Binary | None
lief.ELF.parse(raw: list[int], config: lief._lief.ELF.ParserConfig = <lief._lief.ELF.ParserConfig object at 0x7c4d7a332ee0>) lief._lief.ELF.Binary | None
lief.ELF.parse(obj: Union[io.IOBase | os.PathLike], config: lief._lief.ELF.ParserConfig = <lief._lief.ELF.ParserConfig object at 0x7c4d7a332f10>) lief._lief.ELF.Binary | None

Overloaded function.

  1. parse(filename: str, config: lief._lief.ELF.ParserConfig = <lief._lief.ELF.ParserConfig object at 0x7c4d7a332eb0>) -> Optional[lief._lief.ELF.Binary]

    Parse the ELF binary from the given file path and return a lief.ELF.Binary object

    The second argument is an optional configuration (ParserConfig) that can be used to define which part(s) of the ELF should be parsed or skipped.

  2. parse(raw: list[int], config: lief._lief.ELF.ParserConfig = <lief._lief.ELF.ParserConfig object at 0x7c4d7a332ee0>) -> Optional[lief._lief.ELF.Binary]

    Parse the ELF binary from the given list of bytes and return a lief.ELF.Binary object

    The second argument is an optional configuration (ParserConfig) that can be used to define which part(s) of the ELF should be parsed or skipped.

  3. parse(obj: Union[io.IOBase | os.PathLike], config: lief._lief.ELF.ParserConfig = <lief._lief.ELF.ParserConfig object at 0x7c4d7a332f10>) -> Optional[lief._lief.ELF.Binary]

    Parse the ELF binary from the given Python object and return a lief.ELF.Binary object

    The second argument is an optional configuration (ParserConfig) that can be used to define which part(s) of the ELF should be parsed or skipped.

class lief.ELF.ParserConfig(self)

This class is used to tweak the ELF Parser

all = <lief._lief.ELF.ParserConfig object>
property count_mtd lief.ELF.DYNSYM_COUNT_METHODS

The DYNSYM_COUNT_METHODS to use for counting the dynamic symbols

For weird binaries (e.g sectionless) you can choose the method for counting dynamic symbols (lief.ELF.DYNSYM_COUNT_METHODS). By default, the value is set to lief.ELF.DYNSYM_COUNT_METHODS.COUNT_AUTO

property parse_dyn_symbols bool

Whether dynamic symbols (those from .dynsym) should be parsed

property parse_notes bool

Whether ELF notes information should be parsed

property parse_overlay bool

Whether the overlay data should be parsed

property parse_relocations bool

Whether relocations (including plt-like relocations) should be parsed.

property parse_static_symbols bool

Whether debug symbols (those from .symtab) should be parsed

property parse_symbol_versions bool

Whether versioning symbols should be parsed


Binary

class lief.ELF.Binary

Class which represents an ELF binary

class FORMATS
ELF = lief._lief.FORMATS.ELF
MACHO = lief._lief.FORMATS.MACHO
OAT = lief._lief.FORMATS.OAT
PE = lief._lief.FORMATS.PE
UNKNOWN = lief._lief.FORMATS.UNKNOWN
class PHDR_RELOC
AUTO = lief._lief.ELF.PHDR_RELOC.AUTO
BSS_END = lief._lief.ELF.PHDR_RELOC.BSS_END
FILE_END = lief._lief.ELF.PHDR_RELOC.FILE_END
PIE_SHIFT = lief._lief.ELF.PHDR_RELOC.PIE_SHIFT
SEGMENT_GAP = lief._lief.ELF.PHDR_RELOC.SEGMENT_GAP
class VA_TYPES
AUTO = lief._lief.VA_TYPES.AUTO
RVA = lief._lief.VA_TYPES.RVA
VA = lief._lief.VA_TYPES.VA
property abstract lief.Binary

Return the abstract representation of the current binary (lief.Binary)

add(*args) lief.ELF.Section | lief.ELF.Note | lief.ELF.DynamicEntry | lief.ELF.Segment

Overloaded function.

  1. add(self, arg: lief._lief.ELF.DynamicEntry, /) -> lief._lief.ELF.DynamicEntry

dynamic_entry

  1. add(self, section: lief._lief.ELF.Section, loaded: bool = True) -> lief._lief.ELF.Section

    Add the given Section to the binary.

    If the section does not aim at being loaded in memory, the loaded parameter has to be set to False (default: True)

  2. add(self, segment: lief._lief.ELF.Segment, base: int = 0) -> lief._lief.ELF.Segment

Add a new Segment in the binary

  1. add(self, note: lief._lief.ELF.Note) -> lief._lief.ELF.Note

Add a new Note in the binary

add_dynamic_relocation(self, relocation: lief.ELF.Relocation) lief.ELF.Relocation

Add a new dynamic relocation.

We consider a dynamic relocation as a relocation which is not plt-related.

See: lief.ELF.Binary.add_pltgot_relocation()

add_dynamic_symbol(self, symbol: lief.ELF.Symbol, symbol_version: lief.ELF.SymbolVersion | None) lief.ELF.Symbol

Add a dynamic Symbol to the binary

The function also takes an optional lief.ELF.SymbolVersion

add_exported_function(self, address: int, name: str) lief.ELF.Symbol

Create a symbol for the function at the given address and create an export

add_library(self, library_name: str) lief.ELF.DynamicEntryLibrary

Add a library with the given name as dependency

add_object_relocation(self, relocation: lief.ELF.Relocation, section: lief.ELF.Section) lief.ELF.Relocation

Add relocation for object file (.o)

The first parameter is the section to add while the second parameter is the Section associated with the relocation.

If there is an error, this function returns a nullptr. Otherwise, it returns the relocation added.”,

add_pltgot_relocation(self, relocation: lief.ELF.Relocation) lief.ELF.Relocation

Add a .plt.got relocation. This kind of relocation is usually associated with a PLT stub that aims at resolving the underlying symbol.

See: lief.ELF.Binary.add_dynamic_relocation()

add_static_symbol(self, symbol: lief.ELF.Symbol) lief.ELF.Symbol

Add a static Symbol to the binary

property concrete lief.ELF.Binary | lief.PE.Binary | lief.MachO.Binary

The concrete representation of the binary. Basically, this property cast a lief.Binary into a lief.PE.Binary, lief.ELF.Binary or lief.MachO.Binary.

See also: lief.Binary.abstract

property ctor_functions list[lief.Function]

Constructor functions that are called prior to any other functions

property dtor_functions list[lief.Function]

List of the binary destructors (typically, the functions located in the .fini_array)

property dynamic_entries lief.ELF.Binary.it_dynamic_entries

Return an iterator to DynamicEntry entries as a list

property dynamic_relocations lief.ELF.Binary.it_filter_relocation

Return an iterator over dynamics Relocation

property dynamic_symbols lief.ELF.Binary.it_symbols

Return an iterator to dynamic Symbol

property entrypoint int

Binary’s entrypoint

property eof_offset int

Return the last offset used by the ELF binary according to both, the sections table and the segments table.

export_symbol(*args) lief.ELF.Symbol

Overloaded function.

  1. export_symbol(self, symbol: lief._lief.ELF.Symbol) -> lief._lief.ELF.Symbol

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

  1. export_symbol(self, symbol_name: str, value: int = 0) -> lief._lief.ELF.Symbol

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

property exported_functions list[lief.Function]

Return the binary’s exported Function

property exported_symbols lief.ELF.Binary.it_filter_symbols

Return dynamic Symbol which are exported

extend(*args) lief.ELF.Section | lief.ELF.Segment

Overloaded function.

  1. extend(self, segment: lief._lief.ELF.Segment, size: int) -> lief._lief.ELF.Segment

Extend the given given Segment by the given size

  1. extend(self, segment: lief._lief.ELF.Section, size: int) -> lief._lief.ELF.Section

Extend the given given Section by the given size

property format lief.Binary.FORMATS

File format (FORMATS) of the underlying binary.

property functions list[lief.Function]

List of the functions found the in the binary

get(*args) lief.ELF.Section | lief.ELF.Note | lief.ELF.DynamicEntry | lief.ELF.Segment

Overloaded function.

  1. get(self, tag: lief._lief.ELF.DYNAMIC_TAGS) -> lief._lief.ELF.DynamicEntry

    Return the first binary’s DynamicEntry from the given DYNAMIC_TAGS.

    It returns None if the dynamic entry can’t be found.

  2. get(self, type: lief._lief.ELF.SEGMENT_TYPES) -> lief._lief.ELF.Segment

    Return the first binary’s Segment from the given SEGMENT_TYPES

    It returns None if the segment can’t be found.

  3. get(self, type: lief._lief.ELF.Note.TYPE) -> lief._lief.ELF.Note

    Return the first binary’s Note from the given TYPE.

    It returns None if the note can’t be found.

  4. get(self, type: lief._lief.ELF.SECTION_TYPES) -> lief._lief.ELF.Section

    Return the first binary’s Section from the given ELF_SECTION_TYPES

    It returns None if the section can’t be found.

get_content_from_virtual_address(self, virtual_address: int, size: int, va_type: lief.Binary.VA_TYPES) memoryview

Return the content located at the provided virtual address. The 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, symbol_name: str) lief.ELF.Symbol

Get the dynamic symbol from the given name.

It returns None if it can’t be found.

get_function_address(self, function_name: str) int | lief.lief_errors

Return the address of the given function name

get_library(self, library_name: str) lief.ELF.DynamicEntryLibrary

Return the DynamicEntryLibrary with the given name

It returns None if the library can’t be found.

get_relocation(*args) lief.ELF.Relocation

Overloaded function.

  1. get_relocation(self, symbol_name: str) -> lief._lief.ELF.Relocation

Return the Relocation associated with the given symbol name

  1. get_relocation(self, symbol: lief._lief.ELF.Symbol) -> lief._lief.ELF.Relocation

Return the Relocation associated with the given Symbol

  1. get_relocation(self, address: int) -> lief._lief.ELF.Relocation

Return the Relocation associated with the given address

get_section(self, section_name: str) lief.ELF.Section

Return the Section with the given name

It returns None if the section can’t be found.

get_static_symbol(self, symbol_name: str) lief.ELF.Symbol

Get the static symbol from the given name.

It returns None if it can’t be found.

get_strings(self, min_size: int) list[str]

Return list of strings used in the current ELF file with a minimal size given in first parameter (Default: 5) It looks for strings in the .roadata section

get_symbol(self, symbol_name: str) lief.Symbol

Return the Symbol from the given name.

If the symbol can’t be found, it returns None.

property gnu_hash lief.ELF.GnuHash

Return the GnuHash object

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

has(*args) bool

Overloaded function.

  1. has(self, tag: lief._lief.ELF.DYNAMIC_TAGS) -> bool

    Check if it exists a DynamicEntry with the given DYNAMIC_TAGS

  2. has(self, type: lief._lief.ELF.SEGMENT_TYPES) -> bool

Check if a Segment of type (SEGMENT_TYPES) exists

  1. has(self, type: lief._lief.ELF.Note.TYPE) -> bool

Check if a Note of type (TYPE) exists

  1. has(self, type: lief._lief.ELF.SECTION_TYPES) -> bool

Check if a Section of type (SECTION_TYPES) exists

has_dynamic_symbol(self, symbol_name: str) bool

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

property has_interpreter bool

Check if the binary uses a loader (also named linker or interpreter)

has_library(self, library_name: str) bool

Check if the given library name exists in the current binary

property has_notes bool

True if the binary contains notes

property has_nx bool

Check if the binary has NX protection (non executable stack)

property has_overlay bool

True if data are appended to the end of the binary

has_section(self, section_name: str) bool

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

has_section_with_offset(self, offset: int) bool

Check if a Section that encompasses the given offset exists

has_section_with_va(self, virtual_address: int) bool

Check if a Section that encompasses the given virtual address exists

has_static_symbol(self, symbol_name: str) bool

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

has_symbol(self, symbol_name: str) bool

Check if a Symbol with the given name exists

property header lief.ELF.Header

Return Header object

property imagebase int

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

property imported_functions list[lief.Function]

Return the binary’s imported Function (name)

property imported_symbols lief.ELF.Binary.it_filter_symbols

Return dynamic Symbol which are imported

property interpreter str

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

property is_pie bool

Check if the binary has been compiled with -fpie -pie flags

To do so we check if there is a PT_INTERP segment and if the binary type is ET_DYN (Shared object)

class it_dyn_static_symbols

Iterator over lief._lief.ELF.Symbol

class it_dynamic_entries

Iterator over lief._lief.ELF.DynamicEntry

class it_filter_relocation

Iterator over lief._lief.ELF.Relocation

class it_filter_symbols

Iterator over lief._lief.ELF.Symbol

class it_notes

Iterator over lief._lief.ELF.Note

class it_relocations

Iterator over lief._lief.ELF.Relocation

class it_sections

Iterator over lief._lief.ELF.Section

class it_segments

Iterator over lief._lief.ELF.Segment

class it_symbols

Iterator over lief._lief.ELF.Symbol

class it_symbols_version

Iterator over lief._lief.ELF.SymbolVersion

class it_symbols_version_definition

Iterator over lief._lief.ELF.SymbolVersionDefinition

class it_symbols_version_requirement

Iterator over lief._lief.ELF.SymbolVersionRequirement

property last_offset_section int

Return the last offset used in binary according to sections table

property last_offset_segment int

Return the last offset used in binary according to segments table

property libraries list[str | bytes]

Return binary’s imported libraries (name)

property next_virtual_address int

Return the next virtual address available

property notes lief.ELF.Binary.it_notes

Return an iterator over the Note entries

property object_relocations lief.ELF.Binary.it_filter_relocation

Return an iterator over object Relocation

offset_to_virtual_address(self, offset: int, slide: int) int | lief.lief_errors

Convert an offset into a virtual address.

property overlay memoryview

Overlay data that are not a part of the ELF format

patch_address(*args) None

Overloaded function.

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

    Patch the address with the given list of bytes. The 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.

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

    Patch the address with the given integer value. The virtual address is specified in the first argument, the integer in the second and the integer’s size of 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) None

Overloaded function.

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

Patch the imported symbol’s name with the address

  1. patch_pltgot(self, symbol: lief._lief.ELF.Symbol, address: int) -> None

Patch the imported Symbol with the address

permute_dynamic_symbols(self, permutation: list[int]) None

Apply the given permutation on the dynamic symbols table

property pltgot_relocations lief.ELF.Binary.it_filter_relocation

Return an iterator over PLT/GOT Relocation

relocate_phdr_table(self, type: lief.ELF.Binary.PHDR_RELOC) int

Force relocating the segments table in a specific way (see: PHDR_RELOC).

This function can be used to enforce a specific relocation of the segments table. Upon successful relocation, the function returns the offset of the relocated segments table. Otherwise, if the function fails, it returns 0

property relocations lief.ELF.Binary.it_relocations

Return an iterator over all Relocation

remove(*args) None

Overloaded function.

  1. remove(self, dynamic_entry: lief._lief.ELF.DynamicEntry) -> None

Remove the given DynamicEntry from the dynamic table

  1. remove(self, tag: lief._lief.ELF.DYNAMIC_TAGS) -> None

Remove all the DynamicEntry with the given DYNAMIC_TAGS

  1. remove(self, section: lief._lief.ELF.Section, clear: bool = False) -> None

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

  1. remove(self, note: lief._lief.ELF.Note) -> None

Remove the given Note

  1. remove(self, type: lief._lief.ELF.Note.TYPE) -> None

Remove all the Note with the given TYPE

remove_dynamic_symbol(*args) None

Overloaded function.

  1. remove_dynamic_symbol(self, arg: lief._lief.ELF.Symbol, /) -> None

Remove the given Symbol from the .dynsym section

  1. remove_dynamic_symbol(self, arg: str, /) -> None

Remove the Symbol with the name given in parameter from the .dynsym section

remove_library(self, library_name: str) None

Remove the given library

remove_section(self, name: str, clear: bool) None

Remove the section with the given name

remove_static_symbol(self, arg: lief.ELF.Symbol) None

Remove the given Symbol from the .symtab section

replace(self, new_segment: lief.ELF.Segment, original_segment: lief.ELF.Segment, base: int) lief.ELF.Segment

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

Warning

The original_segment is no longer valid after this function

section_from_offset(self, offset: int, skip_nobits: bool) lief.ELF.Section

Return the Section which encompasses the given offset. It returns None if a section can’t be found.

If skip_nobits is set (which is the case by default), this function won’t consider sections for which the type is SHT_NOBITS (like .bss, .tbss, ...)

section_from_virtual_address(self, address: int, skip_nobits: bool) lief.ELF.Section

Return the Section which encompasses the given virtual address. It returns None if a section can’t be found.

If skip_nobits is set (which is the case by default), this function won’t consider sections for which the type is SHT_NOBITS (like .bss, .tbss, ...)

property sections lief.ELF.Binary.it_sections

Return an iterator over binary’s Section

segment_from_offset(self, offset: int) lief.ELF.Segment

Return the Segment which encompasses the given offset. It returns None if a segment can’t be found.

segment_from_virtual_address(self, address: int) lief.ELF.Segment

Return the Segment which encompasses the given virtual address. It returns None if a segment can’t be found.

property segments lief.ELF.Binary.it_segments

Return an iterator to binary’s Segment

property static_symbols lief.ELF.Binary.it_symbols

Return an iterator to static Symbol

property strings list[str | bytes]

Return list of strings used in the current ELF file. Basically this function looks for strings in the .roadata section

strip(self) None

Strip the binary

property symbols lief.ELF.Binary.it_dyn_static_symbols

Return an iterator over both static and dynamic Symbol

property symbols_version lief.ELF.Binary.it_symbols_version

Return an iterator SymbolVersion

property symbols_version_definition lief.ELF.Binary.it_symbols_version_definition

Return an iterator to SymbolVersionDefinition

property symbols_version_requirement lief.ELF.Binary.it_symbols_version_requirement

Return an iterator to SymbolVersionRequirement

property sysv_hash lief.ELF.SysvHash

Return the SysvHash object

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

property type lief.ELF.ELF_CLASS

Return the binary’s ELF_CLASS

property use_gnu_hash bool

True if GNU hash is used

property use_sysv_hash bool

True if SYSV hash is used

virtual_address_to_offset(self, virtual_address: int) int | lief.lief_errors

Convert the virtual address to a file offset

property virtual_size int

Return the size of the mapped binary

write(*args) None

Overloaded function.

  1. write(self, output: str) -> None

Rebuild the binary and write it in a file

  1. write(self, output: str, config: lief._lief.ELF.Builder.config_t) -> None

Rebuild the binary with the given configuration and write it in a file

xref(self, virtual_address: int) list[int]

Return all virtual addresses that use the address given in parameter



Section

class lief.ELF.Section(self)
class lief.ELF.Section(self, name: str, type: lief._lief.ELF.SECTION_TYPES = lief._lief.ELF.SECTION_TYPES.PROGBITS)

Class which represents an ELF section.

Overloaded function.

  1. __init__(self) -> None

Default constructor

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

Constructor from a name and a section type

add(self, flag: lief.ELF.SECTION_FLAGS) None

Add the given SECTION_FLAGS to the list of flags

property alignment int

Section alignment

as_frame(self) lief.ELF.Section
clear(self, value: int) lief.ELF.Section

Clear the content of the section with the given value

property content memoryview

Section’s content

property entropy float

Section’s entropy

property entry_size int

This property returns the size of an element in the case of a section that contains an array.

Example:

The .dynamic section contains an array of DynamicEntry. As the size of the raw C structure of this entry is 0x10 (sizeof(Elf64_Dyn)) in a ELF64, the entry_size, is set to this value.

property file_offset int

Offset of the section’s content

property flags int

Return the section’s flags as an integer

property flags_list set[lief.ELF.SECTION_FLAGS]

Return section’s flags as a list of SECTION_FLAGS

property fullname bytes

Return the fullname of the section including the trailing bytes

has(*args) bool

Overloaded function.

  1. has(self, flag: lief._lief.ELF.SECTION_FLAGS) -> bool

Check if the given SECTION_FLAGS is present

  1. has(self, segment: lief._lief.ELF.Segment) -> bool

Check if the given Segment is present in segments

property information int

Section information (this value depends on the section)

property is_frame bool
class it_segments

Iterator over lief._lief.ELF.Segment

Index to another section

property name str | bytes

Section’s name

property offset int

Section’s file offset

property original_size int

Original size of the section’s data.

This value is used by the Builder to determine if it needs to be relocated to avoid an override of the data

remove(self, flag: lief.ELF.SECTION_FLAGS) None

Remove the given SECTION_FLAGS from the list of flags

search(*args) int | None

Overloaded function.

  1. search(self, number: int, pos: int = 0, size: int = 0) -> Optional[int]

Look for integer within the current section

  1. search(self, str: str, pos: int = 0) -> Optional[int]

Look for string within the current section

  1. search(self, bytes: bytes, pos: int = 0) -> Optional[int]

Look for the given bytes within the current section

search_all(*args) list[int]

Overloaded function.

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

Look for all integers within the current section

  1. search_all(self, str: str) -> list[int]

Look for all strings within the current section

property segments lief.ELF.Section.it_segments

Return segment(s) associated with the given section

property size int

Section’s size

property type lief.ELF.SECTION_TYPES

Return the SECTION_TYPES

property virtual_address int

Section’s virtual address


Segment

class lief.ELF.Segment(self)

Class which represents the ELF segments

add(self, flag: lief.ELF.SEGMENT_FLAGS) None

Add the given SEGMENT_FLAGS to the list of flags

property alignment int

The offset alignment of the segment

property content memoryview

The raw data associated with this segment.

property file_offset int

The file offset of the data associated with this segment

property flags lief.ELF.SEGMENT_FLAGS

The flag permissions associated with this segment

from_raw(arg: bytes) lief.ELF.Segment | lief.lief_errors = <nanobind.nb_func object>
has(*args) bool

Overloaded function.

  1. has(self, flag: lief._lief.ELF.SEGMENT_FLAGS) -> bool

Check if the given SEGMENT_FLAGS is present

  1. has(self, section: lief._lief.ELF.Section) -> bool

Check if the given Section is present in sections

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

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

class it_sections

Iterator over lief._lief.ELF.Section

property physical_address int

The physical address of the segment. This value is not really relevant on systems like Linux or Android. On the other hand, Qualcomm trustlets might use this value.

Usually this value matches virtual_address

property physical_size int

The file size of the data associated with this segment

remove(self, flag: lief.ELF.SEGMENT_FLAGS) None

Remove the given SEGMENT_FLAGS from the list of flags

property sections lief.ELF.Segment.it_sections

Iterator over the Section wrapped by this segment

property type lief.ELF.SEGMENT_TYPES

Segment’s type: SEGMENT_TYPES

property virtual_address int

The virtual address of the segment.

Warning

The ELF format specifications require the following relationship:

\[\text{virtual address} \equiv \text{file offset} \pmod{\text{page size}} \text{virtual address} \equiv \text{file offset} \pmod{\text{alignment}}\]
property virtual_size int

The in-memory size of this segment.

Usually, if the .bss segment is wrapped by this segment then, virtual_size is larger than physical_size


Dynamic Entry

class lief.ELF.DynamicEntry(self)
class lief.ELF.DynamicEntry(self, tag: lief._lief.ELF.DYNAMIC_TAGS, value: int)

Class which represents an entry in the dynamic table These entries are located in the .dynamic section or the PT_DYNAMIC segment

Overloaded function.

  1. __init__(self) -> None

Default constructor

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

Constructor from a DYNAMIC_TAGS and value

property tag lief.ELF.DYNAMIC_TAGS

Return the entry’s DYNAMIC_TAGS which represent the entry type

property value int

Return the entry’s value

The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …


Dynamic Entry Library

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

Class which represents a DT_NEEDED entry in the dynamic table.

This kind of entry is usually used to create library dependency.

Constructor from a library name

property name str | bytes

Library associated with this entry (e.g. libc.so.6)

property tag lief.ELF.DYNAMIC_TAGS

Return the entry’s DYNAMIC_TAGS which represent the entry type

property value int

Return the entry’s value

The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …


Dynamic Shared Object

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

Class which represents a DT_SONAME entry in the dynamic table This kind of entry is usually used no name the original library.

This entry is not present for executable.

Constructor from library name

property name str | bytes

Return the library name

property tag lief.ELF.DYNAMIC_TAGS

Return the entry’s DYNAMIC_TAGS which represent the entry type

property value int

Return the entry’s value

The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …


Dynamic Entry Run Path

class lief.ELF.DynamicEntryRunPath(self, path: str = '')
class lief.ELF.DynamicEntryRunPath(self, paths: list[str])

Class that represents a DT_RUNPATH wich is used by the loader to resolve libraries (DynamicEntryLibrary).

Overloaded function.

  1. __init__(self, path: str = '') -> None

Constructor from a (run)path

  1. __init__(self, paths: list[str]) -> None

Constructor from a list of paths

append(self, path: str) lief.ELF.DynamicEntryRunPath

Append the given path

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

Insert a path at the given position

property name str | bytes

Runpath raw value

property paths list[str]

Paths as a list

remove(self, path: str) lief.ELF.DynamicEntryRunPath

Remove the given path

property runpath str | bytes

Runpath raw value

property tag lief.ELF.DYNAMIC_TAGS

Return the entry’s DYNAMIC_TAGS which represent the entry type

property value int

Return the entry’s value

The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …


Dynamic Entry RPath

class lief.ELF.DynamicEntryRpath(self, path: str = '')
class lief.ELF.DynamicEntryRpath(self, paths: list[str])

Class which represents a DT_RPATH entry. This attribute is deprecated (cf. man ld) in favour of DT_RUNPATH (See DynamicRunPath)

Overloaded function.

  1. __init__(self, path: str = '') -> None

Constructor from (r)path

  1. __init__(self, paths: list[str]) -> None

Constructor from a list of paths

append(self, path: str) lief.ELF.DynamicEntryRpath

Append the given path

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

Insert a path at the given position

property name str | bytes

The actual rpath as a string

property paths list[str]

Paths as a list

remove(self, path: str) lief.ELF.DynamicEntryRpath

Remove the given path

property rpath str | bytes

The actual rpath as a string

property tag lief.ELF.DYNAMIC_TAGS

Return the entry’s DYNAMIC_TAGS which represent the entry type

property value int

Return the entry’s value

The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …


Dynamic Entry Array

class lief.ELF.DynamicEntryArray(self)
class lief.ELF.DynamicEntryArray(self, tag: lief._lief.ELF.DYNAMIC_TAGS, value: int)

Class that represent an Array in the dynamic table. This entry is associated with constructors: - DT_PREINIT_ARRAY - DT_INIT_ARRAY - DT_FINI_ARRAY

The underlying values are 64-bits integers to cover both: ELF32 and ELF64 binaries.

Constructor with DYNAMIC_TAGS and value

append(self, function: int) lief.ELF.DynamicEntryArray

Append the given function

property array list[int]

Return the array as a list of intergers

insert(self, pos: int, function: int) lief.ELF.DynamicEntryArray

Insert the given function at pos

remove(self, function: int) lief.ELF.DynamicEntryArray

Remove the given function

property tag lief.ELF.DYNAMIC_TAGS

Return the entry’s DYNAMIC_TAGS which represent the entry type

property value int

Return the entry’s value

The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …


Dynamic Entry Flags

class lief.ELF.DynamicEntryFlags(self)
class lief.ELF.DynamicEntryFlags(self, tag: lief._lief.ELF.DYNAMIC_TAGS, value: int)

Constructor with DYNAMIC_TAGS and value

add(*args) None

Overloaded function.

  1. add(self, flag: lief._lief.ELF.DYNAMIC_FLAGS) -> None

Add the given DYNAMIC_FLAGS

  1. add(self, flag: lief._lief.ELF.DYNAMIC_FLAGS_1) -> None

Add the given DYNAMIC_FLAGS_1

property flags set[int]

Return list of DYNAMIC_FLAGS or DYNAMIC_FLAGS_1 (integer)

has(*args) bool

Overloaded function.

  1. has(self, flag: lief._lief.ELF.DYNAMIC_FLAGS) -> bool

Check if this entry contains the given DYNAMIC_FLAGS

  1. has(self, flag: lief._lief.ELF.DYNAMIC_FLAGS_1) -> bool

Check if this entry contains the given DYNAMIC_FLAGS_1

remove(*args) None

Overloaded function.

  1. remove(self, flag: lief._lief.ELF.DYNAMIC_FLAGS) -> None

Remove the given DYNAMIC_FLAGS

  1. remove(self, flag: lief._lief.ELF.DYNAMIC_FLAGS_1) -> None

Remove the given DYNAMIC_FLAGS_1

property tag lief.ELF.DYNAMIC_TAGS

Return the entry’s DYNAMIC_TAGS which represent the entry type

property value int

Return the entry’s value

The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …


Relocations

class lief.ELF.Relocation(self)
class lief.ELF.Relocation(self, arch: lief._lief.ELF.ARCH)
class lief.ELF.Relocation(self, address: int, type: int = 0, addend: int = 0, is_rela: bool = False)

Class that represents an ELF relocation.

property addend int

Additional value

property address int

Relocation’s address

property has_section bool

True if this relocation has a lief.ELF.Section associated with.

This is usually the case for object files (.o)

property has_symbol bool

True if a Symbol is associated with the relocation

property info int

Extra information like the symbol index

property is_rel bool

True if the relocation doesn’t use the addend proprety

property is_rela bool

True if the relocation uses the addend proprety

property purpose lief.ELF.RELOCATION_PURPOSES

Purpose of the relocation (RELOCATION_PURPOSES).

This value provides the information about how the relocation is used (PLT/GOT resolution, .o file, …)

property section lief.ELF.Section

Section in which the relocation is applied or None if not relevant

property size int

Relocation’s size (in bits)

property symbol lief.ELF.Symbol

Symbol associated with the relocation or None if no symbol are associated with this relocation.

property symbol_table lief.ELF.Section

the symbol table Section which the relocation references

property type int

Relocation type. This value depends on the underlying architecture.

See:

Symbol

class lief.ELF.Symbol(self)

“Class which represents an ELF symbol”

property binding lief.ELF.SYMBOL_BINDINGS

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

property demangled_name str

Symbol’s name demangled or an empty string if the demangling is not possible/failed

property exported bool

Whether the symbol is exported

property has_version bool

Check if this symbols has a SymbolVersion

property imported bool

Whether the symbol is imported

property information int

This property specifies the symbol’s type and binding attributes

property is_function bool

True if the symbol is a function

property is_static bool

True if the symbol is a static visibility

property is_variable bool

True if the symbol is a variable

property name str | bytes

Symbol’s name

property other int

Alias for visibility

property section lief.ELF.Section

Return the section (Section) associated with this symbol if any. Otherwise, return None.

property shndx int

Section index associated with the symbol

property size int

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.

property symbol_version lief.ELF.SymbolVersion

Return the SymbolVersion associated with this symbol

It returns None if no version is tied to this symbol.

property type lief.ELF.SYMBOL_TYPES

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

property value int

This member has different menaing depending on the symbol’s type and the type of the ELF file (library, object, …)

  • In relocatable files, this property contains the alignment constraints of the symbol for which the section index is SHN_COMMON.

  • In relocatable files, can also contain a section’s offset for a defined symbol. That is, value is an offset from the beginning of the section associated with this symbol.

  • In executable and libraries, this property contains a virtual address.

property visibility lief.ELF.SYMBOL_VISIBILITY

Symbol SYMBOL_VISIBILITY. It’s basically an alias on other


Symbol Version

class lief.ELF.SymbolVersion(self)
class lief.ELF.SymbolVersion(self, arg: int, /)

Overloaded function.

  1. __init__(self) -> None

Default constructor

  1. __init__(self, arg: int, /) -> None

Constructor from value

global_ = <lief._lief.ELF.SymbolVersion object>
property has_auxiliary_version bool

Check if this symbols has a SymbolVersionAux

local = <lief._lief.ELF.SymbolVersion object>
property symbol_version_auxiliary lief.ELF.SymbolVersionAux

Return the SymbolVersionAux associated with this version or None if not present.

The value can be changed by assigning a SymbolVersionAuxRequirement which must already exist in the SymbolVersionRequirement. Once can use add_aux_requirement() to add a new SymbolVersionAuxRequirement.

property value int

Value associated with the symbol.

If the given SymbolVersion hasn’t Auxiliary version:

  • 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 represents an Auxiliary Symbol version

property name str | bytes

Symbol’s name (e.g. GLIBC_2.2.5)


Symbol Version Definition

class lief.ELF.SymbolVersionDefinition

Class which represents an entry defined in DT_VERDEF or .gnu.version_d

property auxiliary_symbols lief.ELF.SymbolVersionDefinition.it_version_aux
property flags int

Version information

property hash int

Hash value of the symbol’s name (using ELF hash function)

class it_version_aux

Iterator over lief._lief.ELF.SymbolVersionAux

property ndx int

Numeric value used as an index in the :class`~.ELF.SymbolVersion` table

property version int

Version revision. Should be 1

This field should always have the value 1. It will be changed if the versioning implementation has to be changed in an incompatible way.


Symbol Version Requirement

class lief.ELF.SymbolVersionRequirement

Class which represents an entry in the DT_VERNEED or .gnu.version_r table

add_auxiliary_requirement(self, arg: lief.ELF.SymbolVersionAuxRequirement) lief.ELF.SymbolVersionAuxRequirement

Add an auxiliary version requirement to the existing entries

get_auxiliary_symbols(self) lief.ELF.SymbolVersionRequirement.it_aux_requirement

Auxiliary entries (iterator over SymbolVersionAuxRequirement)

class it_aux_requirement

Iterator over lief._lief.ELF.SymbolVersionAuxRequirement

property name str

Library’s name associated with this requirement (e.g. libc.so.6)

property version int

Version revision. Should be 1


Symbol Version Auxiliary Requirement

class lief.ELF.SymbolVersionAuxRequirement(self)

Default constructor

property flags int

Bitmask of flags

property hash int

Hash value of the dependency name (use ELF hashing function)

property name str | bytes

Symbol’s name (e.g. GLIBC_2.2.5)

property other int

It returns the unique version index for the file which is used in the version symbol table. If the highest bit (bit 15) is set this is a hidden symbol which cannot be referenced from outside the object.


GNU Hash table

class lief.ELF.GnuHash(self)

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.

property bloom_filters list[int]

Bloom filters

property buckets list[int]

hash buckets

check(*args) bool

Overloaded function.

  1. check(self, 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, 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, hash: int) bool

Check if the given hash pass the bloom filter

check_bucket(self, hash: int) bool

Check if the given hash pass the bucket filter

property hash_values list[int]

Hash values

property nb_buckets int

Return the number of buckets

property shift2 int

Shift count used in the bloom filter

property symbol_index int

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)

Class which represents the SYSV hash for the symbols resolution

References:

property buckets list[int]

Buckets values

property chains list[int]

Chains values

property nbucket int

Return the number of buckets

property nchain int

Return the number of chains (symbol table index)


Note

class lief.ELF.Note

Class which represents an ELF note.

class TYPE
ANDROID_IDENT = lief._lief.ELF.TYPE.ANDROID_IDENT
ANDROID_KUSER = lief._lief.ELF.TYPE.ANDROID_KUSER
ANDROID_MEMTAG = lief._lief.ELF.TYPE.ANDROID_MEMTAG
CORE_ARM_HW_BREAK = lief._lief.ELF.TYPE.CORE_ARM_HW_BREAK
CORE_ARM_HW_WATCH = lief._lief.ELF.TYPE.CORE_ARM_HW_WATCH
CORE_ARM_PACA_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACA_KEYS
CORE_ARM_PACG_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACG_KEYS
CORE_ARM_PAC_MASK = lief._lief.ELF.TYPE.CORE_ARM_PAC_MASK
CORE_ARM_SVE = lief._lief.ELF.TYPE.CORE_ARM_SVE
CORE_ARM_SYSTEM_CALL = lief._lief.ELF.TYPE.CORE_ARM_SYSTEM_CALL
CORE_ARM_TLS = lief._lief.ELF.TYPE.CORE_ARM_TLS
CORE_ARM_VFP = lief._lief.ELF.TYPE.CORE_ARM_VFP
CORE_AUXV = lief._lief.ELF.TYPE.CORE_AUXV
CORE_FILE = lief._lief.ELF.TYPE.CORE_FILE
CORE_FPREGS = lief._lief.ELF.TYPE.CORE_FPREGS
CORE_FPREGSET = lief._lief.ELF.TYPE.CORE_FPREGSET
CORE_LWPSINFO = lief._lief.ELF.TYPE.CORE_LWPSINFO
CORE_LWPSTATUS = lief._lief.ELF.TYPE.CORE_LWPSTATUS
CORE_PAC_ENABLED_KEYS = lief._lief.ELF.TYPE.CORE_PAC_ENABLED_KEYS
CORE_PRPSINFO = lief._lief.ELF.TYPE.CORE_PRPSINFO
CORE_PRSTATUS = lief._lief.ELF.TYPE.CORE_PRSTATUS
CORE_PRXFPREG = lief._lief.ELF.TYPE.CORE_PRXFPREG
CORE_PSINFO = lief._lief.ELF.TYPE.CORE_PSINFO
CORE_PSTATUS = lief._lief.ELF.TYPE.CORE_PSTATUS
CORE_SIGINFO = lief._lief.ELF.TYPE.CORE_SIGINFO
CORE_TAGGED_ADDR_CTRL = lief._lief.ELF.TYPE.CORE_TAGGED_ADDR_CTRL
CORE_TASKSTRUCT = lief._lief.ELF.TYPE.CORE_TASKSTRUCT
CORE_WIN32PSTATUS = lief._lief.ELF.TYPE.CORE_WIN32PSTATUS
CORE_X86_CET = lief._lief.ELF.TYPE.CORE_X86_CET
CORE_X86_IOPERM = lief._lief.ELF.TYPE.CORE_X86_IOPERM
CORE_X86_TLS = lief._lief.ELF.TYPE.CORE_X86_TLS
CORE_X86_XSTATE = lief._lief.ELF.TYPE.CORE_X86_XSTATE
CRASHPAD = lief._lief.ELF.TYPE.CRASHPAD
GNU_ABI_TAG = lief._lief.ELF.TYPE.GNU_ABI_TAG
GNU_BUILD_ATTRIBUTE_FUNC = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_FUNC
GNU_BUILD_ATTRIBUTE_OPEN = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_OPEN
GNU_BUILD_ID = lief._lief.ELF.TYPE.GNU_BUILD_ID
GNU_GOLD_VERSION = lief._lief.ELF.TYPE.GNU_GOLD_VERSION
GNU_HWCAP = lief._lief.ELF.TYPE.GNU_HWCAP
GNU_PROPERTY_TYPE_0 = lief._lief.ELF.TYPE.GNU_PROPERTY_TYPE_0
GO_BUILDID = lief._lief.ELF.TYPE.GO_BUILDID
STAPSDT = lief._lief.ELF.TYPE.STAPSDT
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
from_value(arg: int) lief.ELF.Note.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

copy(self) lief.ELF.Note | None

Duplicate the current instance of this object

create(*args) lief.ELF.Note | None = <nanobind.nb_func object>
property description memoryview

Return the description associated with the note

property name str

Return the name of the note also known as the owner.

property original_type int

Return the original NT_ value of the note.

This value should be interpreted according the the name of the note.

property size int

Size of the raw note

property type lief.ELF.Note.TYPE

Return the LIEF type representation of the note.


Core PrPsInfo

class lief.ELF.CorePrPsInfo
class TYPE
ANDROID_IDENT = lief._lief.ELF.TYPE.ANDROID_IDENT
ANDROID_KUSER = lief._lief.ELF.TYPE.ANDROID_KUSER
ANDROID_MEMTAG = lief._lief.ELF.TYPE.ANDROID_MEMTAG
CORE_ARM_HW_BREAK = lief._lief.ELF.TYPE.CORE_ARM_HW_BREAK
CORE_ARM_HW_WATCH = lief._lief.ELF.TYPE.CORE_ARM_HW_WATCH
CORE_ARM_PACA_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACA_KEYS
CORE_ARM_PACG_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACG_KEYS
CORE_ARM_PAC_MASK = lief._lief.ELF.TYPE.CORE_ARM_PAC_MASK
CORE_ARM_SVE = lief._lief.ELF.TYPE.CORE_ARM_SVE
CORE_ARM_SYSTEM_CALL = lief._lief.ELF.TYPE.CORE_ARM_SYSTEM_CALL
CORE_ARM_TLS = lief._lief.ELF.TYPE.CORE_ARM_TLS
CORE_ARM_VFP = lief._lief.ELF.TYPE.CORE_ARM_VFP
CORE_AUXV = lief._lief.ELF.TYPE.CORE_AUXV
CORE_FILE = lief._lief.ELF.TYPE.CORE_FILE
CORE_FPREGS = lief._lief.ELF.TYPE.CORE_FPREGS
CORE_FPREGSET = lief._lief.ELF.TYPE.CORE_FPREGSET
CORE_LWPSINFO = lief._lief.ELF.TYPE.CORE_LWPSINFO
CORE_LWPSTATUS = lief._lief.ELF.TYPE.CORE_LWPSTATUS
CORE_PAC_ENABLED_KEYS = lief._lief.ELF.TYPE.CORE_PAC_ENABLED_KEYS
CORE_PRPSINFO = lief._lief.ELF.TYPE.CORE_PRPSINFO
CORE_PRSTATUS = lief._lief.ELF.TYPE.CORE_PRSTATUS
CORE_PRXFPREG = lief._lief.ELF.TYPE.CORE_PRXFPREG
CORE_PSINFO = lief._lief.ELF.TYPE.CORE_PSINFO
CORE_PSTATUS = lief._lief.ELF.TYPE.CORE_PSTATUS
CORE_SIGINFO = lief._lief.ELF.TYPE.CORE_SIGINFO
CORE_TAGGED_ADDR_CTRL = lief._lief.ELF.TYPE.CORE_TAGGED_ADDR_CTRL
CORE_TASKSTRUCT = lief._lief.ELF.TYPE.CORE_TASKSTRUCT
CORE_WIN32PSTATUS = lief._lief.ELF.TYPE.CORE_WIN32PSTATUS
CORE_X86_CET = lief._lief.ELF.TYPE.CORE_X86_CET
CORE_X86_IOPERM = lief._lief.ELF.TYPE.CORE_X86_IOPERM
CORE_X86_TLS = lief._lief.ELF.TYPE.CORE_X86_TLS
CORE_X86_XSTATE = lief._lief.ELF.TYPE.CORE_X86_XSTATE
CRASHPAD = lief._lief.ELF.TYPE.CRASHPAD
GNU_ABI_TAG = lief._lief.ELF.TYPE.GNU_ABI_TAG
GNU_BUILD_ATTRIBUTE_FUNC = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_FUNC
GNU_BUILD_ATTRIBUTE_OPEN = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_OPEN
GNU_BUILD_ID = lief._lief.ELF.TYPE.GNU_BUILD_ID
GNU_GOLD_VERSION = lief._lief.ELF.TYPE.GNU_GOLD_VERSION
GNU_HWCAP = lief._lief.ELF.TYPE.GNU_HWCAP
GNU_PROPERTY_TYPE_0 = lief._lief.ELF.TYPE.GNU_PROPERTY_TYPE_0
GO_BUILDID = lief._lief.ELF.TYPE.GO_BUILDID
STAPSDT = lief._lief.ELF.TYPE.STAPSDT
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
from_value(arg: int) lief.ELF.Note.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

copy(self) lief.ELF.Note | None

Duplicate the current instance of this object

create(*args) lief.ELF.Note | None = <nanobind.nb_func object>
property description memoryview

Return the description associated with the note

property info lief.ELF.CorePrPsInfo.info_t | None
class info_t
property args str
property args_stripped str
property filename str
property filename_stripped str
property flag int
property gid int
property nice int
property pgrp int
property pid int
property ppid int
property sid int
property sname str
property state int
property uid int
property zombie bool
property name str

Return the name of the note also known as the owner.

property original_type int

Return the original NT_ value of the note.

This value should be interpreted according the the name of the note.

property size int

Size of the raw note

property type lief.ELF.Note.TYPE

Return the LIEF type representation of the note.


Core PrStatus

class lief.ELF.CorePrStatus
class Registers
class AARCH64
PC = lief._lief.ELF.AARCH64.PC
PSTATE = lief._lief.ELF.AARCH64.PSTATE
X0 = lief._lief.ELF.AARCH64.X0
X1 = lief._lief.ELF.AARCH64.X1
X10 = lief._lief.ELF.AARCH64.X10
X11 = lief._lief.ELF.AARCH64.X11
X12 = lief._lief.ELF.AARCH64.X12
X13 = lief._lief.ELF.AARCH64.X13
X14 = lief._lief.ELF.AARCH64.X14
X15 = lief._lief.ELF.AARCH64.X15
X16 = lief._lief.ELF.AARCH64.X16
X17 = lief._lief.ELF.AARCH64.X17
X18 = lief._lief.ELF.AARCH64.X18
X19 = lief._lief.ELF.AARCH64.X19
X2 = lief._lief.ELF.AARCH64.X2
X20 = lief._lief.ELF.AARCH64.X20
X21 = lief._lief.ELF.AARCH64.X21
X22 = lief._lief.ELF.AARCH64.X22
X23 = lief._lief.ELF.AARCH64.X23
X24 = lief._lief.ELF.AARCH64.X24
X25 = lief._lief.ELF.AARCH64.X25
X26 = lief._lief.ELF.AARCH64.X26
X27 = lief._lief.ELF.AARCH64.X27
X28 = lief._lief.ELF.AARCH64.X28
X29 = lief._lief.ELF.AARCH64.X29
X3 = lief._lief.ELF.AARCH64.X3
X30 = lief._lief.ELF.AARCH64.X30
X31 = lief._lief.ELF.AARCH64.X31
X4 = lief._lief.ELF.AARCH64.X4
X5 = lief._lief.ELF.AARCH64.X5
X6 = lief._lief.ELF.AARCH64.X6
X7 = lief._lief.ELF.AARCH64.X7
X8 = lief._lief.ELF.AARCH64.X8
X9 = lief._lief.ELF.AARCH64.X9
from_value(arg: int) lief.ELF.CorePrStatus.Registers.AARCH64 = <nanobind.nb_func object>
property value int

The underlying integer value

class ARM
CPSR = lief._lief.ELF.ARM.CPSR
R0 = lief._lief.ELF.ARM.R0
R1 = lief._lief.ELF.ARM.R1
R10 = lief._lief.ELF.ARM.R10
R11 = lief._lief.ELF.ARM.R11
R12 = lief._lief.ELF.ARM.R12
R13 = lief._lief.ELF.ARM.R13
R14 = lief._lief.ELF.ARM.R14
R15 = lief._lief.ELF.ARM.R15
R2 = lief._lief.ELF.ARM.R2
R3 = lief._lief.ELF.ARM.R3
R4 = lief._lief.ELF.ARM.R4
R5 = lief._lief.ELF.ARM.R5
R6 = lief._lief.ELF.ARM.R6
R7 = lief._lief.ELF.ARM.R7
R8 = lief._lief.ELF.ARM.R8
R9 = lief._lief.ELF.ARM.R9
from_value(arg: int) lief.ELF.CorePrStatus.Registers.ARM = <nanobind.nb_func object>
property value int

The underlying integer value

class X86
CS = lief._lief.ELF.X86.CS
DS = lief._lief.ELF.X86.DS
EAX = lief._lief.ELF.X86.EAX
EBP = lief._lief.ELF.X86.EBP
EBX = lief._lief.ELF.X86.EBX
ECX = lief._lief.ELF.X86.ECX
EDI = lief._lief.ELF.X86.EDI
EDX = lief._lief.ELF.X86.EDX
EFLAGS = lief._lief.ELF.X86.EFLAGS
EIP = lief._lief.ELF.X86.EIP
ES = lief._lief.ELF.X86.ES
ESI = lief._lief.ELF.X86.ESI
ESP = lief._lief.ELF.X86.ESP
FS = lief._lief.ELF.X86.FS
GS = lief._lief.ELF.X86.GS
ORIG_EAX = lief._lief.ELF.X86.ORIG_EAX
SS = lief._lief.ELF.X86.SS
from_value(arg: int) lief.ELF.CorePrStatus.Registers.X86 = <nanobind.nb_func object>
property value int

The underlying integer value

class X86_64
CS = lief._lief.ELF.X86_64.CS
EFLAGS = lief._lief.ELF.X86_64.EFLAGS
ORIG_RAX = lief._lief.ELF.X86_64.ORIG_RAX
R10 = lief._lief.ELF.X86_64.R10
R11 = lief._lief.ELF.X86_64.R11
R12 = lief._lief.ELF.X86_64.R12
R13 = lief._lief.ELF.X86_64.R13
R14 = lief._lief.ELF.X86_64.R14
R15 = lief._lief.ELF.X86_64.R15
R8 = lief._lief.ELF.X86_64.R8
R9 = lief._lief.ELF.X86_64.R9
RAX = lief._lief.ELF.X86_64.RAX
RBP = lief._lief.ELF.X86_64.RBP
RBX = lief._lief.ELF.X86_64.RBX
RCX = lief._lief.ELF.X86_64.RCX
RDI = lief._lief.ELF.X86_64.RDI
RDX = lief._lief.ELF.X86_64.RDX
RIP = lief._lief.ELF.X86_64.RIP
RSI = lief._lief.ELF.X86_64.RSI
RSP = lief._lief.ELF.X86_64.RSP
SS = lief._lief.ELF.X86_64.SS
from_value(arg: int) lief.ELF.CorePrStatus.Registers.X86_64 = <nanobind.nb_func object>
property value int

The underlying integer value

class TYPE
ANDROID_IDENT = lief._lief.ELF.TYPE.ANDROID_IDENT
ANDROID_KUSER = lief._lief.ELF.TYPE.ANDROID_KUSER
ANDROID_MEMTAG = lief._lief.ELF.TYPE.ANDROID_MEMTAG
CORE_ARM_HW_BREAK = lief._lief.ELF.TYPE.CORE_ARM_HW_BREAK
CORE_ARM_HW_WATCH = lief._lief.ELF.TYPE.CORE_ARM_HW_WATCH
CORE_ARM_PACA_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACA_KEYS
CORE_ARM_PACG_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACG_KEYS
CORE_ARM_PAC_MASK = lief._lief.ELF.TYPE.CORE_ARM_PAC_MASK
CORE_ARM_SVE = lief._lief.ELF.TYPE.CORE_ARM_SVE
CORE_ARM_SYSTEM_CALL = lief._lief.ELF.TYPE.CORE_ARM_SYSTEM_CALL
CORE_ARM_TLS = lief._lief.ELF.TYPE.CORE_ARM_TLS
CORE_ARM_VFP = lief._lief.ELF.TYPE.CORE_ARM_VFP
CORE_AUXV = lief._lief.ELF.TYPE.CORE_AUXV
CORE_FILE = lief._lief.ELF.TYPE.CORE_FILE
CORE_FPREGS = lief._lief.ELF.TYPE.CORE_FPREGS
CORE_FPREGSET = lief._lief.ELF.TYPE.CORE_FPREGSET
CORE_LWPSINFO = lief._lief.ELF.TYPE.CORE_LWPSINFO
CORE_LWPSTATUS = lief._lief.ELF.TYPE.CORE_LWPSTATUS
CORE_PAC_ENABLED_KEYS = lief._lief.ELF.TYPE.CORE_PAC_ENABLED_KEYS
CORE_PRPSINFO = lief._lief.ELF.TYPE.CORE_PRPSINFO
CORE_PRSTATUS = lief._lief.ELF.TYPE.CORE_PRSTATUS
CORE_PRXFPREG = lief._lief.ELF.TYPE.CORE_PRXFPREG
CORE_PSINFO = lief._lief.ELF.TYPE.CORE_PSINFO
CORE_PSTATUS = lief._lief.ELF.TYPE.CORE_PSTATUS
CORE_SIGINFO = lief._lief.ELF.TYPE.CORE_SIGINFO
CORE_TAGGED_ADDR_CTRL = lief._lief.ELF.TYPE.CORE_TAGGED_ADDR_CTRL
CORE_TASKSTRUCT = lief._lief.ELF.TYPE.CORE_TASKSTRUCT
CORE_WIN32PSTATUS = lief._lief.ELF.TYPE.CORE_WIN32PSTATUS
CORE_X86_CET = lief._lief.ELF.TYPE.CORE_X86_CET
CORE_X86_IOPERM = lief._lief.ELF.TYPE.CORE_X86_IOPERM
CORE_X86_TLS = lief._lief.ELF.TYPE.CORE_X86_TLS
CORE_X86_XSTATE = lief._lief.ELF.TYPE.CORE_X86_XSTATE
CRASHPAD = lief._lief.ELF.TYPE.CRASHPAD
GNU_ABI_TAG = lief._lief.ELF.TYPE.GNU_ABI_TAG
GNU_BUILD_ATTRIBUTE_FUNC = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_FUNC
GNU_BUILD_ATTRIBUTE_OPEN = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_OPEN
GNU_BUILD_ID = lief._lief.ELF.TYPE.GNU_BUILD_ID
GNU_GOLD_VERSION = lief._lief.ELF.TYPE.GNU_GOLD_VERSION
GNU_HWCAP = lief._lief.ELF.TYPE.GNU_HWCAP
GNU_PROPERTY_TYPE_0 = lief._lief.ELF.TYPE.GNU_PROPERTY_TYPE_0
GO_BUILDID = lief._lief.ELF.TYPE.GO_BUILDID
STAPSDT = lief._lief.ELF.TYPE.STAPSDT
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
from_value(arg: int) lief.ELF.Note.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

property architecture lief.ELF.ARCH

Original target architecture.

copy(self) lief.ELF.Note | None

Duplicate the current instance of this object

create(*args) lief.ELF.Note | None = <nanobind.nb_func object>
property description memoryview

Return the description associated with the note

get(*args) int | None

Overloaded function.

  1. get(self, reg: lief._lief.ELF.CorePrStatus.Registers.X86) -> Optional[int]

Get the register value or non if it is not present

  1. get(self, reg: lief._lief.ELF.CorePrStatus.Registers.X86_64) -> Optional[int]

Get the register value or non if it is not present

  1. get(self, reg: lief._lief.ELF.CorePrStatus.Registers.ARM) -> Optional[int]

Get the register value or non if it is not present

  1. get(self, reg: lief._lief.ELF.CorePrStatus.Registers.AARCH64) -> Optional[int]

Get the register value or non if it is not present

property name str

Return the name of the note also known as the owner.

property original_type int

Return the original NT_ value of the note.

This value should be interpreted according the the name of the note.

property pc int | None

Return the program counter value (rip, pc, eip etc)

class pr_status_t
property cstime lief.ELF.CorePrStatus.timeval_t
property cursig int
property cutime lief.ELF.CorePrStatus.timeval_t
property info lief.ELF.CorePrStatus.siginfo_t
property pgrp int
property pid int
property ppid int
property reserved int
property sid int
property sighold int
property sigpend int
property stime lief.ELF.CorePrStatus.timeval_t
property utime lief.ELF.CorePrStatus.timeval_t
property register_values list[int]

List of the register values. This list is guarantee to be as long as the number of registers defined in the Registers or empty if it can’t be resolved.

Thus, one can access a specific register through:

reg_vals: list[int] = note.register_values()
x20 = reg_vals[CorePrStatus.Registesr.AARCH64.X20.value]
property return_value int | None

The value of the register that holds the return value according to the calling convention.

set(*args) lief.ok_error_t

Overloaded function.

  1. set(self, reg: lief._lief.ELF.CorePrStatus.Registers.X86, value: int) -> lief._lief.ok_error_t

Change the register value

  1. set(self, reg: lief._lief.ELF.CorePrStatus.Registers.X86_64, value: int) -> lief._lief.ok_error_t

Change the register value

  1. set(self, reg: lief._lief.ELF.CorePrStatus.Registers.ARM, value: int) -> lief._lief.ok_error_t

Change the register value

  1. set(self, reg: lief._lief.ELF.CorePrStatus.Registers.AARCH64, value: int) -> lief._lief.ok_error_t

Change the register value

class siginfo_t
property errno int
property sicode int
property signo int
property size int

Size of the raw note

property sp int | None

Return the stack pointer value

property status lief.ELF.CorePrStatus.pr_status_t

Info associated with the signal

class timeval_t
property sec int
property usec int
property type lief.ELF.Note.TYPE

Return the LIEF type representation of the note.


Core File

class lief.ELF.CoreFile
class TYPE
ANDROID_IDENT = lief._lief.ELF.TYPE.ANDROID_IDENT
ANDROID_KUSER = lief._lief.ELF.TYPE.ANDROID_KUSER
ANDROID_MEMTAG = lief._lief.ELF.TYPE.ANDROID_MEMTAG
CORE_ARM_HW_BREAK = lief._lief.ELF.TYPE.CORE_ARM_HW_BREAK
CORE_ARM_HW_WATCH = lief._lief.ELF.TYPE.CORE_ARM_HW_WATCH
CORE_ARM_PACA_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACA_KEYS
CORE_ARM_PACG_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACG_KEYS
CORE_ARM_PAC_MASK = lief._lief.ELF.TYPE.CORE_ARM_PAC_MASK
CORE_ARM_SVE = lief._lief.ELF.TYPE.CORE_ARM_SVE
CORE_ARM_SYSTEM_CALL = lief._lief.ELF.TYPE.CORE_ARM_SYSTEM_CALL
CORE_ARM_TLS = lief._lief.ELF.TYPE.CORE_ARM_TLS
CORE_ARM_VFP = lief._lief.ELF.TYPE.CORE_ARM_VFP
CORE_AUXV = lief._lief.ELF.TYPE.CORE_AUXV
CORE_FILE = lief._lief.ELF.TYPE.CORE_FILE
CORE_FPREGS = lief._lief.ELF.TYPE.CORE_FPREGS
CORE_FPREGSET = lief._lief.ELF.TYPE.CORE_FPREGSET
CORE_LWPSINFO = lief._lief.ELF.TYPE.CORE_LWPSINFO
CORE_LWPSTATUS = lief._lief.ELF.TYPE.CORE_LWPSTATUS
CORE_PAC_ENABLED_KEYS = lief._lief.ELF.TYPE.CORE_PAC_ENABLED_KEYS
CORE_PRPSINFO = lief._lief.ELF.TYPE.CORE_PRPSINFO
CORE_PRSTATUS = lief._lief.ELF.TYPE.CORE_PRSTATUS
CORE_PRXFPREG = lief._lief.ELF.TYPE.CORE_PRXFPREG
CORE_PSINFO = lief._lief.ELF.TYPE.CORE_PSINFO
CORE_PSTATUS = lief._lief.ELF.TYPE.CORE_PSTATUS
CORE_SIGINFO = lief._lief.ELF.TYPE.CORE_SIGINFO
CORE_TAGGED_ADDR_CTRL = lief._lief.ELF.TYPE.CORE_TAGGED_ADDR_CTRL
CORE_TASKSTRUCT = lief._lief.ELF.TYPE.CORE_TASKSTRUCT
CORE_WIN32PSTATUS = lief._lief.ELF.TYPE.CORE_WIN32PSTATUS
CORE_X86_CET = lief._lief.ELF.TYPE.CORE_X86_CET
CORE_X86_IOPERM = lief._lief.ELF.TYPE.CORE_X86_IOPERM
CORE_X86_TLS = lief._lief.ELF.TYPE.CORE_X86_TLS
CORE_X86_XSTATE = lief._lief.ELF.TYPE.CORE_X86_XSTATE
CRASHPAD = lief._lief.ELF.TYPE.CRASHPAD
GNU_ABI_TAG = lief._lief.ELF.TYPE.GNU_ABI_TAG
GNU_BUILD_ATTRIBUTE_FUNC = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_FUNC
GNU_BUILD_ATTRIBUTE_OPEN = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_OPEN
GNU_BUILD_ID = lief._lief.ELF.TYPE.GNU_BUILD_ID
GNU_GOLD_VERSION = lief._lief.ELF.TYPE.GNU_GOLD_VERSION
GNU_HWCAP = lief._lief.ELF.TYPE.GNU_HWCAP
GNU_PROPERTY_TYPE_0 = lief._lief.ELF.TYPE.GNU_PROPERTY_TYPE_0
GO_BUILDID = lief._lief.ELF.TYPE.GO_BUILDID
STAPSDT = lief._lief.ELF.TYPE.STAPSDT
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
from_value(arg: int) lief.ELF.Note.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

copy(self) lief.ELF.Note | None

Duplicate the current instance of this object

create(*args) lief.ELF.Note | None = <nanobind.nb_func object>
property description memoryview

Return the description associated with the note

class entry_t
property end int

End address of mapped file

property file_ofs int

Offset (in core) of mapped file

property path str

Path of mapped file

property start int

Start address of mapped file

property files lief.ELF.CoreFile.files_t

List of files mapped in core. (list of CoreFileEntry)

class files_t(self)
class files_t(self, arg: lief._lief.ELF.CoreFile.files_t)
class files_t(self, arg: Iterable[lief._lief.ELF.CoreFile.entry_t], /)

Overloaded function.

  1. __init__(self) -> None

Default constructor

  1. __init__(self, arg: lief._lief.ELF.CoreFile.files_t) -> None

Copy constructor

  1. __init__(self, arg: Iterable[lief._lief.ELF.CoreFile.entry_t], /) -> None

Construct from an iterable object

append(self, arg: lief.ELF.CoreFile.entry_t) None

Append arg to the end of the list.

clear(self) None

Remove all items from list.

extend(self, arg: lief.ELF.CoreFile.files_t) None

Extend self by appending elements from arg.

insert(self, arg0: int, arg1: lief.ELF.CoreFile.entry_t) None

Insert object arg1 before index arg0.

pop(self, index: int) lief.ELF.CoreFile.entry_t

Remove and return item at index (default last).

property name str

Return the name of the note also known as the owner.

property original_type int

Return the original NT_ value of the note.

This value should be interpreted according the the name of the note.

property size int

Size of the raw note

property type lief.ELF.Note.TYPE

Return the LIEF type representation of the note.


Core Siginfo

class lief.ELF.CoreSigInfo
class TYPE
ANDROID_IDENT = lief._lief.ELF.TYPE.ANDROID_IDENT
ANDROID_KUSER = lief._lief.ELF.TYPE.ANDROID_KUSER
ANDROID_MEMTAG = lief._lief.ELF.TYPE.ANDROID_MEMTAG
CORE_ARM_HW_BREAK = lief._lief.ELF.TYPE.CORE_ARM_HW_BREAK
CORE_ARM_HW_WATCH = lief._lief.ELF.TYPE.CORE_ARM_HW_WATCH
CORE_ARM_PACA_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACA_KEYS
CORE_ARM_PACG_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACG_KEYS
CORE_ARM_PAC_MASK = lief._lief.ELF.TYPE.CORE_ARM_PAC_MASK
CORE_ARM_SVE = lief._lief.ELF.TYPE.CORE_ARM_SVE
CORE_ARM_SYSTEM_CALL = lief._lief.ELF.TYPE.CORE_ARM_SYSTEM_CALL
CORE_ARM_TLS = lief._lief.ELF.TYPE.CORE_ARM_TLS
CORE_ARM_VFP = lief._lief.ELF.TYPE.CORE_ARM_VFP
CORE_AUXV = lief._lief.ELF.TYPE.CORE_AUXV
CORE_FILE = lief._lief.ELF.TYPE.CORE_FILE
CORE_FPREGS = lief._lief.ELF.TYPE.CORE_FPREGS
CORE_FPREGSET = lief._lief.ELF.TYPE.CORE_FPREGSET
CORE_LWPSINFO = lief._lief.ELF.TYPE.CORE_LWPSINFO
CORE_LWPSTATUS = lief._lief.ELF.TYPE.CORE_LWPSTATUS
CORE_PAC_ENABLED_KEYS = lief._lief.ELF.TYPE.CORE_PAC_ENABLED_KEYS
CORE_PRPSINFO = lief._lief.ELF.TYPE.CORE_PRPSINFO
CORE_PRSTATUS = lief._lief.ELF.TYPE.CORE_PRSTATUS
CORE_PRXFPREG = lief._lief.ELF.TYPE.CORE_PRXFPREG
CORE_PSINFO = lief._lief.ELF.TYPE.CORE_PSINFO
CORE_PSTATUS = lief._lief.ELF.TYPE.CORE_PSTATUS
CORE_SIGINFO = lief._lief.ELF.TYPE.CORE_SIGINFO
CORE_TAGGED_ADDR_CTRL = lief._lief.ELF.TYPE.CORE_TAGGED_ADDR_CTRL
CORE_TASKSTRUCT = lief._lief.ELF.TYPE.CORE_TASKSTRUCT
CORE_WIN32PSTATUS = lief._lief.ELF.TYPE.CORE_WIN32PSTATUS
CORE_X86_CET = lief._lief.ELF.TYPE.CORE_X86_CET
CORE_X86_IOPERM = lief._lief.ELF.TYPE.CORE_X86_IOPERM
CORE_X86_TLS = lief._lief.ELF.TYPE.CORE_X86_TLS
CORE_X86_XSTATE = lief._lief.ELF.TYPE.CORE_X86_XSTATE
CRASHPAD = lief._lief.ELF.TYPE.CRASHPAD
GNU_ABI_TAG = lief._lief.ELF.TYPE.GNU_ABI_TAG
GNU_BUILD_ATTRIBUTE_FUNC = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_FUNC
GNU_BUILD_ATTRIBUTE_OPEN = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_OPEN
GNU_BUILD_ID = lief._lief.ELF.TYPE.GNU_BUILD_ID
GNU_GOLD_VERSION = lief._lief.ELF.TYPE.GNU_GOLD_VERSION
GNU_HWCAP = lief._lief.ELF.TYPE.GNU_HWCAP
GNU_PROPERTY_TYPE_0 = lief._lief.ELF.TYPE.GNU_PROPERTY_TYPE_0
GO_BUILDID = lief._lief.ELF.TYPE.GO_BUILDID
STAPSDT = lief._lief.ELF.TYPE.STAPSDT
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
from_value(arg: int) lief.ELF.Note.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

copy(self) lief.ELF.Note | None

Duplicate the current instance of this object

create(*args) lief.ELF.Note | None = <nanobind.nb_func object>
property description memoryview

Return the description associated with the note

property name str

Return the name of the note also known as the owner.

property original_type int

Return the original NT_ value of the note.

This value should be interpreted according the the name of the note.

property sigcode int | None

Signal code

property sigerrno int | None

If non-zero, an errno value associated with this signal

property signo int | None

Signal number

property size int

Size of the raw note

property type lief.ELF.Note.TYPE

Return the LIEF type representation of the note.


Core Auxiliary Vector

class lief.ELF.CoreAuxv
class TYPE
BASE = lief._lief.ELF.TYPE.BASE
BASE_PLATFORM = lief._lief.ELF.TYPE.BASE_PLATFORM
CLKTCK = lief._lief.ELF.TYPE.CLKTCK
DCACHEBSIZE = lief._lief.ELF.TYPE.DCACHEBSIZE
EGID = lief._lief.ELF.TYPE.EGID
END = lief._lief.ELF.TYPE.END
ENTRY = lief._lief.ELF.TYPE.ENTRY
EUID = lief._lief.ELF.TYPE.EUID
EXECFD = lief._lief.ELF.TYPE.EXECFD
EXECFN = lief._lief.ELF.TYPE.EXECFN
FLAGS = lief._lief.ELF.TYPE.FLAGS
FPUCW = lief._lief.ELF.TYPE.FPUCW
GID = lief._lief.ELF.TYPE.GID
HWCAP = lief._lief.ELF.TYPE.HWCAP
HWCAP2 = lief._lief.ELF.TYPE.HWCAP2
ICACHEBSIZE = lief._lief.ELF.TYPE.ICACHEBSIZE
IGNORE = lief._lief.ELF.TYPE.IGNORE
IGNOREPPC = lief._lief.ELF.TYPE.IGNOREPPC
NOTELF = lief._lief.ELF.TYPE.NOTELF
PAGESZ = lief._lief.ELF.TYPE.PAGESZ
PHDR = lief._lief.ELF.TYPE.PHDR
PHENT = lief._lief.ELF.TYPE.PHENT
PHNUM = lief._lief.ELF.TYPE.PHNUM
RANDOM = lief._lief.ELF.TYPE.RANDOM
SECURE = lief._lief.ELF.TYPE.SECURE
SYSINFO = lief._lief.ELF.TYPE.SYSINFO
SYSINFO_EHDR = lief._lief.ELF.TYPE.SYSINFO_EHDR
TGT_PLATFORM = lief._lief.ELF.TYPE.TGT_PLATFORM
UCACHEBSIZE = lief._lief.ELF.TYPE.UCACHEBSIZE
UID = lief._lief.ELF.TYPE.UID
from_value(arg: int) lief.ELF.CoreAuxv.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

copy(self) lief.ELF.Note | None

Duplicate the current instance of this object

create(*args) lief.ELF.Note | None = <nanobind.nb_func object>
property description memoryview

Return the description associated with the note

get(self, type: lief.ELF.CoreAuxv.TYPE) int | None

Get the auxv value from the provided type. Return None if it is not present.

property name str

Return the name of the note also known as the owner.

property original_type int

Return the original NT_ value of the note.

This value should be interpreted according the the name of the note.

set(*args) bool

Overloaded function.

  1. set(self, type: lief._lief.ELF.CoreAuxv.TYPE, value: int) -> bool

    Change the value for the given type.

  2. set(self, arg: dict[lief._lief.ELF.CoreAuxv.TYPE, int], /) -> bool

    Replace all the values by the given dictionary.

property size int

Size of the raw note

property type lief.ELF.Note.TYPE

Return the LIEF type representation of the note.

property values dict[lief.ELF.CoreAuxv.TYPE, int]

Return the auxiliary vector as a dictionary of TYPE / int


Android Ident

class lief.ELF.AndroidIdent
class TYPE
ANDROID_IDENT = lief._lief.ELF.TYPE.ANDROID_IDENT
ANDROID_KUSER = lief._lief.ELF.TYPE.ANDROID_KUSER
ANDROID_MEMTAG = lief._lief.ELF.TYPE.ANDROID_MEMTAG
CORE_ARM_HW_BREAK = lief._lief.ELF.TYPE.CORE_ARM_HW_BREAK
CORE_ARM_HW_WATCH = lief._lief.ELF.TYPE.CORE_ARM_HW_WATCH
CORE_ARM_PACA_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACA_KEYS
CORE_ARM_PACG_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACG_KEYS
CORE_ARM_PAC_MASK = lief._lief.ELF.TYPE.CORE_ARM_PAC_MASK
CORE_ARM_SVE = lief._lief.ELF.TYPE.CORE_ARM_SVE
CORE_ARM_SYSTEM_CALL = lief._lief.ELF.TYPE.CORE_ARM_SYSTEM_CALL
CORE_ARM_TLS = lief._lief.ELF.TYPE.CORE_ARM_TLS
CORE_ARM_VFP = lief._lief.ELF.TYPE.CORE_ARM_VFP
CORE_AUXV = lief._lief.ELF.TYPE.CORE_AUXV
CORE_FILE = lief._lief.ELF.TYPE.CORE_FILE
CORE_FPREGS = lief._lief.ELF.TYPE.CORE_FPREGS
CORE_FPREGSET = lief._lief.ELF.TYPE.CORE_FPREGSET
CORE_LWPSINFO = lief._lief.ELF.TYPE.CORE_LWPSINFO
CORE_LWPSTATUS = lief._lief.ELF.TYPE.CORE_LWPSTATUS
CORE_PAC_ENABLED_KEYS = lief._lief.ELF.TYPE.CORE_PAC_ENABLED_KEYS
CORE_PRPSINFO = lief._lief.ELF.TYPE.CORE_PRPSINFO
CORE_PRSTATUS = lief._lief.ELF.TYPE.CORE_PRSTATUS
CORE_PRXFPREG = lief._lief.ELF.TYPE.CORE_PRXFPREG
CORE_PSINFO = lief._lief.ELF.TYPE.CORE_PSINFO
CORE_PSTATUS = lief._lief.ELF.TYPE.CORE_PSTATUS
CORE_SIGINFO = lief._lief.ELF.TYPE.CORE_SIGINFO
CORE_TAGGED_ADDR_CTRL = lief._lief.ELF.TYPE.CORE_TAGGED_ADDR_CTRL
CORE_TASKSTRUCT = lief._lief.ELF.TYPE.CORE_TASKSTRUCT
CORE_WIN32PSTATUS = lief._lief.ELF.TYPE.CORE_WIN32PSTATUS
CORE_X86_CET = lief._lief.ELF.TYPE.CORE_X86_CET
CORE_X86_IOPERM = lief._lief.ELF.TYPE.CORE_X86_IOPERM
CORE_X86_TLS = lief._lief.ELF.TYPE.CORE_X86_TLS
CORE_X86_XSTATE = lief._lief.ELF.TYPE.CORE_X86_XSTATE
CRASHPAD = lief._lief.ELF.TYPE.CRASHPAD
GNU_ABI_TAG = lief._lief.ELF.TYPE.GNU_ABI_TAG
GNU_BUILD_ATTRIBUTE_FUNC = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_FUNC
GNU_BUILD_ATTRIBUTE_OPEN = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_OPEN
GNU_BUILD_ID = lief._lief.ELF.TYPE.GNU_BUILD_ID
GNU_GOLD_VERSION = lief._lief.ELF.TYPE.GNU_GOLD_VERSION
GNU_HWCAP = lief._lief.ELF.TYPE.GNU_HWCAP
GNU_PROPERTY_TYPE_0 = lief._lief.ELF.TYPE.GNU_PROPERTY_TYPE_0
GO_BUILDID = lief._lief.ELF.TYPE.GO_BUILDID
STAPSDT = lief._lief.ELF.TYPE.STAPSDT
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
from_value(arg: int) lief.ELF.Note.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

copy(self) lief.ELF.Note | None

Duplicate the current instance of this object

create(*args) lief.ELF.Note | None = <nanobind.nb_func object>
property description memoryview

Return the description associated with the note

property name str

Return the name of the note also known as the owner.

property ndk_build_number str

Android NDK build number

property ndk_version str

Android NDK version used to build the current binary

property original_type int

Return the original NT_ value of the note.

This value should be interpreted according the the name of the note.

property sdk_version int

Target SDK platform

property size int

Size of the raw note

property type lief.ELF.Note.TYPE

Return the LIEF type representation of the note.


Note ABI

class lief.ELF.NoteAbi

Class that wraps the NT_GNU_ABI_TAG note

class ABI
FREEBSD = lief._lief.ELF.ABI.FREEBSD
GNU = lief._lief.ELF.ABI.GNU
LINUX = lief._lief.ELF.ABI.LINUX
NACL = lief._lief.ELF.ABI.NACL
NETBSD = lief._lief.ELF.ABI.NETBSD
SOLARIS2 = lief._lief.ELF.ABI.SOLARIS2
SYLLABLE = lief._lief.ELF.ABI.SYLLABLE
from_value(arg: int) lief.ELF.NoteAbi.ABI = <nanobind.nb_func object>
property value int

The underlying integer value

class TYPE
ANDROID_IDENT = lief._lief.ELF.TYPE.ANDROID_IDENT
ANDROID_KUSER = lief._lief.ELF.TYPE.ANDROID_KUSER
ANDROID_MEMTAG = lief._lief.ELF.TYPE.ANDROID_MEMTAG
CORE_ARM_HW_BREAK = lief._lief.ELF.TYPE.CORE_ARM_HW_BREAK
CORE_ARM_HW_WATCH = lief._lief.ELF.TYPE.CORE_ARM_HW_WATCH
CORE_ARM_PACA_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACA_KEYS
CORE_ARM_PACG_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACG_KEYS
CORE_ARM_PAC_MASK = lief._lief.ELF.TYPE.CORE_ARM_PAC_MASK
CORE_ARM_SVE = lief._lief.ELF.TYPE.CORE_ARM_SVE
CORE_ARM_SYSTEM_CALL = lief._lief.ELF.TYPE.CORE_ARM_SYSTEM_CALL
CORE_ARM_TLS = lief._lief.ELF.TYPE.CORE_ARM_TLS
CORE_ARM_VFP = lief._lief.ELF.TYPE.CORE_ARM_VFP
CORE_AUXV = lief._lief.ELF.TYPE.CORE_AUXV
CORE_FILE = lief._lief.ELF.TYPE.CORE_FILE
CORE_FPREGS = lief._lief.ELF.TYPE.CORE_FPREGS
CORE_FPREGSET = lief._lief.ELF.TYPE.CORE_FPREGSET
CORE_LWPSINFO = lief._lief.ELF.TYPE.CORE_LWPSINFO
CORE_LWPSTATUS = lief._lief.ELF.TYPE.CORE_LWPSTATUS
CORE_PAC_ENABLED_KEYS = lief._lief.ELF.TYPE.CORE_PAC_ENABLED_KEYS
CORE_PRPSINFO = lief._lief.ELF.TYPE.CORE_PRPSINFO
CORE_PRSTATUS = lief._lief.ELF.TYPE.CORE_PRSTATUS
CORE_PRXFPREG = lief._lief.ELF.TYPE.CORE_PRXFPREG
CORE_PSINFO = lief._lief.ELF.TYPE.CORE_PSINFO
CORE_PSTATUS = lief._lief.ELF.TYPE.CORE_PSTATUS
CORE_SIGINFO = lief._lief.ELF.TYPE.CORE_SIGINFO
CORE_TAGGED_ADDR_CTRL = lief._lief.ELF.TYPE.CORE_TAGGED_ADDR_CTRL
CORE_TASKSTRUCT = lief._lief.ELF.TYPE.CORE_TASKSTRUCT
CORE_WIN32PSTATUS = lief._lief.ELF.TYPE.CORE_WIN32PSTATUS
CORE_X86_CET = lief._lief.ELF.TYPE.CORE_X86_CET
CORE_X86_IOPERM = lief._lief.ELF.TYPE.CORE_X86_IOPERM
CORE_X86_TLS = lief._lief.ELF.TYPE.CORE_X86_TLS
CORE_X86_XSTATE = lief._lief.ELF.TYPE.CORE_X86_XSTATE
CRASHPAD = lief._lief.ELF.TYPE.CRASHPAD
GNU_ABI_TAG = lief._lief.ELF.TYPE.GNU_ABI_TAG
GNU_BUILD_ATTRIBUTE_FUNC = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_FUNC
GNU_BUILD_ATTRIBUTE_OPEN = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_OPEN
GNU_BUILD_ID = lief._lief.ELF.TYPE.GNU_BUILD_ID
GNU_GOLD_VERSION = lief._lief.ELF.TYPE.GNU_GOLD_VERSION
GNU_HWCAP = lief._lief.ELF.TYPE.GNU_HWCAP
GNU_PROPERTY_TYPE_0 = lief._lief.ELF.TYPE.GNU_PROPERTY_TYPE_0
GO_BUILDID = lief._lief.ELF.TYPE.GO_BUILDID
STAPSDT = lief._lief.ELF.TYPE.STAPSDT
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
from_value(arg: int) lief.ELF.Note.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

property abi lief.ELF.NoteAbi.ABI | None

Return the target ABI

copy(self) lief.ELF.Note | None

Duplicate the current instance of this object

create(*args) lief.ELF.Note | None = <nanobind.nb_func object>
property description memoryview

Return the description associated with the note

property name str

Return the name of the note also known as the owner.

property original_type int

Return the original NT_ value of the note.

This value should be interpreted according the the name of the note.

property size int

Size of the raw note

property type lief.ELF.Note.TYPE

Return the LIEF type representation of the note.

property version list[int] | None

Return the target version as (Major, Minor, Patch)


Note Gnu Property

class lief.ELF.NoteGnuProperty

This object represents the NT_GNU_PROPERTY_TYPE_0 note.

class Property

This class wraps the different properties that can be used in a NT_GNU_PROPERTY_TYPE_0 note

class TYPE
AARCH64_FEATURES = lief._lief.ELF.TYPE.AARCH64_FEATURES
GENERIC = lief._lief.ELF.TYPE.GENERIC
NEEDED = lief._lief.ELF.TYPE.NEEDED
NO_COPY_ON_PROTECTED = lief._lief.ELF.TYPE.NO_COPY_ON_PROTECTED
STACK_SIZE = lief._lief.ELF.TYPE.STACK_SIZE
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
X86_FEATURE = lief._lief.ELF.TYPE.X86_FEATURE
X86_ISA = lief._lief.ELF.TYPE.X86_ISA
from_value(arg: int) lief.ELF.NoteGnuProperty.Property.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

property type lief.ELF.NoteGnuProperty.Property.TYPE
class TYPE
ANDROID_IDENT = lief._lief.ELF.TYPE.ANDROID_IDENT
ANDROID_KUSER = lief._lief.ELF.TYPE.ANDROID_KUSER
ANDROID_MEMTAG = lief._lief.ELF.TYPE.ANDROID_MEMTAG
CORE_ARM_HW_BREAK = lief._lief.ELF.TYPE.CORE_ARM_HW_BREAK
CORE_ARM_HW_WATCH = lief._lief.ELF.TYPE.CORE_ARM_HW_WATCH
CORE_ARM_PACA_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACA_KEYS
CORE_ARM_PACG_KEYS = lief._lief.ELF.TYPE.CORE_ARM_PACG_KEYS
CORE_ARM_PAC_MASK = lief._lief.ELF.TYPE.CORE_ARM_PAC_MASK
CORE_ARM_SVE = lief._lief.ELF.TYPE.CORE_ARM_SVE
CORE_ARM_SYSTEM_CALL = lief._lief.ELF.TYPE.CORE_ARM_SYSTEM_CALL
CORE_ARM_TLS = lief._lief.ELF.TYPE.CORE_ARM_TLS
CORE_ARM_VFP = lief._lief.ELF.TYPE.CORE_ARM_VFP
CORE_AUXV = lief._lief.ELF.TYPE.CORE_AUXV
CORE_FILE = lief._lief.ELF.TYPE.CORE_FILE
CORE_FPREGS = lief._lief.ELF.TYPE.CORE_FPREGS
CORE_FPREGSET = lief._lief.ELF.TYPE.CORE_FPREGSET
CORE_LWPSINFO = lief._lief.ELF.TYPE.CORE_LWPSINFO
CORE_LWPSTATUS = lief._lief.ELF.TYPE.CORE_LWPSTATUS
CORE_PAC_ENABLED_KEYS = lief._lief.ELF.TYPE.CORE_PAC_ENABLED_KEYS
CORE_PRPSINFO = lief._lief.ELF.TYPE.CORE_PRPSINFO
CORE_PRSTATUS = lief._lief.ELF.TYPE.CORE_PRSTATUS
CORE_PRXFPREG = lief._lief.ELF.TYPE.CORE_PRXFPREG
CORE_PSINFO = lief._lief.ELF.TYPE.CORE_PSINFO
CORE_PSTATUS = lief._lief.ELF.TYPE.CORE_PSTATUS
CORE_SIGINFO = lief._lief.ELF.TYPE.CORE_SIGINFO
CORE_TAGGED_ADDR_CTRL = lief._lief.ELF.TYPE.CORE_TAGGED_ADDR_CTRL
CORE_TASKSTRUCT = lief._lief.ELF.TYPE.CORE_TASKSTRUCT
CORE_WIN32PSTATUS = lief._lief.ELF.TYPE.CORE_WIN32PSTATUS
CORE_X86_CET = lief._lief.ELF.TYPE.CORE_X86_CET
CORE_X86_IOPERM = lief._lief.ELF.TYPE.CORE_X86_IOPERM
CORE_X86_TLS = lief._lief.ELF.TYPE.CORE_X86_TLS
CORE_X86_XSTATE = lief._lief.ELF.TYPE.CORE_X86_XSTATE
CRASHPAD = lief._lief.ELF.TYPE.CRASHPAD
GNU_ABI_TAG = lief._lief.ELF.TYPE.GNU_ABI_TAG
GNU_BUILD_ATTRIBUTE_FUNC = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_FUNC
GNU_BUILD_ATTRIBUTE_OPEN = lief._lief.ELF.TYPE.GNU_BUILD_ATTRIBUTE_OPEN
GNU_BUILD_ID = lief._lief.ELF.TYPE.GNU_BUILD_ID
GNU_GOLD_VERSION = lief._lief.ELF.TYPE.GNU_GOLD_VERSION
GNU_HWCAP = lief._lief.ELF.TYPE.GNU_HWCAP
GNU_PROPERTY_TYPE_0 = lief._lief.ELF.TYPE.GNU_PROPERTY_TYPE_0
GO_BUILDID = lief._lief.ELF.TYPE.GO_BUILDID
STAPSDT = lief._lief.ELF.TYPE.STAPSDT
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
from_value(arg: int) lief.ELF.Note.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

copy(self) lief.ELF.Note | None

Duplicate the current instance of this object

create(*args) lief.ELF.Note | None = <nanobind.nb_func object>
property description memoryview

Return the description associated with the note

find(self, arg: lief.ELF.NoteGnuProperty.Property.TYPE) lief.ELF.NoteGnuProperty.Property | None

Find the property with the given type or return None

property name str

Return the name of the note also known as the owner.

property original_type int

Return the original NT_ value of the note.

This value should be interpreted according the the name of the note.

property properties list[lief.ELF.NoteGnuProperty.Property | None]

Return the properties as a list of Property

property size int

Size of the raw note

property type lief.ELF.Note.TYPE

Return the LIEF type representation of the note.


Generic

class lief.ELF.Generic

This class represents a property which doesn’t have a concrete LIEF implementation.

class TYPE
AARCH64_FEATURES = lief._lief.ELF.TYPE.AARCH64_FEATURES
GENERIC = lief._lief.ELF.TYPE.GENERIC
NEEDED = lief._lief.ELF.TYPE.NEEDED
NO_COPY_ON_PROTECTED = lief._lief.ELF.TYPE.NO_COPY_ON_PROTECTED
STACK_SIZE = lief._lief.ELF.TYPE.STACK_SIZE
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
X86_FEATURE = lief._lief.ELF.TYPE.X86_FEATURE
X86_ISA = lief._lief.ELF.TYPE.X86_ISA
from_value(arg: int) lief.ELF.NoteGnuProperty.Property.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

property raw_type int

The original raw type as an integer. This value might depends on the architecture and/or the file type.

property type lief.ELF.NoteGnuProperty.Property.TYPE

AArch64 Feature

class lief.ELF.AArch64Feature

This class represents the GNU_PROPERTY_AARCH64_FEATURE_1_AND note.

class FEATURE
BTI = lief._lief.ELF.FEATURE.BTI
PAC = lief._lief.ELF.FEATURE.PAC
UNKNOWN = lief._lief.ELF.FEATURE.UNKNOWN
from_value(arg: int) lief.ELF.AArch64Feature.FEATURE = <nanobind.nb_func object>
property value int

The underlying integer value

class TYPE
AARCH64_FEATURES = lief._lief.ELF.TYPE.AARCH64_FEATURES
GENERIC = lief._lief.ELF.TYPE.GENERIC
NEEDED = lief._lief.ELF.TYPE.NEEDED
NO_COPY_ON_PROTECTED = lief._lief.ELF.TYPE.NO_COPY_ON_PROTECTED
STACK_SIZE = lief._lief.ELF.TYPE.STACK_SIZE
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
X86_FEATURE = lief._lief.ELF.TYPE.X86_FEATURE
X86_ISA = lief._lief.ELF.TYPE.X86_ISA
from_value(arg: int) lief.ELF.NoteGnuProperty.Property.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

property features list[lief.ELF.AArch64Feature.FEATURE]

Return the list of the supported features.

property type lief.ELF.NoteGnuProperty.Property.TYPE

No Copy on Protected

class lief.ELF.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.

class TYPE
AARCH64_FEATURES = lief._lief.ELF.TYPE.AARCH64_FEATURES
GENERIC = lief._lief.ELF.TYPE.GENERIC
NEEDED = lief._lief.ELF.TYPE.NEEDED
NO_COPY_ON_PROTECTED = lief._lief.ELF.TYPE.NO_COPY_ON_PROTECTED
STACK_SIZE = lief._lief.ELF.TYPE.STACK_SIZE
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
X86_FEATURE = lief._lief.ELF.TYPE.X86_FEATURE
X86_ISA = lief._lief.ELF.TYPE.X86_ISA
from_value(arg: int) lief.ELF.NoteGnuProperty.Property.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

property type lief.ELF.NoteGnuProperty.Property.TYPE

Stack Size

class lief.ELF.StackSize

This class provides an interface over the GNU_PROPERTY_STACK_SIZE property This property can be used by the loader to raise the stack limit.

class TYPE
AARCH64_FEATURES = lief._lief.ELF.TYPE.AARCH64_FEATURES
GENERIC = lief._lief.ELF.TYPE.GENERIC
NEEDED = lief._lief.ELF.TYPE.NEEDED
NO_COPY_ON_PROTECTED = lief._lief.ELF.TYPE.NO_COPY_ON_PROTECTED
STACK_SIZE = lief._lief.ELF.TYPE.STACK_SIZE
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
X86_FEATURE = lief._lief.ELF.TYPE.X86_FEATURE
X86_ISA = lief._lief.ELF.TYPE.X86_ISA
from_value(arg: int) lief.ELF.NoteGnuProperty.Property.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

property stack_size int
property type lief.ELF.NoteGnuProperty.Property.TYPE

X86 Feature

class lief.ELF.X86Features

This class interfaces the different GNU_PROPERTY_X86_FEATURE_* properties which includes:

  • GNU_PROPERTY_X86_FEATURE_1_AND

  • GNU_PROPERTY_X86_FEATURE_2_USED

  • GNU_PROPERTY_X86_FEATURE_2_NEEDED

class FEATURE
FXSR = lief._lief.ELF.FEATURE.FXSR
IBT = lief._lief.ELF.FEATURE.IBT
LAM_U48 = lief._lief.ELF.FEATURE.LAM_U48
LAM_U57 = lief._lief.ELF.FEATURE.LAM_U57
MASK = lief._lief.ELF.FEATURE.MASK
MMX = lief._lief.ELF.FEATURE.MMX
SHSTK = lief._lief.ELF.FEATURE.SHSTK
TMM = lief._lief.ELF.FEATURE.TMM
UNKNOWN = lief._lief.ELF.FEATURE.UNKNOWN
X86 = lief._lief.ELF.FEATURE.X86
X87 = lief._lief.ELF.FEATURE.X87
XMM = lief._lief.ELF.FEATURE.XMM
XSAVE = lief._lief.ELF.FEATURE.XSAVE
XSAVEC = lief._lief.ELF.FEATURE.XSAVEC
XSAVEOPT = lief._lief.ELF.FEATURE.XSAVEOPT
YMM = lief._lief.ELF.FEATURE.YMM
ZMM = lief._lief.ELF.FEATURE.ZMM
from_value(arg: int) lief.ELF.X86Features.FEATURE = <nanobind.nb_func object>
property value int

The underlying integer value

class FLAG
NEEDED = lief._lief.ELF.FLAG.NEEDED
NONE = lief._lief.ELF.FLAG.NONE
USED = lief._lief.ELF.FLAG.USED
from_value(arg: int) lief.ELF.X86Features.FLAG = <nanobind.nb_func object>
property value int

The underlying integer value

class TYPE
AARCH64_FEATURES = lief._lief.ELF.TYPE.AARCH64_FEATURES
GENERIC = lief._lief.ELF.TYPE.GENERIC
NEEDED = lief._lief.ELF.TYPE.NEEDED
NO_COPY_ON_PROTECTED = lief._lief.ELF.TYPE.NO_COPY_ON_PROTECTED
STACK_SIZE = lief._lief.ELF.TYPE.STACK_SIZE
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
X86_FEATURE = lief._lief.ELF.TYPE.X86_FEATURE
X86_ISA = lief._lief.ELF.TYPE.X86_ISA
from_value(arg: int) lief.ELF.NoteGnuProperty.Property.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

property features list[tuple[lief.ELF.X86Features.FLAG, lief.ELF.X86Features.FEATURE]]

List of the features as a pair of (FLAG, FEATURE).

property type lief.ELF.NoteGnuProperty.Property.TYPE

X86 ISA

class lief.ELF.X86ISA

This class interfaces the different GNU_PROPERTY_X86_ISA_* properties which includes:

  • GNU_PROPERTY_X86_ISA_1_USED

  • GNU_PROPERTY_X86_ISA_1_NEEDED

  • GNU_PROPERTY_X86_COMPAT_ISA_1_USED

  • GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED

  • GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED

  • GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED

class FLAG
NEEDED = lief._lief.ELF.FLAG.NEEDED
NONE = lief._lief.ELF.FLAG.NONE
USED = lief._lief.ELF.FLAG.USED
from_value(arg: int) lief.ELF.X86ISA.FLAG = <nanobind.nb_func object>
property value int

The underlying integer value

class ISA
AVX = lief._lief.ELF.ISA.AVX
AVX2 = lief._lief.ELF.ISA.AVX2
AVX512BW = lief._lief.ELF.ISA.AVX512BW
AVX512CD = lief._lief.ELF.ISA.AVX512CD
AVX512DQ = lief._lief.ELF.ISA.AVX512DQ
AVX512ER = lief._lief.ELF.ISA.AVX512ER
AVX512F = lief._lief.ELF.ISA.AVX512F
AVX512PF = lief._lief.ELF.ISA.AVX512PF
AVX512VL = lief._lief.ELF.ISA.AVX512VL
AVX512_4FMAPS = lief._lief.ELF.ISA.AVX512_4FMAPS
AVX512_4VNNIW = lief._lief.ELF.ISA.AVX512_4VNNIW
AVX512_BF16 = lief._lief.ELF.ISA.AVX512_BF16
AVX512_BITALG = lief._lief.ELF.ISA.AVX512_BITALG
AVX512_IFMA = lief._lief.ELF.ISA.AVX512_IFMA
AVX512_VBMI = lief._lief.ELF.ISA.AVX512_VBMI
AVX512_VBMI2 = lief._lief.ELF.ISA.AVX512_VBMI2
AVX512_VNNI = lief._lief.ELF.ISA.AVX512_VNNI
BASELINE = lief._lief.ELF.ISA.BASELINE
CMOV = lief._lief.ELF.ISA.CMOV
FMA = lief._lief.ELF.ISA.FMA
I486 = lief._lief.ELF.ISA.I486
I586 = lief._lief.ELF.ISA.I586
I686 = lief._lief.ELF.ISA.I686
SSE = lief._lief.ELF.ISA.SSE
SSE2 = lief._lief.ELF.ISA.SSE2
SSE3 = lief._lief.ELF.ISA.SSE3
SSE4_1 = lief._lief.ELF.ISA.SSE4_1
SSE4_2 = lief._lief.ELF.ISA.SSE4_2
SSSE3 = lief._lief.ELF.ISA.SSSE3
UNKNOWN = lief._lief.ELF.ISA.UNKNOWN
V2 = lief._lief.ELF.ISA.V2
V3 = lief._lief.ELF.ISA.V3
V4 = lief._lief.ELF.ISA.V4
from_value(arg: int) lief.ELF.X86ISA.ISA = <nanobind.nb_func object>
property value int

The underlying integer value

class TYPE
AARCH64_FEATURES = lief._lief.ELF.TYPE.AARCH64_FEATURES
GENERIC = lief._lief.ELF.TYPE.GENERIC
NEEDED = lief._lief.ELF.TYPE.NEEDED
NO_COPY_ON_PROTECTED = lief._lief.ELF.TYPE.NO_COPY_ON_PROTECTED
STACK_SIZE = lief._lief.ELF.TYPE.STACK_SIZE
UNKNOWN = lief._lief.ELF.TYPE.UNKNOWN
X86_FEATURE = lief._lief.ELF.TYPE.X86_FEATURE
X86_ISA = lief._lief.ELF.TYPE.X86_ISA
from_value(arg: int) lief.ELF.NoteGnuProperty.Property.TYPE = <nanobind.nb_func object>
property value int

The underlying integer value

property type lief.ELF.NoteGnuProperty.Property.TYPE
property values list[tuple[lief.ELF.X86ISA.FLAG, lief.ELF.X86ISA.ISA]]

List of the ISA values in this property


Builder

class lief.ELF.Builder(self, elf_binary: lief._lief.ELF.Binary)

Class which takes an lief.ELF.Binary object and reconstructs a valid binary

Constructor that takes a Binary

build(self) None

Perform the build of the provided ELF binary

property config lief.ELF.Builder.config_t

Tweak the ELF builder with the provided config parameter

class config_t(self)

Interface to tweak the Builder

property dt_hash bool

Rebuild HASH

property dyn_str bool

Rebuild STRTAB

property dynamic_section bool

Rebuild the PT_DYNAMIC segment

property fini_array bool

Rebuild FINI_ARRAY

property force_relocate bool

Force to relocate all the ELF structures that can be relocated (mostly for testing)

property init_array bool

Rebuild INIT_ARRAY

property interpreter bool

Rebuild the PT_INTERP segment

property jmprel bool

Rebuild JMPREL

property notes bool

Rebuild PT_NOTES segment(s)

property preinit_array bool

Rebuild PREINIT_ARRAY

property rela bool

Rebuild RELA

property static_symtab bool

Rebuild .symtab section

property sym_verdef bool

Rebuild VERDEF

property sym_verneed bool

Rebuild VERNEED

property sym_versym bool

Rebuild VERSYM

property symtab bool

Rebuild SYMTAB

get_build(self) list[int]

Return the build result as a list of bytes

write(self, output: str) None

Write the build result into the output file

Enums

Identity

class lief.ELF.IDENTITY
ABIVERSION = lief._lief.ELF.IDENTITY.ABIVERSION
CLASS = lief._lief.ELF.IDENTITY.CLASS
DATA = lief._lief.ELF.IDENTITY.DATA
MAG0 = lief._lief.ELF.IDENTITY.MAG0
MAG1 = lief._lief.ELF.IDENTITY.MAG1
MAG2 = lief._lief.ELF.IDENTITY.MAG2
MAG3 = lief._lief.ELF.IDENTITY.MAG3
NIDENT = lief._lief.ELF.IDENTITY.NIDENT
OSABI = lief._lief.ELF.IDENTITY.OSABI
PAD = lief._lief.ELF.IDENTITY.PAD
VERSION = lief._lief.ELF.IDENTITY.VERSION
from_value(arg: int) lief.ELF.IDENTITY = <nanobind.nb_func object>
property value int

The underlying integer value


ELF Class

class lief.ELF.ELF_CLASS
CLASS32 = lief._lief.ELF.ELF_CLASS.CLASS32
CLASS64 = lief._lief.ELF.ELF_CLASS.CLASS64
NONE = lief._lief.ELF.ELF_CLASS.NONE
from_value(arg: int) lief.ELF.ELF_CLASS = <nanobind.nb_func object>
property value int

The underlying integer value


ELF Data

class lief.ELF.ELF_DATA
LSB = lief._lief.ELF.ELF_DATA.LSB
MSB = lief._lief.ELF.ELF_DATA.MSB
NONE = lief._lief.ELF.ELF_DATA.NONE
from_value(arg: int) lief.ELF.ELF_DATA = <nanobind.nb_func object>
property value int

The underlying integer value


ELF OS/ABI

class lief.ELF.OS_ABI
AIX = lief._lief.ELF.OS_ABI.AIX
AMDGPU_HSA = lief._lief.ELF.OS_ABI.C6000_ELFABI
ARM = lief._lief.ELF.OS_ABI.ARM
AROS = lief._lief.ELF.OS_ABI.AROS
C6000_ELFABI = lief._lief.ELF.OS_ABI.C6000_ELFABI
C6000_LINUX = lief._lief.ELF.OS_ABI.C6000_LINUX
CLOUDABI = lief._lief.ELF.OS_ABI.CLOUDABI
FENIXOS = lief._lief.ELF.OS_ABI.FENIXOS
FREEBSD = lief._lief.ELF.OS_ABI.FREEBSD
GNU = lief._lief.ELF.OS_ABI.GNU
HPUX = lief._lief.ELF.OS_ABI.HPUX
HURD = lief._lief.ELF.OS_ABI.HURD
IRIX = lief._lief.ELF.OS_ABI.IRIX
LINUX = lief._lief.ELF.OS_ABI.GNU
MODESTO = lief._lief.ELF.OS_ABI.MODESTO
NETBSD = lief._lief.ELF.OS_ABI.NETBSD
NSK = lief._lief.ELF.OS_ABI.NSK
OPENBSD = lief._lief.ELF.OS_ABI.OPENBSD
OPENVMS = lief._lief.ELF.OS_ABI.OPENVMS
SOLARIS = lief._lief.ELF.OS_ABI.SOLARIS
STANDALONE = lief._lief.ELF.OS_ABI.STANDALONE
SYSTEMV = lief._lief.ELF.OS_ABI.SYSTEMV
TRU64 = lief._lief.ELF.OS_ABI.TRU64
from_value(arg: int) lief.ELF.OS_ABI = <nanobind.nb_func object>
property value int

The underlying integer value


Symbol section index

class lief.ELF.SYMBOL_SECTION_INDEX
ABS = lief._lief.ELF.SYMBOL_SECTION_INDEX.ABS
COMMON = lief._lief.ELF.SYMBOL_SECTION_INDEX.COMMON
UNDEF = lief._lief.ELF.SYMBOL_SECTION_INDEX.UNDEF
XINDEX = lief._lief.ELF.SYMBOL_SECTION_INDEX.XINDEX
from_value(arg: int) lief.ELF.SYMBOL_SECTION_INDEX = <nanobind.nb_func object>
property value int

The underlying integer value


Binary types

class lief.ELF.E_TYPE
CORE = lief._lief.ELF.E_TYPE.CORE
DYNAMIC = lief._lief.ELF.E_TYPE.DYNAMIC
EXECUTABLE = lief._lief.ELF.E_TYPE.EXECUTABLE
HIPROC = lief._lief.ELF.E_TYPE.HIPROC
LOPROC = lief._lief.ELF.E_TYPE.LOPROC
NONE = lief._lief.ELF.E_TYPE.NONE
RELOCATABLE = lief._lief.ELF.E_TYPE.RELOCATABLE
from_value(arg: int) lief.ELF.E_TYPE = <nanobind.nb_func object>
property value int

The underlying integer value


Section types

class lief.ELF.SECTION_TYPES
ANDROID_REL = lief._lief.ELF.SECTION_TYPES.ANDROID_REL
ANDROID_RELA = lief._lief.ELF.SECTION_TYPES.ANDROID_RELA
ARM_ATTRIBUTES = lief._lief.ELF.SECTION_TYPES.ARM_ATTRIBUTES
ARM_DEBUGOVERLAY = lief._lief.ELF.SECTION_TYPES.ARM_DEBUGOVERLAY
ARM_EXIDX = lief._lief.ELF.SECTION_TYPES.X86_64_UNWIND
ARM_OVERLAYSECTION = lief._lief.ELF.SECTION_TYPES.ARM_OVERLAYSECTION
ARM_PREEMPTMAP = lief._lief.ELF.SECTION_TYPES.ARM_PREEMPTMAP
DYNAMIC = lief._lief.ELF.SECTION_TYPES.DYNAMIC
DYNSYM = lief._lief.ELF.SECTION_TYPES.DYNSYM
FINI_ARRAY = lief._lief.ELF.SECTION_TYPES.FINI_ARRAY
GNU_ATTRIBUTES = lief._lief.ELF.SECTION_TYPES.GNU_ATTRIBUTES
GNU_HASH = lief._lief.ELF.SECTION_TYPES.GNU_HASH
GNU_VERDEF = lief._lief.ELF.SECTION_TYPES.GNU_VERDEF
GNU_VERNEED = lief._lief.ELF.SECTION_TYPES.GNU_VERNEED
GROUP = lief._lief.ELF.SECTION_TYPES.GROUP
HASH = lief._lief.ELF.SECTION_TYPES.HASH
HIOS = lief._lief.ELF.SECTION_TYPES.HIOS
HIPROC = lief._lief.ELF.SECTION_TYPES.HIPROC
HIUSER = lief._lief.ELF.SECTION_TYPES.HIUSER
INIT_ARRAY = lief._lief.ELF.SECTION_TYPES.INIT_ARRAY
LLVM_ADDRSIG = lief._lief.ELF.SECTION_TYPES.LLVM_ADDRSIG
LOOS = lief._lief.ELF.SECTION_TYPES.LOOS
LOPROC = lief._lief.ELF.SECTION_TYPES.LOPROC
LOUSER = lief._lief.ELF.SECTION_TYPES.LOUSER
NOBITS = lief._lief.ELF.SECTION_TYPES.NOBITS
NOTE = lief._lief.ELF.SECTION_TYPES.NOTE
NULL = lief._lief.ELF.SECTION_TYPES.NULL
PREINIT_ARRAY = lief._lief.ELF.SECTION_TYPES.PREINIT_ARRAY
PROGBITS = lief._lief.ELF.SECTION_TYPES.PROGBITS
REL = lief._lief.ELF.SECTION_TYPES.REL
RELA = lief._lief.ELF.SECTION_TYPES.RELA
RELR = lief._lief.ELF.SECTION_TYPES.RELR
SHLIB = lief._lief.ELF.SECTION_TYPES.SHLIB
STRTAB = lief._lief.ELF.SECTION_TYPES.STRTAB
SYMTAB = lief._lief.ELF.SECTION_TYPES.SYMTAB
SYMTAB_SHNDX = lief._lief.ELF.SECTION_TYPES.SYMTAB_SHNDX
X86_64_UNWIND = lief._lief.ELF.SECTION_TYPES.X86_64_UNWIND
from_value(arg: int) lief.ELF.SECTION_TYPES = <nanobind.nb_func object>
property value int

The underlying integer value


Section flags

class lief.ELF.SECTION_FLAGS
ALLOC = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.ALLOC: 2>
EXECINSTR = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.EXECINSTR: 4>
GROUP = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.GROUP: 512>
HEX_GPREL = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.HEX_GPREL: 268435456>
MASKOS = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.MASKOS: 267386880>
MASKPROC = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.MASKPROC: 4026531840>
MERGE = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.MERGE: 16>
MIPS_STRING = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.MIPS_STRING: 2147483648>
NONE = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.NONE: 0>
OS_NONCONFORMING = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.OS_NONCONFORMING: 256>
SHF_CP_SECTION = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.SHF_CP_SECTION: 2048>
STRINGS = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.STRINGS: 32>
TLS = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.TLS: 1024>
WRITE = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.WRITE: 1>
XCORE_SHF_CP_SECTION = <lief._lief.ELF.SECTION_FLAGS.lief._lief.ELF.SECTION_FLAGS.XCORE_SHF_CP_SECTION: 4096>
from_value(arg: int) lief.ELF.SECTION_FLAGS = <nanobind.nb_func object>
property value int

The underlying integer value


Segment types

class lief.ELF.SEGMENT_TYPES
ARM_ARCHEXT = lief._lief.ELF.SEGMENT_TYPES.ARM_ARCHEXT
ARM_UNWIND = lief._lief.ELF.SEGMENT_TYPES.UNWIND
DYNAMIC = lief._lief.ELF.SEGMENT_TYPES.DYNAMIC
GNU_EH_FRAME = lief._lief.ELF.SEGMENT_TYPES.GNU_EH_FRAME
GNU_PROPERTY = lief._lief.ELF.SEGMENT_TYPES.GNU_PROPERTY
GNU_RELRO = lief._lief.ELF.SEGMENT_TYPES.GNU_RELRO
GNU_STACK = lief._lief.ELF.SEGMENT_TYPES.GNU_STACK
INTERP = lief._lief.ELF.SEGMENT_TYPES.INTERP
LOAD = lief._lief.ELF.SEGMENT_TYPES.LOAD
NOTE = lief._lief.ELF.SEGMENT_TYPES.NOTE
NULL = lief._lief.ELF.SEGMENT_TYPES.NULL
PHDR = lief._lief.ELF.SEGMENT_TYPES.PHDR
SHLIB = lief._lief.ELF.SEGMENT_TYPES.SHLIB
TLS = lief._lief.ELF.SEGMENT_TYPES.TLS
UNWIND = lief._lief.ELF.SEGMENT_TYPES.UNWIND
from_value(arg: int) lief.ELF.SEGMENT_TYPES = <nanobind.nb_func object>
property value int

The underlying integer value


Segment flags

class lief.ELF.SEGMENT_FLAGS
NONE = <lief._lief.ELF.SEGMENT_FLAGS.lief._lief.ELF.SEGMENT_FLAGS.NONE: 0>
R = <lief._lief.ELF.SEGMENT_FLAGS.lief._lief.ELF.SEGMENT_FLAGS.R: 4>
W = <lief._lief.ELF.SEGMENT_FLAGS.lief._lief.ELF.SEGMENT_FLAGS.W: 2>
X = <lief._lief.ELF.SEGMENT_FLAGS.lief._lief.ELF.SEGMENT_FLAGS.X: 1>
from_value(arg: int) lief.ELF.SEGMENT_FLAGS = <nanobind.nb_func object>
property value int

The underlying integer value


Architectures

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

The underlying integer value

x86_64 = lief._lief.ELF.ARCH.x86_64

Version

class lief.ELF.VERSION
CURRENT = lief._lief.ELF.VERSION.CURRENT
NONE = lief._lief.ELF.VERSION.NONE
from_value(arg: int) lief.ELF.VERSION = <nanobind.nb_func object>
property value int

The underlying integer value


Dynamic tags

class lief.ELF.DYNAMIC_TAGS
ANDROID_REL = lief._lief.ELF.DYNAMIC_TAGS.ANDROID_REL
ANDROID_RELA = lief._lief.ELF.DYNAMIC_TAGS.ANDROID_RELA
ANDROID_RELASZ = lief._lief.ELF.DYNAMIC_TAGS.ANDROID_RELASZ
ANDROID_RELR = lief._lief.ELF.DYNAMIC_TAGS.ANDROID_RELR
ANDROID_RELRCOUNT = lief._lief.ELF.DYNAMIC_TAGS.ANDROID_RELRCOUNT
ANDROID_RELRENT = lief._lief.ELF.DYNAMIC_TAGS.ANDROID_RELRENT
ANDROID_RELRSZ = lief._lief.ELF.DYNAMIC_TAGS.ANDROID_RELRSZ
ANDROID_RELSZ = lief._lief.ELF.DYNAMIC_TAGS.ANDROID_RELSZ
ANDROID_REL_OFFSET = lief._lief.ELF.DYNAMIC_TAGS.ANDROID_REL_OFFSET
ANDROID_REL_SIZE = lief._lief.ELF.DYNAMIC_TAGS.ANDROID_REL_SIZE
BIND_NOW = lief._lief.ELF.DYNAMIC_TAGS.BIND_NOW
DEBUG = lief._lief.ELF.DYNAMIC_TAGS.DEBUG
FINI = lief._lief.ELF.DYNAMIC_TAGS.FINI
FINI_ARRAY = lief._lief.ELF.DYNAMIC_TAGS.FINI_ARRAY
FINI_ARRAYSZ = lief._lief.ELF.DYNAMIC_TAGS.FINI_ARRAYSZ
FLAGS = lief._lief.ELF.DYNAMIC_TAGS.FLAGS
FLAGS_1 = lief._lief.ELF.DYNAMIC_TAGS.FLAGS_1
GNU_HASH = lief._lief.ELF.DYNAMIC_TAGS.GNU_HASH
HASH = lief._lief.ELF.DYNAMIC_TAGS.HASH
INIT = lief._lief.ELF.DYNAMIC_TAGS.INIT
INIT_ARRAY = lief._lief.ELF.DYNAMIC_TAGS.INIT_ARRAY
INIT_ARRAYSZ = lief._lief.ELF.DYNAMIC_TAGS.INIT_ARRAYSZ
JMPREL = lief._lief.ELF.DYNAMIC_TAGS.JMPREL
MIPS_AUX_DYNAMIC = lief._lief.ELF.DYNAMIC_TAGS.MIPS_AUX_DYNAMIC
MIPS_BASE_ADDRESS = lief._lief.ELF.DYNAMIC_TAGS.MIPS_BASE_ADDRESS
MIPS_COMPACT_SIZE = lief._lief.ELF.DYNAMIC_TAGS.MIPS_COMPACT_SIZE
MIPS_CONFLICT = lief._lief.ELF.DYNAMIC_TAGS.MIPS_CONFLICT
MIPS_CONFLICTNO = lief._lief.ELF.DYNAMIC_TAGS.MIPS_CONFLICTNO
MIPS_CXX_FLAGS = lief._lief.ELF.DYNAMIC_TAGS.MIPS_CXX_FLAGS
MIPS_DELTA_CLASS = lief._lief.ELF.DYNAMIC_TAGS.MIPS_DELTA_CLASS
MIPS_DELTA_CLASSSYM = lief._lief.ELF.DYNAMIC_TAGS.MIPS_DELTA_CLASSSYM
MIPS_DELTA_CLASSSYM_NO = lief._lief.ELF.DYNAMIC_TAGS.MIPS_DELTA_CLASSSYM_NO
MIPS_DELTA_CLASS_NO = lief._lief.ELF.DYNAMIC_TAGS.MIPS_DELTA_CLASS_NO
MIPS_DELTA_INSTANCE = lief._lief.ELF.DYNAMIC_TAGS.MIPS_DELTA_INSTANCE
MIPS_DELTA_INSTANCE_NO = lief._lief.ELF.DYNAMIC_TAGS.MIPS_DELTA_INSTANCE_NO
MIPS_DELTA_RELOC = lief._lief.ELF.DYNAMIC_TAGS.MIPS_DELTA_RELOC
MIPS_DELTA_RELOC_NO = lief._lief.ELF.DYNAMIC_TAGS.MIPS_DELTA_RELOC_NO
MIPS_DELTA_SYM = lief._lief.ELF.DYNAMIC_TAGS.MIPS_DELTA_SYM
MIPS_DELTA_SYM_NO = lief._lief.ELF.DYNAMIC_TAGS.MIPS_DELTA_SYM_NO
MIPS_DYNSTR_ALIGN = lief._lief.ELF.DYNAMIC_TAGS.MIPS_DYNSTR_ALIGN
MIPS_FLAGS = lief._lief.ELF.DYNAMIC_TAGS.MIPS_FLAGS
MIPS_GOTSYM = lief._lief.ELF.DYNAMIC_TAGS.MIPS_GOTSYM
MIPS_GP_VALUE = lief._lief.ELF.DYNAMIC_TAGS.MIPS_GP_VALUE
MIPS_HIDDEN_GOTIDX = lief._lief.ELF.DYNAMIC_TAGS.MIPS_HIDDEN_GOTIDX
MIPS_HIPAGENO = lief._lief.ELF.DYNAMIC_TAGS.MIPS_HIPAGENO
MIPS_ICHECKSUM = lief._lief.ELF.DYNAMIC_TAGS.MIPS_ICHECKSUM
MIPS_INTERFACE = lief._lief.ELF.DYNAMIC_TAGS.MIPS_INTERFACE
MIPS_INTERFACE_SIZE = lief._lief.ELF.DYNAMIC_TAGS.MIPS_INTERFACE_SIZE
MIPS_IVERSION = lief._lief.ELF.DYNAMIC_TAGS.MIPS_IVERSION
MIPS_LIBLIST = lief._lief.ELF.DYNAMIC_TAGS.MIPS_LIBLIST
MIPS_LIBLISTNO = lief._lief.ELF.DYNAMIC_TAGS.MIPS_LIBLISTNO
MIPS_LOCALPAGE_GOTIDX = lief._lief.ELF.DYNAMIC_TAGS.MIPS_LOCALPAGE_GOTIDX
MIPS_LOCAL_GOTIDX = lief._lief.ELF.DYNAMIC_TAGS.MIPS_LOCAL_GOTIDX
MIPS_LOCAL_GOTNO = lief._lief.ELF.DYNAMIC_TAGS.MIPS_LOCAL_GOTNO
MIPS_MSYM = lief._lief.ELF.DYNAMIC_TAGS.MIPS_MSYM
MIPS_OPTIONS = lief._lief.ELF.DYNAMIC_TAGS.MIPS_OPTIONS
MIPS_PERF_SUFFIX = lief._lief.ELF.DYNAMIC_TAGS.MIPS_PERF_SUFFIX
MIPS_PIXIE_INIT = lief._lief.ELF.DYNAMIC_TAGS.MIPS_PIXIE_INIT
MIPS_PLTGOT = lief._lief.ELF.DYNAMIC_TAGS.MIPS_PLTGOT
MIPS_PROTECTED_GOTIDX = lief._lief.ELF.DYNAMIC_TAGS.MIPS_PROTECTED_GOTIDX
MIPS_RLD_MAP = lief._lief.ELF.DYNAMIC_TAGS.MIPS_RLD_MAP
MIPS_RLD_TEXT_RESOLVE_ADDR = lief._lief.ELF.DYNAMIC_TAGS.MIPS_RLD_TEXT_RESOLVE_ADDR
MIPS_RLD_VERSION = lief._lief.ELF.DYNAMIC_TAGS.MIPS_RLD_VERSION
MIPS_RWPLT = lief._lief.ELF.DYNAMIC_TAGS.MIPS_RWPLT
MIPS_SYMBOL_LIB = lief._lief.ELF.DYNAMIC_TAGS.MIPS_SYMBOL_LIB
MIPS_SYMTABNO = lief._lief.ELF.DYNAMIC_TAGS.MIPS_SYMTABNO
MIPS_TIME_STAMP = lief._lief.ELF.DYNAMIC_TAGS.MIPS_TIME_STAMP
MIPS_UNREFEXTNO = lief._lief.ELF.DYNAMIC_TAGS.MIPS_UNREFEXTNO
NEEDED = lief._lief.ELF.DYNAMIC_TAGS.NEEDED
NULL = lief._lief.ELF.DYNAMIC_TAGS.NULL
PLTGOT = lief._lief.ELF.DYNAMIC_TAGS.PLTGOT
PLTREL = lief._lief.ELF.DYNAMIC_TAGS.PLTREL
PLTRELSZ = lief._lief.ELF.DYNAMIC_TAGS.PLTRELSZ
PREINIT_ARRAY = lief._lief.ELF.DYNAMIC_TAGS.PREINIT_ARRAY
PREINIT_ARRAYSZ = lief._lief.ELF.DYNAMIC_TAGS.PREINIT_ARRAYSZ
REL = lief._lief.ELF.DYNAMIC_TAGS.REL
RELA = lief._lief.ELF.DYNAMIC_TAGS.RELA
RELACOUNT = lief._lief.ELF.DYNAMIC_TAGS.RELACOUNT
RELAENT = lief._lief.ELF.DYNAMIC_TAGS.RELAENT
RELASZ = lief._lief.ELF.DYNAMIC_TAGS.RELASZ
RELCOUNT = lief._lief.ELF.DYNAMIC_TAGS.RELCOUNT
RELENT = lief._lief.ELF.DYNAMIC_TAGS.RELENT
RELR = lief._lief.ELF.DYNAMIC_TAGS.RELR
RELRENT = lief._lief.ELF.DYNAMIC_TAGS.RELRENT
RELRSZ = lief._lief.ELF.DYNAMIC_TAGS.RELRSZ
RELSZ = lief._lief.ELF.DYNAMIC_TAGS.RELSZ
RPATH = lief._lief.ELF.DYNAMIC_TAGS.RPATH
RUNPATH = lief._lief.ELF.DYNAMIC_TAGS.RUNPATH
SONAME = lief._lief.ELF.DYNAMIC_TAGS.SONAME
STRSZ = lief._lief.ELF.DYNAMIC_TAGS.STRSZ
STRTAB = lief._lief.ELF.DYNAMIC_TAGS.STRTAB
SYMBOLIC = lief._lief.ELF.DYNAMIC_TAGS.SYMBOLIC
SYMENT = lief._lief.ELF.DYNAMIC_TAGS.SYMENT
SYMTAB = lief._lief.ELF.DYNAMIC_TAGS.SYMTAB
SYMTAB_SHNDX = lief._lief.ELF.DYNAMIC_TAGS.SYMTAB_SHNDX
TEXTREL = lief._lief.ELF.DYNAMIC_TAGS.TEXTREL
VERDEF = lief._lief.ELF.DYNAMIC_TAGS.VERDEF
VERDEFNUM = lief._lief.ELF.DYNAMIC_TAGS.VERDEFNUM
VERNEED = lief._lief.ELF.DYNAMIC_TAGS.VERNEED
VERNEEDNUM = lief._lief.ELF.DYNAMIC_TAGS.VERNEEDNUM
VERSYM = lief._lief.ELF.DYNAMIC_TAGS.VERSYM
from_value(arg: int) lief.ELF.DYNAMIC_TAGS = <nanobind.nb_func object>
property value int

The underlying integer value


Dynamic flags

class lief.ELF.DYNAMIC_FLAGS
BIND_NOW = <lief._lief.ELF.DYNAMIC_FLAGS.lief._lief.ELF.DYNAMIC_FLAGS.BIND_NOW: 8>
ORIGIN = <lief._lief.ELF.DYNAMIC_FLAGS.lief._lief.ELF.DYNAMIC_FLAGS.ORIGIN: 1>
STATIC_TLS = <lief._lief.ELF.DYNAMIC_FLAGS.lief._lief.ELF.DYNAMIC_FLAGS.STATIC_TLS: 16>
SYMBOLIC = <lief._lief.ELF.DYNAMIC_FLAGS.lief._lief.ELF.DYNAMIC_FLAGS.SYMBOLIC: 2>
TEXTREL = <lief._lief.ELF.DYNAMIC_FLAGS.lief._lief.ELF.DYNAMIC_FLAGS.TEXTREL: 4>
from_value(arg: int) lief.ELF.DYNAMIC_FLAGS = <nanobind.nb_func object>
property value int

The underlying integer value


Dynamic flags 1

class lief.ELF.DYNAMIC_FLAGS_1
CONFALT = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.CONFALT: 8192>
DIRECT = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.DIRECT: 256>
DISPRELDNE = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.DISPRELDNE: 32768>
DISPRELPND = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.DISPRELPND: 65536>
EDITED = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.EDITED: 2097152>
ENDFILTEE = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.ENDFILTEE: 16384>
GLOBAL = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.GLOBAL: 2>
GLOBAUDIT = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.GLOBAUDIT: 16777216>
GROUP = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.GROUP: 4>
IGNMULDEF = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.IGNMULDEF: 262144>
INITFIRST = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.INITFIRST: 32>
INTERPOSE = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.INTERPOSE: 1024>
LOADFLTR = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.LOADFLTR: 16>
NODEFLIB = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.NODEFLIB: 2048>
NODELETE = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.NODELETE: 8>
NODIRECT = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.NODIRECT: 131072>
NODUMP = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.NODUMP: 4096>
NOHDR = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.NOHDR: 1048576>
NOKSYMS = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.NOKSYMS: 524288>
NOOPEN = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.NOOPEN: 64>
NORELOC = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.NORELOC: 4194304>
NOW = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.NOW: 1>
ORIGIN = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.ORIGIN: 128>
PIE = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.PIE: 134217728>
SINGLETON = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.SINGLETON: 33554432>
SYMINTPOSE = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.SYMINTPOSE: 8388608>
TRANS = <lief._lief.ELF.DYNAMIC_FLAGS_1.lief._lief.ELF.DYNAMIC_FLAGS_1.TRANS: 512>
from_value(arg: int) lief.ELF.DYNAMIC_FLAGS_1 = <nanobind.nb_func object>
property value int

The underlying integer value


Symbol types

class lief.ELF.SYMBOL_TYPES
COMMON = lief._lief.ELF.SYMBOL_TYPES.COMMON
FILE = lief._lief.ELF.SYMBOL_TYPES.FILE
FUNC = lief._lief.ELF.SYMBOL_TYPES.FUNC
GNU_IFUNC = lief._lief.ELF.SYMBOL_TYPES.GNU_IFUNC
NOTYPE = lief._lief.ELF.SYMBOL_TYPES.NOTYPE
OBJECT = lief._lief.ELF.SYMBOL_TYPES.OBJECT
SECTION = lief._lief.ELF.SYMBOL_TYPES.SECTION
TLS = lief._lief.ELF.SYMBOL_TYPES.TLS
from_value(arg: int) lief.ELF.SYMBOL_TYPES = <nanobind.nb_func object>
property value int

The underlying integer value


Symbol bindings

class lief.ELF.SYMBOL_BINDINGS
GLOBAL = lief._lief.ELF.SYMBOL_BINDINGS.GLOBAL
GNU_UNIQUE = lief._lief.ELF.SYMBOL_BINDINGS.GNU_UNIQUE
LOCAL = lief._lief.ELF.SYMBOL_BINDINGS.LOCAL
WEAK = lief._lief.ELF.SYMBOL_BINDINGS.WEAK
from_value(arg: int) lief.ELF.SYMBOL_BINDINGS = <nanobind.nb_func object>
property value int

The underlying integer value


Symbol Visibility

class lief.ELF.SYMBOL_VISIBILITY
DEFAULT = lief._lief.ELF.SYMBOL_VISIBILITY.DEFAULT
HIDDEN = lief._lief.ELF.SYMBOL_VISIBILITY.HIDDEN
INTERNAL = lief._lief.ELF.SYMBOL_VISIBILITY.INTERNAL
PROTECTED = lief._lief.ELF.SYMBOL_VISIBILITY.PROTECTED
from_value(arg: int) lief.ELF.SYMBOL_VISIBILITY = <nanobind.nb_func object>
property value int

The underlying integer value


Relocations x86-64

class lief.ELF.RELOCATION_X86_64
COPY = lief._lief.ELF.RELOCATION_X86_64.COPY
DTPMOD64 = lief._lief.ELF.RELOCATION_X86_64.DTPMOD64
DTPOFF32 = lief._lief.ELF.RELOCATION_X86_64.DTPOFF32
DTPOFF64 = lief._lief.ELF.RELOCATION_X86_64.DTPOFF64
GLOB_DAT = lief._lief.ELF.RELOCATION_X86_64.GLOB_DAT
GOT32 = lief._lief.ELF.RELOCATION_X86_64.GOT32
GOT64 = lief._lief.ELF.RELOCATION_X86_64.GOT64
GOTOFF64 = lief._lief.ELF.RELOCATION_X86_64.GOTOFF64
GOTPC32 = lief._lief.ELF.RELOCATION_X86_64.GOTPC32
GOTPC32_TLSDESC = lief._lief.ELF.RELOCATION_X86_64.GOTPC32_TLSDESC
GOTPC64 = lief._lief.ELF.RELOCATION_X86_64.GOTPC64
GOTPCREL = lief._lief.ELF.RELOCATION_X86_64.GOTPCREL
GOTPCREL64 = lief._lief.ELF.RELOCATION_X86_64.GOTPCREL64
GOTPCRELX = lief._lief.ELF.RELOCATION_X86_64.GOTPCRELX
GOTPLT64 = lief._lief.ELF.RELOCATION_X86_64.GOTPLT64
GOTTPOFF = lief._lief.ELF.RELOCATION_X86_64.GOTTPOFF
IRELATIVE = lief._lief.ELF.RELOCATION_X86_64.IRELATIVE
JUMP_SLOT = lief._lief.ELF.RELOCATION_X86_64.JUMP_SLOT
NONE = lief._lief.ELF.RELOCATION_X86_64.NONE
PC16 = lief._lief.ELF.RELOCATION_X86_64.PC16
PC32 = lief._lief.ELF.RELOCATION_X86_64.PC32
PC32_BND = lief._lief.ELF.RELOCATION_X86_64.PC32_BND
PC64 = lief._lief.ELF.RELOCATION_X86_64.PC64
PC8 = lief._lief.ELF.RELOCATION_X86_64.PC8
PLT32 = lief._lief.ELF.RELOCATION_X86_64.PLT32
PLT32_BND = lief._lief.ELF.RELOCATION_X86_64.PLT32_BND
PLTOFF64 = lief._lief.ELF.RELOCATION_X86_64.PLTOFF64
R16 = lief._lief.ELF.RELOCATION_X86_64.R16
R32 = lief._lief.ELF.RELOCATION_X86_64.R32
R32S = lief._lief.ELF.RELOCATION_X86_64.R32S
R64 = lief._lief.ELF.RELOCATION_X86_64.R64
R8 = lief._lief.ELF.RELOCATION_X86_64.R8
RELATIVE = lief._lief.ELF.RELOCATION_X86_64.RELATIVE
RELATIVE64 = lief._lief.ELF.RELOCATION_X86_64.RELATIVE64
REX_GOTPCRELX = lief._lief.ELF.RELOCATION_X86_64.REX_GOTPCRELX
SIZE32 = lief._lief.ELF.RELOCATION_X86_64.SIZE32
SIZE64 = lief._lief.ELF.RELOCATION_X86_64.SIZE64
TLSDESC = lief._lief.ELF.RELOCATION_X86_64.TLSDESC
TLSDESC_CALL = lief._lief.ELF.RELOCATION_X86_64.TLSDESC_CALL
TLSGD = lief._lief.ELF.RELOCATION_X86_64.TLSGD
TLSLD = lief._lief.ELF.RELOCATION_X86_64.TLSLD
TPOFF32 = lief._lief.ELF.RELOCATION_X86_64.TPOFF32
TPOFF64 = lief._lief.ELF.RELOCATION_X86_64.TPOFF64
from_value(arg: int) lief.ELF.RELOCATION_X86_64 = <nanobind.nb_func object>
property value int

The underlying integer value


Relocations x86 (i386)

class lief.ELF.RELOCATION_i386
COPY = lief._lief.ELF.RELOCATION_i386.COPY
GLOB_DAT = lief._lief.ELF.RELOCATION_i386.GLOB_DAT
GOT32 = lief._lief.ELF.RELOCATION_i386.GOT32
GOTOFF = lief._lief.ELF.RELOCATION_i386.GOTOFF
GOTPC = lief._lief.ELF.RELOCATION_i386.GOTPC
IRELATIVE = lief._lief.ELF.RELOCATION_i386.IRELATIVE
JUMP_SLOT = lief._lief.ELF.RELOCATION_i386.JUMP_SLOT
NONE = lief._lief.ELF.RELOCATION_i386.NONE
NUM = lief._lief.ELF.RELOCATION_i386.NUM
PC16 = lief._lief.ELF.RELOCATION_i386.PC16
PC32 = lief._lief.ELF.RELOCATION_i386.PC32
PC8 = lief._lief.ELF.RELOCATION_i386.PC8
PLT32 = lief._lief.ELF.RELOCATION_i386.PLT32
R16 = lief._lief.ELF.RELOCATION_i386.R16
R32 = lief._lief.ELF.RELOCATION_i386.R32
R32PLT = lief._lief.ELF.RELOCATION_i386.R32PLT
R8 = lief._lief.ELF.RELOCATION_i386.R8
RELATIVE = lief._lief.ELF.RELOCATION_i386.RELATIVE
TLS_DESC = lief._lief.ELF.RELOCATION_i386.TLS_DESC
TLS_DESC_CALL = lief._lief.ELF.RELOCATION_i386.TLS_DESC_CALL
TLS_DTPMOD32 = lief._lief.ELF.RELOCATION_i386.TLS_DTPMOD32
TLS_DTPOFF32 = lief._lief.ELF.RELOCATION_i386.TLS_DTPOFF32
TLS_GD = lief._lief.ELF.RELOCATION_i386.TLS_GD
TLS_GD_32 = lief._lief.ELF.RELOCATION_i386.TLS_GD_32
TLS_GD_CALL = lief._lief.ELF.RELOCATION_i386.TLS_GD_CALL
TLS_GD_POP = lief._lief.ELF.RELOCATION_i386.TLS_GD_POP
TLS_GD_PUSH = lief._lief.ELF.RELOCATION_i386.TLS_GD_PUSH
TLS_GOTDESC = lief._lief.ELF.RELOCATION_i386.TLS_GOTDESC
TLS_GOTIE = lief._lief.ELF.RELOCATION_i386.TLS_GOTIE
TLS_IE = lief._lief.ELF.RELOCATION_i386.TLS_IE
TLS_IE_32 = lief._lief.ELF.RELOCATION_i386.TLS_IE_32
TLS_LDM = lief._lief.ELF.RELOCATION_i386.TLS_LDM
TLS_LDM_32 = lief._lief.ELF.RELOCATION_i386.TLS_LDM_32
TLS_LDM_CALL = lief._lief.ELF.RELOCATION_i386.TLS_LDM_CALL
TLS_LDM_POP = lief._lief.ELF.RELOCATION_i386.TLS_LDM_POP
TLS_LDM_PUSH = lief._lief.ELF.RELOCATION_i386.TLS_LDM_PUSH
TLS_LDO_32 = lief._lief.ELF.RELOCATION_i386.TLS_LDO_32
TLS_LE = lief._lief.ELF.RELOCATION_i386.TLS_LE
TLS_LE_32 = lief._lief.ELF.RELOCATION_i386.TLS_LE_32
TLS_TPOFF = lief._lief.ELF.RELOCATION_i386.TLS_TPOFF
TLS_TPOFF32 = lief._lief.ELF.RELOCATION_i386.TLS_TPOFF32
from_value(arg: int) lief.ELF.RELOCATION_i386 = <nanobind.nb_func object>
property value int

The underlying integer value


Relocations ARM

class lief.ELF.RELOCATION_ARM
ABS12 = lief._lief.ELF.RELOCATION_ARM.ABS12
ABS16 = lief._lief.ELF.RELOCATION_ARM.ABS16
ABS32 = lief._lief.ELF.RELOCATION_ARM.ABS32
ABS32_NOI = lief._lief.ELF.RELOCATION_ARM.ABS32_NOI
ABS8 = lief._lief.ELF.RELOCATION_ARM.ABS8
ALU_PCREL_15_8 = lief._lief.ELF.RELOCATION_ARM.ALU_PCREL_15_8
ALU_PCREL_23_15 = lief._lief.ELF.RELOCATION_ARM.ALU_PCREL_23_15
ALU_PCREL_7_0 = lief._lief.ELF.RELOCATION_ARM.ALU_PCREL_7_0
ALU_PC_G0 = lief._lief.ELF.RELOCATION_ARM.ALU_PC_G0
ALU_PC_G0_NC = lief._lief.ELF.RELOCATION_ARM.ALU_PC_G0_NC
ALU_PC_G1 = lief._lief.ELF.RELOCATION_ARM.ALU_PC_G1
ALU_PC_G1_NC = lief._lief.ELF.RELOCATION_ARM.ALU_PC_G1_NC
ALU_PC_G2 = lief._lief.ELF.RELOCATION_ARM.ALU_PC_G2
ALU_SBREL_19_12_NC = lief._lief.ELF.RELOCATION_ARM.ALU_SBREL_19_12_NC
ALU_SBREL_27_20_CK = lief._lief.ELF.RELOCATION_ARM.ALU_SBREL_27_20_CK
ALU_SB_G0 = lief._lief.ELF.RELOCATION_ARM.ALU_SB_G0
ALU_SB_G0_NC = lief._lief.ELF.RELOCATION_ARM.ALU_SB_G0_NC
ALU_SB_G1 = lief._lief.ELF.RELOCATION_ARM.ALU_SB_G1
ALU_SB_G1_NC = lief._lief.ELF.RELOCATION_ARM.ALU_SB_G1_NC
ALU_SB_G2 = lief._lief.ELF.RELOCATION_ARM.ALU_SB_G2
BASE_ABS = lief._lief.ELF.RELOCATION_ARM.BASE_ABS
BASE_PREL = lief._lief.ELF.RELOCATION_ARM.BASE_PREL
BREL_ADJ = lief._lief.ELF.RELOCATION_ARM.BREL_ADJ
CALL = lief._lief.ELF.RELOCATION_ARM.CALL
COPY = lief._lief.ELF.RELOCATION_ARM.COPY
GLOB_DAT = lief._lief.ELF.RELOCATION_ARM.GLOB_DAT
GNU_VTENTRY = lief._lief.ELF.RELOCATION_ARM.GNU_VTENTRY
GNU_VTINHERIT = lief._lief.ELF.RELOCATION_ARM.GNU_VTINHERIT
GOTOFF12 = lief._lief.ELF.RELOCATION_ARM.GOTOFF12
GOTOFF32 = lief._lief.ELF.RELOCATION_ARM.GOTOFF32
GOTRELAX = lief._lief.ELF.RELOCATION_ARM.GOTRELAX
GOT_ABS = lief._lief.ELF.RELOCATION_ARM.GOT_ABS
GOT_BREL = lief._lief.ELF.RELOCATION_ARM.GOT_BREL
GOT_BREL12 = lief._lief.ELF.RELOCATION_ARM.GOT_BREL12
GOT_PREL = lief._lief.ELF.RELOCATION_ARM.GOT_PREL
IRELATIVE = lief._lief.ELF.RELOCATION_ARM.IRELATIVE
JUMP24 = lief._lief.ELF.RELOCATION_ARM.JUMP24
JUMP_SLOT = lief._lief.ELF.RELOCATION_ARM.JUMP_SLOT
LDC_PC_G0 = lief._lief.ELF.RELOCATION_ARM.LDC_PC_G0
LDC_PC_G1 = lief._lief.ELF.RELOCATION_ARM.LDC_PC_G1
LDC_PC_G2 = lief._lief.ELF.RELOCATION_ARM.LDC_PC_G2
LDC_SB_G0 = lief._lief.ELF.RELOCATION_ARM.LDC_SB_G0
LDC_SB_G1 = lief._lief.ELF.RELOCATION_ARM.LDC_SB_G1
LDC_SB_G2 = lief._lief.ELF.RELOCATION_ARM.LDC_SB_G2
LDRS_PC_G0 = lief._lief.ELF.RELOCATION_ARM.LDRS_PC_G0
LDRS_PC_G1 = lief._lief.ELF.RELOCATION_ARM.LDRS_PC_G1
LDRS_PC_G2 = lief._lief.ELF.RELOCATION_ARM.LDRS_PC_G2
LDRS_SB_G0 = lief._lief.ELF.RELOCATION_ARM.LDRS_SB_G0
LDRS_SB_G1 = lief._lief.ELF.RELOCATION_ARM.LDRS_SB_G1
LDRS_SB_G2 = lief._lief.ELF.RELOCATION_ARM.LDRS_SB_G2
LDR_PC_G0 = lief._lief.ELF.RELOCATION_ARM.LDR_PC_G0
LDR_PC_G1 = lief._lief.ELF.RELOCATION_ARM.LDR_PC_G1
LDR_PC_G2 = lief._lief.ELF.RELOCATION_ARM.LDR_PC_G2
LDR_SBREL_11_0_NC = lief._lief.ELF.RELOCATION_ARM.LDR_SBREL_11_0_NC
LDR_SB_G0 = lief._lief.ELF.RELOCATION_ARM.LDR_SB_G0
LDR_SB_G1 = lief._lief.ELF.RELOCATION_ARM.LDR_SB_G1
LDR_SB_G2 = lief._lief.ELF.RELOCATION_ARM.LDR_SB_G2
ME_TOO = lief._lief.ELF.RELOCATION_ARM.ME_TOO
MOVT_ABS = lief._lief.ELF.RELOCATION_ARM.MOVT_ABS
MOVT_BREL = lief._lief.ELF.RELOCATION_ARM.MOVT_BREL
MOVT_PREL = lief._lief.ELF.RELOCATION_ARM.MOVT_PREL
MOVW_ABS_NC = lief._lief.ELF.RELOCATION_ARM.MOVW_ABS_NC
MOVW_BREL = lief._lief.ELF.RELOCATION_ARM.MOVW_BREL
MOVW_BREL_NC = lief._lief.ELF.RELOCATION_ARM.MOVW_BREL_NC
MOVW_PREL_NC = lief._lief.ELF.RELOCATION_ARM.MOVW_PREL_NC
NONE = lief._lief.ELF.RELOCATION_ARM.NONE
PC24 = lief._lief.ELF.RELOCATION_ARM.PC24
PLT32 = lief._lief.ELF.RELOCATION_ARM.PLT32
PLT32_ABS = lief._lief.ELF.RELOCATION_ARM.PLT32_ABS
PREL31 = lief._lief.ELF.RELOCATION_ARM.PREL31
PRIVATE_0 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_0
PRIVATE_1 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_1
PRIVATE_10 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_10
PRIVATE_11 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_11
PRIVATE_12 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_12
PRIVATE_13 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_13
PRIVATE_14 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_14
PRIVATE_15 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_15
PRIVATE_2 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_2
PRIVATE_3 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_3
PRIVATE_4 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_4
PRIVATE_5 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_5
PRIVATE_6 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_6
PRIVATE_7 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_7
PRIVATE_8 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_8
PRIVATE_9 = lief._lief.ELF.RELOCATION_ARM.PRIVATE_9