468 B

ELF

Basic structure

  1. ELF header (0x00 - 0x40)
  2. Program header (0x40 - 0x78)
  3. Padding (0x78 - 0x80)
  4. Machine code (0x80)

Entry point

The entry point is defined in the first 64 bytes (ELF header).

Base address

The minimum base address is controlled by the mmap settings:

sysctl vm.mmap_min_addr

Usually, this value is 65536 (0x1000).

Initialization in Linux

See /lib/modules/$(uname -r)/build/arch/x86/include/asm/elf.h.