Recherche des versions de bibliothèque auxquelles une bibliothèque a été liée


8

J'ai une bibliothèque qui a été compilée sur une machine Ubuntu inconnue, et j'aimerais déterminer quelle version d'Ubuntu cette machine avait au moment de la compilation.

Mon idée était d'essayer de trouver les versions des différentes bibliothèques utilisées (par exemple le noyau), sachant que ces versions ont changé avec différentes versions. Iv'e a essayé d'utiliser nmet ldd, mais je n'arrive pas à trouver d'informations pertinentes.

Aucune suggestion?

Réponses:


5

Peut être

 readelf -a 

Il affiche des informations sur les fichiers ELF. Si l'objet que vous étudiez contient toujours la section des commentaires, vous pouvez essayer de l'extraire en

 readelf -p .comment yourfile

Par exemple

$ 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 pourrait fournir les mêmes informations.

Si la section de commentaires est supprimée, vous pouvez essayer de lire les informations de version du symbole d'exécution GCC à partir de la readelf -acommande s'il s'agit d'une bibliothèque compilée c ++. Notez que c'est la version des symboles fournis au compilateur et pas nécessairement la version du compilateur. Je ne sais pas à quel point cela serait utile pour retrouver la version d'Ubuntu.


Non. Cela ne semble pas prometteur: OS / ABI: UNIX - System V Version ABI: 0
nbubis

Pourriez-vous expliquer comment vous vous y prenez? Iv'e a parcouru la sortie readelf et n'a rien trouvé d'utile. Merci!
nbubis

J'ai édité la réponse pour contenir un exemple.
Jari Laamanen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.