質問: 私は、アプリケーションのマシンコードを見ているとき、どのコンパイラ(そしておそらくはバージョン)がそれを生成するのに使われたかを示す、生成されたマシンコードから分かるヒントとパターンがありますか? アプリケーションを生成するために使用されるコンパイラを知っていると、生成されたオブジェクトからソースコードの内容にリバースエンジニアリングするのに役立ちますか?
回答: マシンコードを見ると、通常、生成されたバイナリがどのようにスクラブされていないかを追うことができる "トレイル"があります。 !enter image description here:たとえば、私は今あなたが`hexedit`ようなツールを取る場合は、マシンコードに見ることができる情報を建てる含むセクションがある標準オプション`gcc -Wall hello.c`と私のLinuxボックス上でGCCを使用して、小さな「Hello World」アプリケーションを生成しました 私はGCCバージョン4.6.3でこれを作成しました。他のコンパイラには、他の種類のシグネチャMicrosoft's "rich" signatureがあります。