COFF
Common Object File Format ( COFF ) er et format til eksekverbare filer, objektkodefiler og dynamiske biblioteker. Formatet dukkede op i Unix System V , og erstattede det tidligere a.out . Fungerede som grundlag for udvidede specifikationer såsom XCOFF og ECOFF og blev efterfølgende afløst af ELF -formatet . Bruges fortsat på nogle UNIX-lignende operativsystemer , på Microsoft Windows og andre systemer.
Filformat
En COFF-fil inkluderer en filheader, en valgfri header, en sektionstabel og en eller flere kode- og datasektioner.
COFF filoverskrift
Partiskhed |
Længde |
Mark |
Beskrivelse
|
0 |
2 |
f_magi |
Identifikator for den type maskine, hvorpå filen kan køres
|
2 |
2 |
f_nscns |
Antal sektioner
|
fire |
fire |
f_timdat |
Lavere 32 bit af antallet af sekunder siden 1. januar 1970 kl. 00:00, hvor filen blev oprettet
|
otte |
fire |
f_symptr |
Placering i symboltabelfil (bruges til fejlretning)
|
12 |
fire |
f_nsyms |
Antal elementer i symboltabellen
|
16 |
2 |
f_opthdr |
Yderligere headerstørrelse for objektfiler er nul
|
atten |
2 |
f_flag |
Flag, der angiver filattributter
|
Den valgfri filoverskrift indeholder de oplysninger, som indlæseren kræver. Hovedstørrelsen kan variere afhængigt af systemet og versionen.
Yderligere header (til MIPS)
Partiskhed |
Længde |
Mark |
Beskrivelse
|
0 |
2 |
magi |
Filtype
|
2 |
2 |
vstamp |
Version
|
fire |
fire |
tsize |
Den samlede størrelse af alle sektioner, der indeholder eksekverbar kode
|
otte |
fire |
dsize |
Den samlede størrelse af alle sektioner, der indeholder initialiserede data
|
12 |
fire |
bstørrelse |
Den samlede størrelse af alle sektioner, der indeholder ikke-initialiserede data
|
16 |
fire |
indgang |
Programindgangspunktsadresse (0 - hvis ikke brugt)
|
tyve |
fire |
tekst_start |
Hent kode til adresse
|
24 |
fire |
data_start |
Initialiseret dataindlæsningsadresse
|
28 |
fire |
bss_start |
Placeringsadresse for ikke-initialiserede data
|
32 |
fire |
gprmask |
|
36 |
fire |
cprmas |
|
40 |
fire |
gp_værdi |
|
Sektionstabellen er placeret direkte bag den ekstra overskrift. Hver række i tabellen er overskriften på det tilsvarende afsnit.
Sektionstabelrække
Partiskhed |
Længde |
Mark |
Beskrivelse
|
0 |
otte |
s_navn |
Sektionsnavn
|
otte |
fire |
s_paddr |
Fysisk adresse
|
12 |
fire |
s_vaddr |
Virtuel adresse
|
16 |
fire |
s_størrelse |
Sektionsstørrelse
|
tyve |
fire |
s_scnpt |
Sektionsposition i filen
|
28 |
fire |
s_relptr |
Position i sektionsadresseindstillingstabelfilen
|
32 |
fire |
s_lnnoptr |
|
36 |
2 |
s_nreloc |
Antal elementer i adresseindstillingstabellen
|
38 |
2 |
s_nlnno |
|
40 |
fire |
s_flag |
Flag
|
Links