This tutorial introduces libelf, a library for reading and writing object code in the Extensible Linking Format (ELF) file format.
– Getting started with libelf: obtaining a handle to an ELF object, establishing a working ELF version, and handling errors reported by libelf.
– How ELF data structures are laid out in-memory and on disk, the notions of “file representation” and “memory representation”, how to write applications that can handle non-native binaries.
– ELF Segments and the ELF Program Header Table, retrieving the program header table from an ELF executable and the meaning of the fields of a program header table entry.
– How data is stored inside ELF sections, the ELF Section Header Table, and how to traverse the sections in an ELF object.
– How to create new ELF objects: the rules for ordering individual API calls, the default object layout implemented by libelf, and how to specify custom layouts.
– ar archives: their structure, and …