ELF

Typedefs

typedef struct Elf_Header_t Elf_Header_t
struct Elf_Header_t

Public Members

uint8_t identity[LIEF_ELF_EI_NIDENT]
enum LIEF_ELF_E_TYPE file_type
enum LIEF_ELF_ARCH machine_type
enum LIEF_ELF_VERSION object_file_version
uint64_t entrypoint
uint64_t program_headers_offset
uint64_t section_headers_offset
uint32_t processor_flags
uint32_t header_size
uint32_t program_header_size
uint32_t numberof_segments
uint32_t section_header_size
uint32_t numberof_sections
uint32_t name_string_table_idx

Typedefs

typedef struct Elf_Binary_t Elf_Binary_t

Functions

Elf_Binary_t *elf_parse(const char *file)

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

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

Update LIEF::ELF::Header object

struct Elf_Binary_t
#include <Binary.h>

LIEF::ELF::Binary C Handler

Public Members

void *handler
const char *name
const char *interpreter
enum LIEF_ELF_ELF_CLASS type
Elf_Header_t header
Elf_Section_t **sections
Elf_Segment_t **segments
Elf_DynamicEntry_t **dynamic_entries
Elf_Symbol_t **dynamic_symbols
Elf_Symbol_t **static_symbols

Typedefs

typedef struct Elf_Section_t Elf_Section_t
struct Elf_Section_t

Public Members

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

Typedefs

typedef struct Elf_Segment_t Elf_Segment_t
struct Elf_Segment_t

Public Members

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

Typedefs

typedef struct Elf_Symbol_t Elf_Symbol_t
struct Elf_Symbol_t

Public Members

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

Whether or not the symbol is exported

bool is_imported

Whether or not the symbol is imported

Typedefs

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

Public Members

uint64_t tag
uint64_t value
struct Elf_DynamicEntry_Library_t

Public Members

uint64_t tag
uint64_t value
const char *name
struct Elf_DynamicEntry_SharedObject_t

Public Members

uint64_t tag
uint64_t value
const char *name
struct Elf_DynamicEntry_Array_t

Public Members

uint64_t tag
uint64_t value
uint64_t *array
struct Elf_DynamicEntry_Rpath_t

Public Members

uint64_t tag
uint64_t value
const char *rpath
struct Elf_DynamicEntry_RunPath_t

Public Members

uint64_t tag
uint64_t value
const char *runpath
struct Elf_DynamicEntry_Flags_t

Public Members

uint64_t tag
uint64_t value
enum LIEF_ELF_DYNAMIC_FLAGS *flags
enum LIEF_ELF_DYNAMIC_FLAGS_1 *flags_1

Defines

_LIEF_EN(N)
_LIEF_EN_2(N, TYPE)
_LIEF_EI(X)

Functions

const char *SYMBOL_BINDINGS_to_string(enum LIEF_ELF_SYMBOL_BINDINGS e)
const char *E_TYPE_to_string(enum LIEF_ELF_E_TYPE e)
const char *VERSION_to_string(enum LIEF_ELF_VERSION e)
const char *ARCH_to_string(enum LIEF_ELF_ARCH e)
const char *SEGMENT_TYPES_to_string(enum LIEF_ELF_SEGMENT_TYPES e)
const char *DYNAMIC_TAGS_to_string(enum LIEF_ELF_DYNAMIC_TAGS e)
const char *ELF_SECTION_TYPES_to_string(enum LIEF_ELF_ELF_SECTION_TYPES e)
const char *ELF_SECTION_FLAGS_to_string(enum LIEF_ELF_ELF_SECTION_FLAGS e)
const char *ELF_SYMBOL_TYPES_to_string(enum LIEF_ELF_ELF_SYMBOL_TYPES e)
const char *ELF_CLASS_to_string(enum LIEF_ELF_ELF_CLASS e)
const char *ELF_DATA_to_string(enum LIEF_ELF_ELF_DATA e)
const char *OS_ABI_to_string(enum LIEF_ELF_OS_ABI e)
const char *DYNAMIC_FLAGS_to_string(enum LIEF_ELF_DYNAMIC_FLAGS e)
const char *DYNAMIC_FLAGS_1_to_string(enum LIEF_ELF_DYNAMIC_FLAGS_1 e)

Functions

bool is_elf(const char *file)

Check if the given file is an ELF one.