ライブラリがリンクされているライブラリのバージョンを探す

ライブラリがリンクされているライブラリのバージョンを探す

未知のUbuntuシステムにコンパイルされたライブラリがあり、そのシステムがコンパイルされたUbuntuのバージョンを確認したいと思います。

私の考えは、使用されているさまざまなライブラリ(カーネルなど)のバージョンを探し、これらのバージョンがバージョンに応じて変更されることを知っていることです。試してみましたnmが、lddこれに関する情報が見つからないようです。

どんな提案がありますか?

答え1

おそらく

 readelf -a 

ELFファイルに関する情報を表示します。作業中のオブジェクトにまだコメントセクションが含まれている場合は、次のようにコメントセクションを抽出できます。

 readelf -p .comment yourfile

例えば

$ 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同じ情報を提供することができます。

readelf -aコメント部分が削除された場合C ++コンパイルライブラリの場合は、コマンドからGCCランタイムシンボルのバージョン情報を読み取ることができます。これは、コンパイラに提供されるシンボリックバージョンではなく、必ずしもコンパイラバージョンである必要はありません。 Ubuntuのバージョンを追跡するのがどれほど役に立つのかわかりません。

関連情報