The ELF header at the start of every ELF file. More...
#include <elf.h>
Data Fields | |
| struct { | |
| uint8_t EI_MAG0 | |
| ELF magic (0x7F) | |
| uint8_t EI_MAG1 | |
| ELF magic ('E') | |
| uint8_t EI_MAG2 | |
| ELF magic ('L') | |
| uint8_t EI_MAG3 | |
| ELF magic ('F') | |
| uint8_t EI_CLASS | |
| 32 or 64 bit | |
| uint8_t EI_DATA | |
| little or big endian | |
| uint8_t EI_VERSION | |
| ELF version. | |
| uint8_t EI_OSABI | |
| which ABI to use | |
| uint32_t __pad0__: 32 | |
| unused | |
| } | e_ident |
| ELF identification data. | |
| uint16_t | e_type |
| object type (relocatable or executable) | |
| uint16_t | e_machine |
| targeted ISA (=Instruction Set Architecture) | |
| uint32_t | e_version |
| ELF version. | |
| void * | e_entry |
| entry point | |
| uint32_t | e_phoff |
| program header table (important for executables) | |
| uint32_t | e_shoff |
| section header table (important for relocatables) | |
| uint32_t | e_flags |
| architecture specific flags | |
| uint16_t | e_ehsize |
| header size (52 for 32-bit) | |
| uint16_t | e_phentsize |
| size of a single program header entry | |
| uint16_t | e_phnum |
| number of program header entries | |
| uint16_t | e_shentsize |
| size of a single section header entry | |
| uint16_t | e_shnum |
| number of section header entries | |
| uint16_t | e_shstrndx |
| index of the section that contains section strings | |
The ELF header at the start of every ELF file.
Here: 32 bit and little endian.