Trovare le versioni della libreria a cui era collegata una libreria


8

Ho una libreria che è stata compilata su una macchina Ubuntu sconosciuta, e vorrei determinare quale versione di Ubuntu aveva quella macchina al momento della compilazione.

La mia idea era quella di provare a trovare le versioni delle diverse librerie utilizzate (ad esempio il kernel), sapendo che queste versioni sono cambiate con versioni diverse. Iv'e ha provato a usare nme ldd, ma non riesco a trovare alcuna informazione rilevante.

Eventuali suggerimenti?

Risposte:


5

Può essere

 readelf -a 

Visualizza informazioni sui file ELF. Se l'oggetto che stai studiando contiene ancora la sezione commenti, puoi provare a estrarla

 readelf -p .comment yourfile

Per esempio

$ cat test.c
int main () {
  return 0;
}
$ gcc test.c
$ readelf -p .comment a.out

String dump of section '.comment':
  [     0]  GCC: (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1

objdump potrebbe fornire le stesse informazioni.

Se la sezione dei commenti viene eliminata, è possibile provare a leggere le informazioni sulla versione del simbolo di runtime GCC dal readelf -acomando se si tratta di una libreria compilata c ++. Si noti che questa è la versione dei simboli fornita al compilatore e non necessariamente la versione del compilatore. Non so quanto sarebbe utile rintracciare la versione di Ubuntu.


No .. Non sembra promettente: OS / ABI: UNIX - System V ABI Versione: 0
nbubis

Potresti spiegare come stai andando a fare questo? Iv ha analizzato l'output di se stesso e non ha trovato nulla di utile. Grazie!
nbubis,

Ho modificato la risposta per contenere un esempio.
Jari Laamanen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.