Encontrar las versiones de biblioteca con las que se vinculaba una biblioteca

8

Tengo una biblioteca que se compiló en una máquina Ubuntu desconocida, y me gustaría determinar qué versión de Ubuntu tenía esa máquina en el momento de la compilación.

Mi idea era tratar de encontrar las versiones de las diferentes bibliotecas utilizadas (por ejemplo, el núcleo), sabiendo que estas versiones cambiaron con diferentes versiones. Intenté usar nmy ldd, pero parece que no puedo encontrar ninguna información relevante.

¿Alguna sugerencia?

nbubis
fuente

Respuestas:

5

Tal vez

 readelf -a 

Muestra información sobre archivos ELF. Si el objeto que está estudiando todavía contiene la sección de comentarios, puede intentar extraerlo

 readelf -p .comment yourfile

Por ejemplo

$ 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 podría proporcionar la misma información.

Si se elimina la sección de comentarios, puede intentar leer la información de la versión del símbolo de tiempo de ejecución GCC del readelf -acomando si se trata de una biblioteca compilada en c ++. Tenga en cuenta que esa es la versión de los símbolos suministrados al compilador y no necesariamente la versión del compilador. No sé lo útil que sería rastrear la versión de Ubuntu.

Jari Laamanen
fuente
No .. No parece prometedor: OS / ABI: UNIX - System V Versión ABI: 0
nbubis
¿Podrías explicar cómo haces para hacer esto? He pasado por la salida de lectura y no he encontrado nada útil. ¡Gracias!
nbubis
He editado la respuesta para contener un ejemplo.
Jari Laamanen