Quali sezioni sono richieste per un eseguibile ELF utilizzabile?
-
26-09-2019 - |
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?
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