Home
Overloaded function.
parse(filename: str, dynsym_count_method: lief._lief.ELF.DYNSYM_COUNT_METHODS = <DYNSYM_COUNT_METHODS.AUTO: 0>) -> LIEF::ELF::Binary
Parse the ELF binary from the given file path and return a
lief.ELF.Binary
objectFor weird binaries (e.g sectionless) you can choose the method to use to count dynamic symbols (
lief.ELF.DYNSYM_COUNT_METHODS
). By default, the value is set tolief.ELF.DYNSYM_COUNT_METHODS.COUNT_AUTO
parse(raw: List[int], name: str = ‘’, dynsym_count_method: lief._lief.ELF.DYNSYM_COUNT_METHODS = <DYNSYM_COUNT_METHODS.AUTO: 0>) -> LIEF::ELF::Binary
Parse the ELF binary from the given list of bytes and return a
lief.ELF.Binary
objectFor weird binaries (e.g sectionless) you can choose the method to use to count dynamic symbols (
lief.ELF.DYNSYM_COUNT_METHODS
). By default, the value is set tolief.ELF.DYNSYM_COUNT_METHODS.COUNT_AUTO
parse(io: object, name: str = ‘’, dynsym_count_method: lief._lief.ELF.DYNSYM_COUNT_METHODS = <DYNSYM_COUNT_METHODS.AUTO: 0>) -> object
Parse the ELF binary from a Python IO stream and return a
lief.ELF.Binary
objectFor weird binaries (e.g sectionless) you can choose the method to use to count dynamic symbols (
lief.ELF.lief.ELF.DYNSYM_COUNT_METHODS
). By default, the value is set tolief.ELF.lief.ELF.DYNSYM_COUNT_METHODS.COUNT_AUTO
Class which represents an ELF binary
This enum describes the different ways to relocate the segments table.
Members:
- AUTO
Defer the choice of the layout to LIEF.
- PIE_SHIFT
The content of the binary right after the segments table is shifted and the relocations are updated accordingly. This kind of shift only works with PIE binaries.
- BSS_END
The new segments table is relocated right after the first bss-like segments.
- FILE_END
The new segments table is relocated at the end of the binary.
- SEGMENT_GAP
The new segments table is relocated between two LOAD segments. This kind of relocation is only doable when there is an alignment enforcement.
Members:
AUTO
VA
RVA
Return the abstract representation of the current binary (lief.Binary
)
Warning
Getting this property modifies the __class__
attribute such as the current binary looks like a lief.Binary
.
To get back to the original binary, one needs to access lief.Binary.concrete
Overloaded function.
add(self: lief._lief.ELF.Binary, arg0: LIEF::ELF::DynamicEntry) -> LIEF::ELF::DynamicEntry
dynamic_entry
add(self: lief._lief.ELF.Binary, section: LIEF::ELF::Section, loaded: bool = True) -> 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 toFalse
(default:True
)
add(self: lief._lief.ELF.Binary, Add a new Segment
in the binarysegment: LIEF::ELF::Segment, base: int = 0) -> LIEF::ELF::Segment
add(self: lief._lief.ELF.Binary, note: LIEF::ELF::Note) -> LIEF::ELF::Note
Add a new Note
in the binary
Add a new dynamic relocation.
We consider a dynamic relocation as a relocation which is not plt-related.
Add a dynamic Symbol
to the binary
The function also takes an optional lief.ELF.SymbolVersion
Create a symbol for the function at the given address
and create an export
Add a library with the given name as dependency
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 a .plt.got relocation. This kind of relocation is usually associated with a PLT stub that aims at resolving the underlying symbol.
Add a static Symbol
to the 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
Constructor functions that are called prior to any other functions
List of the binary destructors (typically, the functions located in the .fini_array
)
Return an iterator to DynamicEntry
entries as a list
Return an iterator over dynamics Relocation
Binary’s entrypoint
Return the last offset used by the ELF binary according to both, the sections table and the segments table.
Overloaded function.
export_symbol(self: lief._lief.ELF.Binary, symbol: LIEF::ELF::Symbol) -> LIEF::ELF::Symbol
Export the given symbol and create an entry if it doesn’t exist
export_symbol(self: lief._lief.ELF.Binary, symbol_name: str, value: int = 0) -> LIEF::ELF::Symbol
Export the symbol with the given name and create an entry if it doesn’t exist
Overloaded function.
extend(self: lief._lief.ELF.Binary, segment: LIEF::ELF::Segment, size: int) -> LIEF::ELF::Segment
Extend the given given Segment
by the given size
extend(self: lief._lief.ELF.Binary, segment: LIEF::ELF::Section, size: int) -> LIEF::ELF::Section
Extend the given given Section
by the given size
File format EXE_FORMATS
of the underlying binary.
List of the functions found the in the binary
Overloaded function.
get(self: lief._lief.ELF.Binary, tag: lief._lief.ELF.DYNAMIC_TAGS) -> LIEF::ELF::DynamicEntry
Return the first binary’s
DynamicEntry
from the givenDYNAMIC_TAGS
.It returns None if the dynamic entry can’t be found.
get(self: lief._lief.ELF.Binary, type: lief._lief.ELF.SEGMENT_TYPES) -> LIEF::ELF::Segment
Return the first binary’s
Segment
from the givenSEGMENT_TYPES
It returns None if the segment can’t be found.
get(self: lief._lief.ELF.Binary, type: lief._lief.ELF.NOTE_TYPES) -> LIEF::ELF::Note
Return the first binary’s
Note
from the givenNOTE_TYPES
.It returns None if the note can’t be found.
get(self: lief._lief.ELF.Binary, type: lief._lief.ELF.SECTION_TYPES) -> LIEF::ELF::Section
Return the first binary’s
Section
from the givenELF_SECTION_TYPES
It returns None if the section can’t be found.
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 the dynamic symbol from the given name.
It returns None if it can’t be found.
Return the address of the given function name
Return the DynamicEntryLibrary
with the given name
It returns None if the library can’t be found.
Overloaded function.
get_relocation(self: lief._lief.ELF.Binary, symbol_name: str) -> LIEF::ELF::Relocation
Return the Relocation
associated with the given symbol name
get_relocation(self: lief._lief.ELF.Binary, symbol: LIEF::ELF::Symbol) -> LIEF::ELF::Relocation
Return the Relocation
associated with the given Symbol
get_relocation(self: lief._lief.ELF.Binary, address: int) -> LIEF::ELF::Relocation
Return the Relocation
associated with the given address
Return the Section
with the given name
It returns None if the section can’t be found.
Get the static symbol from the given name
.
It returns None if it can’t be found.
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
Return the Symbol
from the given name
.
If the symbol can’t be found, it returns None.
Return the GnuHash
object
Hash are used by the loader to speed up symbols resolution (GNU Version)
Overloaded function.
has(self: lief._lief.ELF.Binary, tag: lief._lief.ELF.DYNAMIC_TAGS) -> bool
Check if it exists a
DynamicEntry
with the givenDYNAMIC_TAGS
has(self: lief._lief.ELF.Binary, type: lief._lief.ELF.SEGMENT_TYPES) -> bool
Check if a Segment
of type (SEGMENT_TYPES
) exists
has(self: lief._lief.ELF.Binary, type: lief._lief.ELF.NOTE_TYPES) -> bool
Check if a Note
of type (NOTE_TYPES
) exists
has(self: lief._lief.ELF.Binary, type: lief._lief.ELF.SECTION_TYPES) -> bool
Check if a Section
of type (SECTION_TYPES
) exists
Check if the symbol with the given name
exists in the dynamic symbol table
Check if the binary uses a loader (also named linker or interpreter)
Check if the given library name exists in the current binary
True
if the binary contains notes
Check if the binary has NX
protection (non executable stack)
True if data are appended to the end of the binary
Check if a Section
with the given name exists in the binary
Check if a Section
that encompasses the given offset exists
Check if a Section
that encompasses the given virtual address exists
Check if the symbol with the given name
exists in the static symbol table
Check if a Symbol
with the given name exists
Return the program image base. (e.g. 0x400000
)
ELF interpreter (loader) if any. (e.g. /lib64/ld-linux-x86-64.so.2
)
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)
Return the last offset used in binary according to sections table
Return the last offset used in binary according to segments table
Return binary’s imported libraries (name)
Binary’s name
Return the next virtual address available
Return an iterator over object Relocation
Convert an offset into a virtual address.
Overlay data that are not a part of the ELF format
Overloaded function.
patch_address(self: lief._lief.Binary, address: int, patch_value: List[int], va_type: lief._lief.Binary.VA_TYPES = <VA_TYPES.AUTO: 0>) -> None
patch_address(self: lief._lief.Binary, address: int, patch_value: int, size: int = 8, va_type: lief._lief.Binary.VA_TYPES = <VA_TYPES.AUTO: 0>) -> None
Overloaded function.
patch_pltgot(self: lief._lief.ELF.Binary, symbol_name: str, address: int) -> None
Patch the imported symbol’s name with the address
patch_pltgot(self: lief._lief.ELF.Binary, symbol: LIEF::ELF::Symbol, address: int) -> None
Patch the imported Symbol
with the address
Apply the given permutation on the dynamic symbols table
Return an iterator over PLT/GOT Relocation
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
Return an iterator over all Relocation
Overloaded function.
remove(self: lief._lief.ELF.Binary, dynamic_entry: LIEF::ELF::DynamicEntry) -> None
Remove the given DynamicEntry
from the dynamic table
remove(self: lief._lief.ELF.Binary, tag: lief._lief.ELF.DYNAMIC_TAGS) -> None
Remove all the DynamicEntry
with the given DYNAMIC_TAGS
remove(self: lief._lief.ELF.Binary, section: 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
remove(self: lief._lief.ELF.Binary, note: LIEF::ELF::Note) -> None
Remove the given Note
remove(self: lief._lief.ELF.Binary, type: lief._lief.ELF.NOTE_TYPES) -> None
Remove all the Note
with the given NOTE_TYPES
Overloaded function.
remove_dynamic_symbol(self: lief._lief.ELF.Binary, arg0: LIEF::ELF::Symbol) -> None
Remove the given Symbol
from the .dynsym
section
remove_dynamic_symbol(self: lief._lief.ELF.Binary, arg0: str) -> None
Remove the Symbol
with the name given in parameter from the .dynsym
section
Remove the given library
Remove the section with the given name
Remove the given Symbol
from the .symtab
section
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
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, ...
)
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, ...
)
Return the Segment
which encompasses the given offset. It returns None if a segment can’t be found.
Return the Segment
which encompasses the given virtual address. It returns None if a segment can’t be found.
Return list of strings used in the current ELF file. Basically this function looks for strings in the .roadata
section
Strip the binary
Return an iterator SymbolVersion
Return an iterator to SymbolVersionDefinition
Return an iterator to SymbolVersionRequirement
Return the SysvHash
object
Hash are used by the loader to speed up symbols resolution (SYSV version)
True
if GNU hash is used
True
if SYSV hash is used
Convert the virtual address to a file offset
Return the size of the mapped binary
Overloaded function.
write(self: lief._lief.ELF.Binary, output: str) -> None
Rebuild the binary and write it in a file
write(self: lief._lief.ELF.Binary, output: str, config: LIEF::ELF::Builder::config_t) -> None
Rebuild the binary with the given configuration and write it in a file
Return all virtual addresses that use the address
given in parameter
Class which represents the ELF’s header. This is the ELF structure that starts an ELF file.
Return a list of ARM_EFLAGS
present in processor_flag
Return the binary entry point
Return binary’s E_TYPE
. This field determines if the binary is a executable, a library…
Return the size of the ELF header
This size should be 64 for an ELF64
binary and 52 for an ELF32
.
Return a list of HEXAGON_EFLAGS
present in processor_flag
Header’s identity.
Return the ABI version (integer).
Identifies the version of the ABI for which the object is prepared (OS_ABI
).
Return a list of MIPS_EFLAGS
present in processor_flag
Return the number of sections
Return the number of program headers (segments)
Return a list of PPC64_EFLAGS
present in processor_flag
Processor-specific flags
Offset of program table (also known as segments table)
Return the size of a Segment header (lief.ELF.Segment
)
This size should be 56 for a ELF64
binary and 32 for an ELF32
.
Offset of section table
Return the size of a Section header (lief.ELF.Section
)
This size should be 64 for a ELF64
binary and 40 for an ELF32
.
Return the section index which contains sections’ names
Class which represents an ELF section.
Overloaded function.
__init__(self: lief._lief.ELF.Section) -> None
Default constructor
__init__(self: lief._lief.ELF.Section, name: str, type: lief._lief.ELF.SECTION_TYPES = <SECTION_TYPES.PROGBITS: 1>) -> None
Constructor from a name and a section type
__init__(self: lief._lief.ELF.Section, arg0: lief._lief.ELF.Section, arg1: List[int], arg2: lief._lief.ELF.ELF_CLASS) -> None
Add the given SECTION_FLAGS
to the list of flags
Section alignment
Clear the content of the section with the given value
Section’s content
Section’s entropy
This property returns the size of an element in the case of a section that contains an array.
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.
Offset of the section’s content
Return the section’s flags as an integer
Return section’s flags as a list of SECTION_FLAGS
Return the fullname of the section including the trailing bytes
Overloaded function.
has(self: lief._lief.ELF.Section, flag: lief._lief.ELF.SECTION_FLAGS) -> bool
Check if the given SECTION_FLAGS
is present
has(self: lief._lief.ELF.Section, segment: LIEF::ELF::Segment) -> bool
Section information (this value depends on the section)
Index to another section
Section’s name
Section’s file offset
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 the given SECTION_FLAGS
from the list of flags
Overloaded function.
search(self: lief._lief.Section, number: int, pos: int = 0, size: int = 0) -> object
Look for integer within the current section
search(self: lief._lief.Section, str: str, pos: int = 0) -> object
Look for string within the current section
search(self: lief._lief.Section, bytes: bytes, pos: int = 0) -> object
Look for the given bytes within the current section
Overloaded function.
search_all(self: lief._lief.Section, number: int, size: int = 0) -> List[int]
Look for all integers within the current section
search_all(self: lief._lief.Section, str: str) -> List[int]
Look for all strings within the current section
Return segment(s) associated with the given section
Section’s size
Return the SECTION_TYPES
Section’s virtual address
Class which represents the ELF segments
Add the given SEGMENT_FLAGS
to the list of flags
The offset alignment of the segment
The raw data associated with this segment.
The file offset of the data associated with this segment
The flag permissions associated with this segment
Overloaded function.
has(self: lief._lief.ELF.Segment, flag: lief._lief.ELF.SEGMENT_FLAGS) -> bool
Check if the given SEGMENT_FLAGS
is present
has(self: lief._lief.ELF.Segment, section: lief._lief.ELF.Section) -> bool
Check if the given Section
is present in sections
has(self: lief._lief.ELF.Segment, section_name: str) -> bool
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
The file size of the data associated with this segment
Remove the given SEGMENT_FLAGS
from the list of flags
Segment’s type: SEGMENT_TYPES
The virtual address of the segment.
Warning
The ELF format specifications require the following relationship:
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
Class which represents an entry in the dynamic table These entries are located in the .dynamic
section or the PT_DYNAMIC
segment
Overloaded function.
__init__(self: lief._lief.ELF.DynamicEntry) -> None
Default constructor
__init__(self: lief._lief.ELF.DynamicEntry, tag: lief._lief.ELF.DYNAMIC_TAGS, value: int) -> None
Constructor from a DYNAMIC_TAGS
and value
Return the entry’s DYNAMIC_TAGS
which represent the entry type
Return the entry’s value
The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …
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
Library associated with this entry (e.g. libc.so.6
)
Return the entry’s DYNAMIC_TAGS
which represent the entry type
Return the entry’s value
The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …
Class that represents a DT_RUNPATH
wich is used by the loader to resolve libraries (DynamicEntryLibrary
).
Overloaded function.
__init__(self: lief._lief.ELF.DynamicEntryRunPath, path: str = ‘’) -> None
Constructor from a (run)path
__init__(self: lief._lief.ELF.DynamicEntryRunPath, paths: List[str]) -> None
Constructor from a list of paths
Append the given path
Insert a path
at the given position
Runpath raw value
Paths as a list
Remove the given path
Runpath raw value
Return the entry’s DYNAMIC_TAGS
which represent the entry type
Return the entry’s value
The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …
Class which represents a DT_RPATH
entry. This attribute is deprecated (cf. man ld
) in favour of DT_RUNPATH
(See DynamicRunPath
)
Overloaded function.
__init__(self: lief._lief.ELF.DynamicEntryRpath, path: str = ‘’) -> None
Constructor from (r)path
__init__(self: lief._lief.ELF.DynamicEntryRpath, paths: List[str]) -> None
Constructor from a list of paths
Append the given path
Insert a path
at the given position
The actual rpath as a string
Paths as a list
Remove the given path
The actual rpath as a string
Return the entry’s DYNAMIC_TAGS
which represent the entry type
Return the entry’s value
The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …
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.
Overloaded function.
__init__(self: lief._lief.ELF.DynamicEntryArray) -> None
__init__(self: lief._lief.ELF.DynamicEntryArray, tag: lief._lief.ELF.DYNAMIC_TAGS, value: int) -> None
Constructor with DYNAMIC_TAGS
and value
Append the given function
Return the array as a list of intergers
Insert the given function
at pos
Remove the given function
Return the entry’s DYNAMIC_TAGS
which represent the entry type
Return the entry’s value
The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …
Overloaded function.
__init__(self: lief._lief.ELF.DynamicEntryFlags) -> None
__init__(self: lief._lief.ELF.DynamicEntryFlags, tag: lief._lief.ELF.DYNAMIC_TAGS, value: int) -> None
Constructor with DYNAMIC_TAGS
and value
Overloaded function.
add(self: lief._lief.ELF.DynamicEntryFlags, flag: lief._lief.ELF.DYNAMIC_FLAGS) -> None
Add the given DYNAMIC_FLAGS
add(self: lief._lief.ELF.DynamicEntryFlags, flag: lief._lief.ELF.DYNAMIC_FLAGS_1) -> None
Add the given DYNAMIC_FLAGS_1
Return list of DYNAMIC_FLAGS
or DYNAMIC_FLAGS_1
(integer)
Overloaded function.
has(self: lief._lief.ELF.DynamicEntryFlags, flag: lief._lief.ELF.DYNAMIC_FLAGS) -> bool
Check if this entry contains the given DYNAMIC_FLAGS
has(self: lief._lief.ELF.DynamicEntryFlags, flag: lief._lief.ELF.DYNAMIC_FLAGS_1) -> bool
Check if this entry contains the given DYNAMIC_FLAGS_1
Overloaded function.
remove(self: lief._lief.ELF.DynamicEntryFlags, flag: lief._lief.ELF.DYNAMIC_FLAGS) -> None
Remove the given DYNAMIC_FLAGS
remove(self: lief._lief.ELF.DynamicEntryFlags, flag: lief._lief.ELF.DYNAMIC_FLAGS_1) -> None
Remove the given DYNAMIC_FLAGS_1
Return the entry’s DYNAMIC_TAGS
which represent the entry type
Return the entry’s value
The meaning of the value strongly depends on the tag. It can be an offset, an index, a flag, …
Class that represents an ELF relocation.
Overloaded function.
__init__(self: lief._lief.ELF.Relocation) -> None
__init__(self: lief._lief.ELF.Relocation, arch: lief._lief.ELF.ARCH) -> None
__init__(self: lief._lief.ELF.Relocation, address: int, type: int = 0, addend: int = 0, is_rela: bool = False) -> None
Additional value
Relocation’s address
True
if this relocation has a lief.ELF.Section
associated with.
This is usually the case for object files (.o
)
Extra information like the symbol index
Purpose of the relocation (RELOCATION_PURPOSES
).
This value provides the information about how the relocation is used (PLT/GOT resolution, .o
file, …)
Relocation’s size (in bits)
Symbol
associated with the relocation or None if no symbol are associated with this relocation.
Relocation type. This value depends on the underlying architecture.
“Class which represents an ELF symbol”
A symbol’s binding determines the linkage visibility and behavior. See SYMBOL_BINDINGS
Symbol’s name demangled or an empty string if the demangling is not possible/failed
Whether the symbol is exported
Check if this symbols has a SymbolVersion
Whether the symbol is imported
This property specifies the symbol’s type and binding attributes
True if the symbol is a function
True if the symbol is a static one (i.e. from the .symtab
section
True if the symbol is a variable
Symbol’s name
Alias for visibility
Return the section (Section
) associated with this symbol if any. Otherwise, return None.
Section index associated with the symbol
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.
Return the SymbolVersion
associated with this symbol
It returns None if no version is tied to this symbol.
The symbol’s type provides a general classification for the associated entity. See: SYMBOL_TYPES
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.
Symbol SYMBOL_VISIBILITY
. It’s basically an alias on other
Overloaded function.
__init__(self: lief._lief.ELF.SymbolVersion) -> None
Default constructor
__init__(self: lief._lief.ELF.SymbolVersion, arg0: int) -> None
Constructor from value
Check if this symbols has a 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
.
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.
Class which represents an entry defined in DT_VERDEF
or .gnu.version_d
Version information
Hash value of the symbol’s name (using ELF hash function)
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.
Class which represents an entry in the DT_VERNEED
or .gnu.version_r
table
Add an auxiliary version requirement to the existing entries
Auxiliary entries (iterator over SymbolVersionAuxRequirement
)
Library’s name associated with this requirement (e.g. libc.so.6
)
Version revision. Should be 1
Default constructor
Bitmask of flags
Hash value of the dependency name (use ELF hashing function)
Symbol’s name (e.g. GLIBC_2.2.5
)
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.
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
.
Bloom filters
hash buckets
Overloaded function.
check(self: lief._lief.ELF.GnuHash, symbol_name: str) -> bool
Check if the symbol probably exists. If the returned value is false
you can assume at 100%
that the symbol with the given name doesn’t exists. If true
you can’t do any assumption
check(self: lief._lief.ELF.GnuHash, hash_value: int) -> bool
Check if the symbol associated with the given probably exists. If the returned value is false
you can assume at 100%
that the symbol doesn’t exists. If true
you can’t do any assumption
Check if the given hash pass the bloom filter
Check if the given hash pass the bucket filter
Hash values
Return the number of buckets
Shift count used in the bloom filter
Index of the first symbol in the dynamic symbols table which is accessible with the hash table
Class which represents the SYSV hash for the symbols resolution
References:
Buckets values
Chains values
Return the number of buckets
Return the number of chains (symbol table index)
Class which represents an ELF note.
Overloaded function.
__init__(self: lief._lief.ELF.Note) -> None
Default constructor
__init__(self: lief._lief.ELF.Note, name: str, type: lief._lief.ELF.NOTE_TYPES, description: List[int]) -> None
Constructor from a name
, type
and description
Return the description associated with the note
Parse the given note description and return a NoteDetails
object
True if the current note is specific to Android.
If true, lief.Note.details
returns a reference to the AndroidNote
object
True if the note is associated with a coredump
Return the name of the note (Usually the owner).
Size of the raw note
Return the type of the note. It can be one of the NOTE_TYPES
values
Return the type of the note for ELF Core (ET_CORE). It Can be one of the NOTE_TYPES_CORE
values
Default ctor
Members:
UNKNOWN
X86_EBX
X86_ECX
X86_EDX
X86_ESI
X86_EDI
X86_EBP
X86_EAX
X86_DS
X86_ES
X86_FS
X86_GS
X86_EIP
X86_CS
X86_EFLAGS
X86_ESP
X86_SS
X86_64_R15
X86_64_R14
X86_64_R13
X86_64_R12
X86_64_RBP
X86_64_RBX
X86_64_R11
X86_64_R10
X86_64_R9
X86_64_R8
X86_64_RAX
X86_64_RCX
X86_64_RDX
X86_64_RSI
X86_64_RDI
X86_64_RIP
X86_64_CS
X86_64_EFLAGS
X86_64_RSP
X86_64_SS
ARM_R0
ARM_R1
ARM_R2
ARM_R3
ARM_R4
ARM_R5
ARM_R6
ARM_R7
ARM_R8
ARM_R9
ARM_R10
ARM_R11
ARM_R12
ARM_R13
ARM_R14
ARM_R15
ARM_CPSR
AARCH64_X0
AARCH64_X1
AARCH64_X2
AARCH64_X3
AARCH64_X4
AARCH64_X5
AARCH64_X6
AARCH64_X7
AARCH64_X8
AARCH64_X9
AARCH64_X10
AARCH64_X11
AARCH64_X12
AARCH64_X13
AARCH64_X14
AARCH64_X15
AARCH64_X16
AARCH64_X17
AARCH64_X18
AARCH64_X19
AARCH64_X20
AARCH64_X21
AARCH64_X22
AARCH64_X23
AARCH64_X24
AARCH64_X25
AARCH64_X26
AARCH64_X27
AARCH64_X28
AARCH64_X29
AARCH64_X30
AARCH64_X31
AARCH64_PC
Current Signal
Return the register value
Check if a value is associated with the given register
Process group ID
Process ID
Process parent ID
Current registers state as a dictionary where the keys are REGISTERS
and the values the register’s value
Set register value
Process session ID
Set of held signals
Info associated with the signal
Set of pending signals
List of files mapped in core. (list of CoreFileEntry
)
Overloaded function.
__init__(self: lief._lief.ELF.CoreFile.files_t) -> None
__init__(self: lief._lief.ELF.CoreFile.files_t, arg0: lief._lief.ELF.CoreFile.files_t) -> None
Copy constructor
__init__(self: lief._lief.ELF.CoreFile.files_t, arg0: Iterable) -> None
Add an item to the end of the list
Clear the contents
Overloaded function.
extend(self: lief._lief.ELF.CoreFile.files_t, L: lief._lief.ELF.CoreFile.files_t) -> None
Extend the list by appending all the items in the given list
extend(self: lief._lief.ELF.CoreFile.files_t, L: Iterable) -> None
Extend the list by appending all the items in the given list
Insert an item at a given position.
Overloaded function.
pop(self: lief._lief.ELF.CoreFile.files_t) -> LIEF::ELF::CoreFileEntry
Remove and return the last item
pop(self: lief._lief.ELF.CoreFile.files_t, i: int) -> LIEF::ELF::CoreFileEntry
Remove and return the item at index i
Members:
NULL
IGNORE
EXECFD
PHDR
PHENT
PHNUM
PAGESZ
BASE
FLAGS
ENTRY
NOTELF
UID
EUID
GID
EGID
CKLTCK
PLATFORM
HWCAP
HWCAP2
FPUCW
DCACHEBSIZE
ICACHEBSIZE
UCACHEBSIZE
IGNOREPPC
SECURE
BASE_PLATFORM
RANDOM
EXECFN
SYSINFO
SYSINFO_EHDR
L1I_CACHESHAPE
L1D_CACHESHAPE
Return the type value
Check if a value is associated with the given type
Set type value
Current values as a dictionarry for which keys are AUXV types
Class which takes an lief.ELF.Binary
object and reconstructs a valid binary
Constructor that takes a Binary
Perform the build of the provided ELF binary
Tweak the ELF builder with the provided config parameter
Interface to tweak the Builder
Force to relocate all the ELF structures that can be relocated (mostly for testing)
Return the build result as a list
of bytes
Write the build result into the output
file
Members:
MAG0
MAG1
MAG2
MAG3
CLASS
DATA
VERSION
OSABI
ABIVERSION
PAD
NIDENT
Members:
SYSTEMV
HPUX
NETBSD
LINUX
GNU
HURD
SOLARIS
AIX
IRIX
FREEBSD
TRU64
MODESTO
OPENBSD
OPENVMS
NSK
AROS
FENIXOS
CLOUDABI
AMDGPU_HSA
C6000_ELFABI
C6000_LINUX
ARM
STANDALONE
Members:
UNDEF
ABS
COMMON
XINDEX
Members:
NONE
RELOCATABLE
EXECUTABLE
DYNAMIC
CORE
LOPROC
HIPROC
Members:
NULL
PROGBITS
SYMTAB
STRTAB
RELA
HASH
DYNAMIC
NOTE
NOBITS
REL
SHLIB
DYNSYM
INIT_ARRAY
FINI_ARRAY
PREINIT_ARRAY
GROUP
SYMTAB_SHNDX
LOOS
GNU_ATTRIBUTES
GNU_HASH
GNU_VERDEF
GNU_VERNEED
HIOS
ANDROID_REL
ANDROID_RELA
LLVM_ADDRSIG
RELR
ARM_EXIDX
ARM_PREEMPTMAP
ARM_ATTRIBUTES
ARM_DEBUGOVERLAY
ARM_OVERLAYSECTION
LOPROC
X86_64_UNWIND
HIPROC
LOUSER
HIUSER
Members:
NONE
WRITE
ALLOC
EXECINSTR
MERGE
STRINGS
INFO_LINK
LINK_ORDER
OS_NONCONFORMING
GROUP
TLS
MIPS_STRING
SHF_CP_SECTION
XCORE_SHF_CP_SECTION
MASKOS
MASKPROC
HEX_GPREL
Members:
NULL
LOAD
DYNAMIC
INTERP
NOTE
SHLIB
PHDR
TLS
GNU_EH_FRAME
GNU_PROPERTY
GNU_STACK
GNU_RELRO
ARM_ARCHEXT
ARM_UNWIND
UNWIND
Members:
NONE
M32
SPARC
i386
ARCH_68K
ARCH_88K
IAMCU
ARCH_860
MIPS
S370
MIPS_RS3_LE
PARISC
VPP500
SPARC32PLUS
ARCH_960
PPC
PPC64
S390
SPU
V800
FR20
RH32
RCE
ARM
ALPHA
SH
SPARCV9
TRICORE
ARC
H8_300
H8_300H
H8S
H8_500
IA_64
MIPS_X
COLDFIRE
ARCH_68HC12
MMA
PCP
NCPU
NDR1
STARCORE
ME16
ST100
TINYJ
x86_64
PDSP
PDP10
PDP11
FX66
ST9PLUS
ST7
ARCH_68HC16
ARCH_68HC11
ARCH_68HC08
ARCH_68HC05
SVX
ST19
VAX
CRIS
JAVELIN
FIREPATH
ZSP
MMIX
HUANY
PRISM
AVR
FR30
D10V
D30V
V850
M32R
MN10300
MN10200
PJ
OPENRISC
ARC_COMPACT
XTENSA
VIDEOCORE
TMM_GPP
NS32K
TPC
SNP1K
ST200
IP2K
MAX
CR
F2MC16
MSP430
BLACKFIN
SE_C33
SEP
ARCA
UNICORE
EXCESS
DXP
ALTERA_NIOS2
CRX
XGATE
C166
M16C
DSPIC30F
CE
M32C
TSK3000
RS08
SHARC
ECOG2
SCORE7
DSP24
VIDEOCORE3
LATTICEMICO32
SE_C17
TI_C6000
TI_C2000
TI_C5500
MMDSP_PLUS
CYPRESS_M8C
R32C
TRIMEDIA
HEXAGON
ARCH_8051
STXP7X
NDS32
ECOG1
ECOG1X
MAXQ30
XIMO16
MANIK
CRAYNV2
RX
METAG
MCST_ELBRUS
ECOG16
CR16
ETPU
SLE9X
L10M
K10M
AARCH64
AVR32
STM8
TILE64
TILEPRO
CUDA
TILEGX
CLOUDSHIELD
COREA_1ST
COREA_2ND
ARC_COMPACT2
OPEN8
RL78
VIDEOCORE5
ARCH_78KOR
ARCH_56800EX
BA1
BA2
XCORE
MCHP_PIC
INTEL205
INTEL206
INTEL207
INTEL208
INTEL209
KM32
KMX32
KMX16
KMX8
KVARC
CDP
COGE
COOL
NORC
CSR_KALIMBA
AMDGPU
RISCV
BPF
Members:
ORIGIN
SYMBOLIC
TEXTREL
BIND_NOW
STATIC_TLS
Members:
NOW
GLOBAL
GROUP
NODELETE
LOADFLTR
INITFIRST
NOOPEN
ORIGIN
DIRECT
TRANS
INTERPOSE
NODEFLIB
NODUMP
CONFALT
ENDFILTEE
DISPRELDNE
DISPRELPND
NODIRECT
IGNMULDEF
NOKSYMS
NOHDR
EDITED
NORELOC
SYMINTPOSE
GLOBAUDIT
SINGLETON
PIE
Members:
NOTYPE
OBJECT
FUNC
SECTION
FILE
COMMON
TLS
GNU_IFUNC
Members:
LOCAL
GLOBAL
WEAK
GNU_UNIQUE
Members:
DEFAULT
HIDDEN
INTERNAL
PROTECTED
Members:
NONE
R64
PC32
GOT32
PLT32
COPY
GLOB_DAT
JUMP_SLOT
RELATIVE
GOTPCREL
R32
R32S
R16
PC16
R8
PC8
DTPMOD64
DTPOFF64
TPOFF64
TLSGD
TLSLD
DTPOFF32
GOTTPOFF
TPOFF32
PC64
GOTOFF64
GOTPC32
GOT64
GOTPCREL64
GOTPC64
GOTPLT64
PLTOFF64
SIZE32
SIZE64
GOTPC32_TLSDESC
TLSDESC_CALL
TLSDESC
IRELATIVE
RELATIVE64
PC32_BND
PLT32_BND
GOTPCRELX
REX_GOTPCRELX
Members:
NONE
R32
PC32
GOT32
PLT32
COPY
GLOB_DAT
JUMP_SLOT
RELATIVE
GOTOFF
GOTPC
R32PLT
TLS_TPOFF
TLS_IE
TLS_GOTIE
TLS_LE
TLS_GD
TLS_LDM
R16
PC16
R8
PC8
TLS_GD_32
TLS_GD_PUSH
TLS_GD_CALL
TLS_GD_POP
TLS_LDM_32
TLS_LDM_PUSH
TLS_LDM_CALL
TLS_LDM_POP
TLS_LDO_32
TLS_IE_32
TLS_LE_32
TLS_DTPMOD32
TLS_DTPOFF32
TLS_TPOFF32
TLS_GOTDESC
TLS_DESC_CALL
TLS_DESC
IRELATIVE
NUM
Members:
NONE
PC24
ABS32
REL32
LDR_PC_G0
ABS16
ABS12
THM_ABS5
ABS8
SBREL32
THM_CALL
THM_PC8
BREL_ADJ
TLS_DESC
THM_SWI8
XPC25
THM_XPC22
TLS_DTPMOD32
TLS_DTPOFF32
TLS_TPOFF32
COPY
GLOB_DAT
JUMP_SLOT
RELATIVE
GOTOFF32
BASE_PREL
GOT_BREL
PLT32
CALL
JUMP24
THM_JUMP24
BASE_ABS
ALU_PCREL_7_0
ALU_PCREL_15_8
ALU_PCREL_23_15
LDR_SBREL_11_0_NC
ALU_SBREL_19_12_NC
ALU_SBREL_27_20_CK
TARGET1
SBREL31
V4BX
TARGET2
PREL31
MOVW_ABS_NC
MOVT_ABS
MOVW_PREL_NC
MOVT_PREL
THM_MOVW_ABS_NC
THM_MOVT_ABS
THM_MOVW_PREL_NC
THM_MOVT_PREL
THM_JUMP19
THM_JUMP6
THM_ALU_PREL_11_0
THM_PC12
ABS32_NOI
REL32_NOI
ALU_PC_G0_NC
ALU_PC_G0
ALU_PC_G1_NC
ALU_PC_G1
ALU_PC_G2
LDR_PC_G1
LDR_PC_G2
LDRS_PC_G0
LDRS_PC_G1
LDRS_PC_G2
LDC_PC_G0
LDC_PC_G1
LDC_PC_G2
ALU_SB_G0_NC
ALU_SB_G0
ALU_SB_G1_NC
ALU_SB_G1
ALU_SB_G2
LDR_SB_G0
LDR_SB_G1
LDR_SB_G2
LDRS_SB_G0
LDRS_SB_G1
LDRS_SB_G2
LDC_SB_G0
LDC_SB_G1
LDC_SB_G2
MOVW_BREL_NC
MOVT_BREL
MOVW_BREL
THM_MOVW_BREL_NC
THM_MOVT_BREL
THM_MOVW_BREL
TLS_GOTDESC
TLS_CALL
TLS_DESCSEQ
THM_TLS_CALL
PLT32_ABS
GOT_ABS
GOT_PREL
GOT_BREL12
GOTOFF12
GOTRELAX
GNU_VTENTRY
GNU_VTINHERIT
THM_JUMP11
THM_JUMP8
TLS_GD32
TLS_LDM32
TLS_LDO32
TLS_IE32
TLS_LE32
TLS_LDO12
TLS_LE12
TLS_IE12GP
PRIVATE_0
PRIVATE_1
PRIVATE_2
PRIVATE_3
PRIVATE_4
PRIVATE_5
PRIVATE_6
PRIVATE_7
PRIVATE_8
PRIVATE_9
PRIVATE_10
PRIVATE_11
PRIVATE_12
PRIVATE_13
PRIVATE_14
PRIVATE_15
ME_TOO
THM_TLS_DESCSEQ16
THM_TLS_DESCSEQ32
IRELATIVE
RXPC25
RSBREL32
THM_RPC22
RREL32
RPC24
RBASE
Members:
NONE
ABS64
ABS32
ABS16
PREL64
PREL32
PREL16
MOVW_UABS_G0
MOVW_UABS_G0_NC
MOVW_UABS_G1
MOVW_UABS_G1_NC
MOVW_UABS_G2
MOVW_UABS_G2_NC
MOVW_UABS_G3
MOVW_SABS_G0
MOVW_SABS_G1
MOVW_SABS_G2
LD_PREL_LO19
ADR_PREL_LO21
ADR_PREL_PG_HI21
ADR_PREL_PG_HI21_NC
ADD_ABS_LO12_NC
LDST8_ABS_LO12_NC
TSTBR14
CONDBR19
JUMP26
CALL26
LDST16_ABS_LO12_NC
LDST32_ABS_LO12_NC
LDST64_ABS_LO12_NC
MOVW_PREL_G0
MOVW_PREL_G0_NC
MOVW_PREL_G1
MOVW_PREL_G1_NC
MOVW_PREL_G2
MOVW_PREL_G2_NC
MOVW_PREL_G3
LDST128_ABS_LO12_NC
MOVW_GOTOFF_G0
MOVW_GOTOFF_G0_NC
MOVW_GOTOFF_G1
MOVW_GOTOFF_G1_NC
MOVW_GOTOFF_G2
MOVW_GOTOFF_G2_NC
MOVW_GOTOFF_G3
GOTREL64
GOTREL32
GOT_LD_PREL19
LD64_GOTOFF_LO15
ADR_GOT_PAGE
LD64_GOT_LO12_NC
LD64_GOTPAGE_LO15
TLSGD_ADR_PREL21
TLSGD_ADR_PAGE21
TLSGD_ADD_LO12_NC
TLSGD_MOVW_G1
TLSGD_MOVW_G0_NC
TLSLD_ADR_PREL21
TLSLD_ADR_PAGE21
TLSLD_ADD_LO12_NC
TLSLD_MOVW_G1
TLSLD_MOVW_G0_NC
TLSLD_LD_PREL19
TLSLD_MOVW_DTPREL_G2
TLSLD_MOVW_DTPREL_G1
TLSLD_MOVW_DTPREL_G1_NC
TLSLD_MOVW_DTPREL_G0
TLSLD_MOVW_DTPREL_G0_NC
TLSLD_ADD_DTPREL_HI12
TLSLD_ADD_DTPREL_LO12
TLSLD_ADD_DTPREL_LO12_NC
TLSLD_LDST8_DTPREL_LO12
TLSLD_LDST8_DTPREL_LO12_NC
TLSLD_LDST16_DTPREL_LO12
TLSLD_LDST16_DTPREL_LO12_NC
TLSLD_LDST32_DTPREL_LO12
TLSLD_LDST32_DTPREL_LO12_NC
TLSLD_LDST64_DTPREL_LO12
TLSLD_LDST64_DTPREL_LO12_NC
TLSIE_MOVW_GOTTPREL_G1
TLSIE_MOVW_GOTTPREL_G0_NC
TLSIE_ADR_GOTTPREL_PAGE21
TLSIE_LD64_GOTTPREL_LO12_NC
TLSIE_LD_GOTTPREL_PREL19
TLSLE_MOVW_TPREL_G2
TLSLE_MOVW_TPREL_G1
TLSLE_MOVW_TPREL_G1_NC
TLSLE_MOVW_TPREL_G0
TLSLE_MOVW_TPREL_G0_NC
TLSLE_ADD_TPREL_HI12
TLSLE_ADD_TPREL_LO12
TLSLE_ADD_TPREL_LO12_NC
TLSLE_LDST8_TPREL_LO12
TLSLE_LDST8_TPREL_LO12_NC
TLSLE_LDST16_TPREL_LO12
TLSLE_LDST16_TPREL_LO12_NC
TLSLE_LDST32_TPREL_LO12
TLSLE_LDST32_TPREL_LO12_NC
TLSLE_LDST64_TPREL_LO12
TLSLE_LDST64_TPREL_LO12_NC
TLSDESC_LD_PREL19
TLSDESC_ADR_PREL21
TLSDESC_ADR_PAGE21
TLSDESC_LD64_LO12_NC
TLSDESC_ADD_LO12_NC
TLSDESC_OFF_G1
TLSDESC_OFF_G0_NC
TLSDESC_LDR
TLSDESC_ADD
TLSDESC_CALL
TLSLE_LDST128_TPREL_LO12
TLSLE_LDST128_TPREL_LO12_NC
TLSLD_LDST128_DTPREL_LO12
TLSLD_LDST128_DTPREL_LO12_NC
COPY
GLOB_DAT
JUMP_SLOT
RELATIVE
TLS_DTPREL64
TLS_DTPMOD64
TLS_TPREL64
TLSDESC
IRELATIVE
Members:
MIPS_NONE
MIPS16_16
MIPS_32
MIPS_REL32
MIPS_26
MIPS_HI16
MIPS_LO16
MIPS_GPREL16
MIPS_LITERAL
MIPS_GOT16
MIPS_PC16
MIPS_CALL16
MIPS_GPREL32
MIPS_UNUSED1
MIPS_UNUSED2
MIPS_UNUSED3
MIPS_SHIFT5
MIPS_SHIFT6
MIPS_64
MIPS_GOT_DISP
MIPS_GOT_PAGE
MIPS_GOT_OFST
MIPS_GOT_HI16
MIPS_GOT_LO16
MIPS_SUB
MIPS_INSERT_A
MIPS_INSERT_B
MIPS_DELETE
MIPS_HIGHER
MIPS_HIGHEST
MIPS_CALL_HI16
MIPS_CALL_LO16
MIPS_SCN_DISP
MIPS_REL16
MIPS_ADD_IMMEDIATE
MIPS_PJUMP
MIPS_RELGOT
MIPS_JALR
MIPS_TLS_DTPMOD32
MIPS_TLS_DTPREL32
MIPS_TLS_DTPMOD64
MIPS_TLS_DTPREL64
MIPS_TLS_GD
MIPS_TLS_LDM
MIPS_TLS_DTPREL_HI16
MIPS_TLS_DTPREL_LO16
MIPS_TLS_GOTTPREL
MIPS_TLS_TPREL32
MIPS_TLS_TPREL64
MIPS_TLS_TPREL_HI16
MIPS_TLS_TPREL_LO16
MIPS_GLOB_DAT
MIPS_PC21_S2
MIPS_PC26_S2
MIPS_PC18_S3
MIPS_PC19_S2
MIPS_PCHI16
MIPS_PCLO16
MIPS16_26
MIPS16_GPREL
MIPS16_GOT16
MIPS16_CALL16
MIPS16_HI16
MIPS16_LO16
MIPS16_TLS_GD
MIPS16_TLS_LDM
MIPS16_TLS_DTPREL_HI16
MIPS16_TLS_DTPREL_LO16
MIPS16_TLS_GOTTPREL
MIPS16_TLS_TPREL_HI16
MIPS16_TLS_TPREL_LO16
MIPS_COPY
MIPS_JUMP_SLOT
MIRCRO_MIPS_26_S1
MIRCRO_MIPS_HI16
MIRCRO_MIPS_LO16
MIRCRO_MIPS_GPREL16
MIRCRO_MIPS_LITERAL
MIRCRO_MIPS_GOT16
MIRCRO_MIPS_PC7_S1
MIRCRO_MIPS_PC10_S1
MIRCRO_MIPS_PC16_S1
MIRCRO_MIPS_CALL16
MIRCRO_MIPS_GOT_DISP
MIRCRO_MIPS_GOT_PAGE
MIRCRO_MIPS_GOT_OFST
MIRCRO_MIPS_GOT_HI16
MIRCRO_MIPS_GOT_LO16
MIRCRO_MIPS_SUB
MIRCRO_MIPS_HIGHER
MIRCRO_MIPS_HIGHEST
MIRCRO_MIPS_CALL_HI16
MIRCRO_MIPS_CALL_LO16
MIRCRO_MIPS_SCN_DISP
MIRCRO_MIPS_JALR
MIRCRO_MIPS_HI0_LO16
MIRCRO_MIPS_TLS_GD
MIRCRO_MIPS_TLS_LDM
MIRCRO_MIPS_TLS_DTPREL_HI16
MIRCRO_MIPS_TLS_DTPREL_LO16
MIRCRO_MIPS_TLS_GOTTPREL
MIRCRO_MIPS_TLS_TPREL_HI16
MIRCRO_MIPS_TLS_TPREL_LO16
MIRCRO_MIPS_GPREL7_S2
MIRCRO_MIPS_PC23_S2
MIRCRO_MIPS_PC21_S2
MIRCRO_MIPS_PC26_S2
MIRCRO_MIPS_PC18_S3
MIRCRO_MIPS_PC19_S2
Members:
NONE
ADDR32
ADDR24
ADDR16
ADDR16_LO
ADDR16_HI
ADDR16_HA
ADDR14
ADDR14_BRTAKEN
ADDR14_BRNTAKEN
REL24
REL14
REL14_BRTAKEN
REL14_BRNTAKEN
GOT16
GOT16_LO
GOT16_HI
GOT16_HA
PLTREL24
JMP_SLOT
RELATIVE
LOCAL24PC
REL32
TLS
DTPMOD32
TPREL16
TPREL16_LO
TPREL16_HI
TPREL16_HA
TPREL32
DTPREL16
DTPREL16_LO
DTPREL16_HI
DTPREL16_HA
DTPREL32
GOT_TLSGD16
GOT_TLSGD16_LO
GOT_TLSGD16_HI
GOT_TLSGD16_HA
GOT_TLSLD16
GOT_TLSLD16_LO
GOT_TLSLD16_HI
GOT_TLSLD16_HA
GOT_TPREL16
GOT_TPREL16_LO
GOT_TPREL16_HI
GOT_TPREL16_HA
GOT_DTPREL16
GOT_DTPREL16_LO
GOT_DTPREL16_HI
GOT_DTPREL16_HA
TLSGD
TLSLD
REL16
REL16_LO
REL16_HI
REL16_HA
Members:
NONE
ADDR32
ADDR24
ADDR16
ADDR16_LO
ADDR16_HI
ADDR16_HA
ADDR14
ADDR14_BRTAKEN
ADDR14_BRNTAKEN
REL24
REL14
REL14_BRTAKEN
REL14_BRNTAKEN
GOT16
GOT16_LO
GOT16_HI
GOT16_HA
JMP_SLOT
RELATIVE
REL32
ADDR64
ADDR16_HIGHER
ADDR16_HIGHERA
ADDR16_HIGHEST
ADDR16_HIGHESTA
REL64
TOC16
TOC16_LO
TOC16_HI
TOC16_HA
TOC
ADDR16_DS
ADDR16_LO_DS
GOT16_DS
GOT16_LO_DS
TOC16_DS
TOC16_LO_DS
TLS
DTPMOD64
TPREL16
TPREL16_LO
TPREL16_HI
TPREL16_HA
TPREL64
DTPREL16
DTPREL16_LO
DTPREL16_HI
DTPREL16_HA
DTPREL64
GOT_TLSGD16
GOT_TLSGD16_LO
GOT_TLSGD16_HI
GOT_TLSGD16_HA
GOT_TLSLD16
GOT_TLSLD16_LO
GOT_TLSLD16_HI
GOT_TLSLD16_HA
GOT_TPREL16_DS
GOT_TPREL16_LO_DS
GOT_TPREL16_HI
GOT_TPREL16_HA
GOT_DTPREL16_DS
GOT_DTPREL16_LO_DS
GOT_DTPREL16_HI
GOT_DTPREL16_HA
TPREL16_DS
TPREL16_LO_DS
TPREL16_HIGHER
TPREL16_HIGHERA
TPREL16_HIGHEST
TPREL16_HIGHESTA
DTPREL16_DS
DTPREL16_LO_DS
DTPREL16_HIGHER
DTPREL16_HIGHERA
DTPREL16_HIGHEST
DTPREL16_HIGHESTA
TLSGD
TLSLD
REL16
REL16_LO
REL16_HI
REL16_HA
Members:
AUTO
SECTION
HASH
RELOCATIONS
Members:
NONE
PLTGOT
DYNAMIC
OBJECT
Members:
UNKNOWN
ABI_TAG
HWCAP
BUILD_ID
GOLD_VERSION
PROPERTY_TYPE_0
GNU_BUILD_ATTRIBUTE_OPEN
GNU_BUILD_ATTRIBUTE_FUNC
CRASHPAD
Members:
UNKNOWN
LINUX
GNU
SOLARIS2
FREEBSD
NETBSD
SYLLABLE
Members:
UNKNOWN
PRSTATUS
PRFPREG
PRPSINFO
TASKSTRUCT
AUXV
SIGINFO
FILE
ARM_VFP
ARM_TLS
ARM_HW_BREAK
ARM_HW_WATCH
ARM_SYSTEM_CALL
ARM_SVE
I386_TLS
I386_IOPERM
I386_XSTATE
Members:
SOFT_FLOAT
VFP_FLOAT
UNKNOWN
EABI_VER1
EABI_VER2
EABI_VER3
EABI_VER4
EABI_VER5
Members:
NOREORDER
PIC
CPIC
ABI2
_32BITMODE
FP64
NAN2008
ABI_O32
ABI_O64
ABI_EABI32
ABI_EABI64
MACH_3900
MACH_4010
MACH_4100
MACH_4650
MACH_4120
MACH_4111
MACH_SB1
MACH_OCTEON
MACH_XLR
MACH_OCTEON2
MACH_OCTEON3
MACH_5400
MACH_5900
MACH_5500
MACH_9000
MACH_LS2E
MACH_LS2F
MACH_LS3A
MICROMIPS
ARCH_ASE_M16
ARCH_ASE_MDMX
ARCH_1
ARCH_2
ARCH_3
ARCH_4
ARCH_5
ARCH_32
ARCH_64
ARCH_32R2
ARCH_64R2
ARCH_32R6
ARCH_64R6
Members:
ABI
Members:
MACH_V2
MACH_V3
MACH_V4
MACH_V5
ISA_MACH
ISA_V2
ISA_V3
ISA_V4
ISA_V5