Linuxでバイナリがどのように構築されるかを理解する機会はありますか? (そして/または他のUNIX)
コンパイラ、バージョン、時間、フラグなど...
探してみましたが、readelf
あまり見つかりませんでしたが、バイナリコード/部分などを分析する他の方法があるかもしれません。
抽出する方法を知っていますか?
ベストアンサー1
すべての場合に適用される一貫したアプローチはありませんが、1つのコンパイラで実行されている操作を検索して情報に基づいて推測できます。
GCCは最も簡単です。.comment
GCCバージョン文字列(実行時に取得したものと同じ文字列gcc --version
)を含むセクションを作成します。表示する方法があるかどうかはわかりませんが、readelf
使用objdump
方法は次のとおりです。
objdump -s --section .comment /path/binary
私はあなたの質問の残りの部分を無視したことに気づきました。フラグは通常どこにも保存されません。コメントセクションに表示される可能性が高いですが、この場合は見たことがありません。タイムスタンプの場所はCOFFヘッダーにありますが、ELFにはその場所がないため、コンパイル時間も使用できません。