GNU/Linux >> Linux の 問題 >  >> Linux

Linux – Elfバイナリからコンパイラ情報を取得できますか?

Linuxでバイナリがどのように構築されたかを知る機会はありますか? (および/または他のUnix)

コンパイラ、バージョン、時間、フラグなど…

readelfを見ました あまり見つかりませんでしたが、バイナリコード/セクションなどを分析する他の方法があるかもしれません…

抽出する方法を知っているものはありますか?

承認された回答:

普遍的な方法はありませんが、1つのコンパイラでのみ実行されることを探すことで、知識に基づいた推測を行うことができます。

GCCが最も簡単です。 .commentを書き込みます GCCバージョン文字列(gcc --versionを実行した場合に取得するのと同じ文字列)を含むセクション )。 readelfで表示する方法があるかどうかわかりません 、ただしobjdump それは:

objdump -s --section .comment /path/binary

私はあなたの質問の残りを無視したことに気づきました。通常、フラグはどこにも保存されません。彼らはおそらくコメントセクションにあるでしょうが、私はそれが行われるのを見たことがありません。 COFFヘッダーにはタイムスタンプ用のスポットがありますが、ELFには同等のものがないため、コンパイル時間も利用できないと思います


Linux
  1. dmidecode:Linuxでシステムハードウェア情報を取得する

  2. 生のバイナリを出力する gcc を取得する方法はありますか?

  3. コンテナー自体から Docker Linux コンテナー情報を取得するにはどうすればよいですか?

  1. Linux SOSreport からファイバー チャネル HBA 情報を取得する方法

  2. bashからネットマスクを取得するには?

  3. Linux 内から BIOS バージョンを取得する方法はありますか?

  1. Linux で Ctrl-Alt-F6 を使用しましたが、画面が元に戻りません

  2. Linux でのフラット バイナリ ファイルの実行

  3. Linux(BASH)で数値から上限整数を取得する