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