Domanda

Sto creando un file eseguibile ELF e devo sapere quali sezioni sono richieste dal sistema operativo per caricarlo ed eseguirlo.

Particolari:

OS:               Ubuntu 10.04 (64-bit)
Kernel version:   2.6.32-24
Architecture:     i386

Mi rendo conto che probabilmente sarebbe necessario quanto segue:

  • .testo
  • .Symtab
  • .rel.text

Ci sono altri?

È stato utile?

Soluzione

"Un tutorial vorticoso sulla creazione di eseguibili Elf davvero Teensy per Linux" Ha informazioni su come (AB) utilizzare le varie sezioni ELF per rendere un eseguibile il più piccolo possibile. Contiene anche un collegamento alla specifica ELF se hai bisogno di maggiori informazioni. (È anche una lettura abbastanza divertente.) Forse ti dirà cosa devi sapere?

Altri suggerimenti

Ho deciso di provare sistematicamente a stripping sezioni da un file ELF generato da GCC.

Sono stato in grado di rimuovere molte delle sezioni, ma queste non potevano essere rimosse e l'eseguibile ancora eseguono senza un errore di segmentazione:

.dynsym
.dynstr
.gnu.version_r
.rel.plt
.init
.plt
.text
.fini
.ctors
.dtors
.dynamic
.got.plt
.data
.strtab
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top