Suchen der Bibliotheksversionen, mit denen eine Bibliothek verknüpft wurde

8

Ich habe eine Bibliothek, die auf einem unbekannten Ubuntu-Computer kompiliert wurde, und ich möchte feststellen, welche Ubuntu-Version dieser Computer zum Zeitpunkt der Kompilierung hatte.

Meine Idee war es, die Versionen der verschiedenen verwendeten Bibliotheken (z. B. des Kernels) zu finden, da ich wusste, dass sich diese Versionen mit verschiedenen Versionen geändert haben. Ich habe versucht, nmund zu verwenden ldd, aber ich kann anscheinend keine relevanten Informationen finden.

Irgendwelche Vorschläge?

nbubis
quelle

Antworten:

5

Könnte sein

 readelf -a 

Es werden Informationen zu ELF-Dateien angezeigt. Wenn das Objekt, das Sie untersuchen, noch den Kommentarbereich enthält, können Sie versuchen, ihn mit zu extrahieren

 readelf -p .comment yourfile

Zum Beispiel

$ 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 könnte die gleichen Informationen liefern.

Wenn der Kommentarbereich entfernt ist, können Sie versuchen, die Versionsinformationen des GCC-Laufzeitsymbols aus dem readelf -aBefehl zu lesen, wenn es sich um eine C ++ - kompilierte Bibliothek handelt. Beachten Sie, dass dies die Version der Symbole ist, die dem Compiler zur Verfügung gestellt werden, und nicht unbedingt die Version des Compilers. Ich weiß nicht, wie nützlich das wäre, um die Ubuntu-Version aufzuspüren.

Jari Laamanen
quelle
Nein .. Es sieht nicht vielversprechend aus: OS / ABI: UNIX - System V ABI Version: 0
nbubis
Können Sie erklären, wie Sie dies tun? Ich habe die Readelf-Ausgabe durchgesehen und nichts Nützliches gefunden. Vielen Dank!
Nbubis
Ich habe die Antwort so bearbeitet, dass sie ein Beispiel enthält.
Jari Laamanen