Quello che già so:
Un eseguibile ELF ha un numero di sezioni, ovviamente le sezioni .text e .data vengono caricate in memoria poiché queste sono le parti principali del programma. Ma affinché un programma funzioni, ha bisogno di più informazioni, soprattutto se collegato in modo dinamico.
Quello che mi interessa sono sezioni come .plt, .got, .dynamic, .dynsym, .dynstr eccetera. Le parti dell'ELF che sono responsabili del collegamento delle funzioni agli indirizzi.
Da quello che sono riuscito a capire finora, è che cose come .symtab e .strtab non vengono caricate (o non rimangono) nella memoria. Ma .dynsym e .dynstr sono usati dal linker? Rimangono nella memoria? Posso accedervi dal codice del programma?
E ci sono parti di un eseguibile che risiedono nella memoria del kernel?
Il mio interesse per questo è principalmente forense, ma qualsiasi informazione su questo argomento sarà di aiuto. Le risorse che ho letto su queste tabelle e sul collegamento dinamico sono di livello più elevato, spiegano solo il funzionamento, non nulla di pratico sui contenuti in memoria.
Fammi sapere se qualcosa non è chiaro sulla mia domanda.