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

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

Linuxでバイナリがどのように構築されるかを理解する機会はありますか? (そして/または他のUNIX)

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

探してみましたが、readelfあまり見つかりませんでしたが、バイナリコード/部分などを分析する他の方法があるかもしれません。

抽出する方法を知っていますか?

ベストアンサー1

すべての場合に適用される一貫したアプローチはありませんが、1つのコンパイラで実行されている操作を検索して情報に基づいて推測できます。

GCCは最も簡単です。.commentGCCバージョン文字列(実行時に取得したものと同じ文字列gcc --version)を含むセクションを作成します。表示する方法があるかどうかはわかりませんが、readelf使用objdump方法は次のとおりです。

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

私はあなたの質問の残りの部分を無視したことに気づきました。フラグは通常どこにも保存されません。コメントセクションに表示される可能性が高いですが、この場合は見たことがありません。タイムスタンプの場所はCOFFヘッダーにありますが、ELFにはその場所がないため、コンパイル時間も使用できません。

おすすめ記事