versioni dei file ELF
-
05-09-2019 - |
Domanda
Sto lavorando su un clone del comando elfdump
.
Il mio programma funziona bene quando funziona elfdump -ecps *file*
su tutti i file eseguibili. Tuttavia, quando eseguo il mio programma su un file di libreria, diciamo libc.so, esso stampa un numero di versione non corretta per tutti i simboli nella sezione .symtab (in particolare sono tutti pari a zero). Ho guardato oltre le tonnellate di documentazione di volte, ma non riesco a capire perché questo sta accadendo.
Qualcuno può fornire alcuni suggerimenti? O forse come rilevare se la sua una libreria o non così ho potuto solo hard-code uno 0 nella?
Soluzione
È possibile determinare se si sta eseguendo contro una libreria condivisa da controllare per vedere se il campo è E_TYPE ET_DYN, credo. (Uomo elf (5))
C'è un articolo da Ulrich Drepper che copre il glibc per-simbolo delle versioni trucchi in ELF. Forse c'è informazioni aggiuntive lì che non hai incontrato prima. Le pagine man su Linux non sembrano coprire le informazioni per-simbolo delle versioni nella documentazione ELF.