Program običajno sestavljen iz več ločenih delov, vsak del lahko pisan v svojem programskem jeziku

  • zbirnik dele predstavi v standardni obliki - objektna datoteka
  • povezovalnik vse dele poveže v celoto

Sestavni deli

Objektna koda
Predviden nalagalni naslov / prenaslovitvena tabela:

  • absolutni naslov absolutni nalagalni naslov
  • relativni naslov prenaslovitvena tabela
    Globalni simboli zapisani v 2 tabelah:
  • tabela vstopnih simbolov (EXTREF): ime, vrednost
  • tabela izstopnih simbolov (EXTDEF): ime, mesta pojavitve simbola

Standardi

  • COFF - 4C 01: predhodnik ELF temelji na formatu a.out, Unix system V in Windows
  • DOS MZ - 4D 5A: izvršljive datoteke v Windowsih
  • ELF - 7F 45 4C 46: vsi Linux sistemi
  • Mach-O - CAFEBABE / FEEDFACE: MacOS

ELF

ELF zaglavje

Identifikacija formata:

  • magična številka
  • format: 32b / 64b
  • kodiranje podatkov: little / big endian, dvojiški komplement, …
  • verzija
    Tip modula: objektni / izvršljiv
    Podatki o sekcijah:
  • offset do opisov sekcij
  • velikost posameznega opisa sekcije
  • število opisov sekcij
  • indeks sekcije, ki vsebuje podatke ostalih sekcij

Opis sekcije

  • ime: 4B en od tipov opisa sekcije hrani vsa imena, tukaj hranjen le indeks imena
  • tip sekcije - biti / stringi
  • offset, len: kje v datoteki se sekcija nahaja, in koliko je dolga

Simbolna tabela

  • ime
  • vrednost
  • velikost