Linuxでバイナリがどのように構築されたかを知る機会はありますか? (および/または他のUnix)
コンパイラ、バージョン、時間、フラグなど…
readelf
を見ました あまり見つかりませんでしたが、バイナリコード/セクションなどを分析する他の方法があるかもしれません…
抽出する方法を知っているものはありますか?
承認された回答:
普遍的な方法はありませんが、1つのコンパイラでのみ実行されることを探すことで、知識に基づいた推測を行うことができます。
GCCが最も簡単です。 .comment
を書き込みます GCCバージョン文字列(gcc --version
を実行した場合に取得するのと同じ文字列)を含むセクション )。 readelf
で表示する方法があるかどうかわかりません 、ただしobjdump
それは:
objdump -s --section .comment /path/binary
私はあなたの質問の残りを無視したことに気づきました。通常、フラグはどこにも保存されません。彼らはおそらくコメントセクションにあるでしょうが、私はそれが行われるのを見たことがありません。 COFFヘッダーにはタイムスタンプ用のスポットがありますが、ELFには同等のものがないため、コンパイル時間も利用できないと思います