0

PEiD やその他のツールはコンパイラの種類をどのように検出しますか? 検出プロセスは動的にできますか? そしてどうやって?PEファイル処理以外の手順はありますか?

4

2 に答える 2

0

PEiD がどのように機能するかは完全にはわかりませんが、これを実現するにはさまざまな方法があると思います。特に、生成されたコードからさまざまな種類の「指紋」を探したいとします。たとえば、コンパイラがバイナリで既知の文字列を処理する方法 (C のようにゼロで終了するか、Pascal のようにテキストの前に長さの値がある)、または関数のスタック フレームを設定する方法です。次に、一般的なコード構成、ループ、条件などの特定の構造の処理方法、またはメイン関数を呼び出す前のランタイムの設定を探します。別のアプローチは、使用されているランタイムに関する洞察を得ることができるインポートと依存関係を調べることです。

もちろん、最も簡単な方法は、実際にコードをまったく見ずに、バイナリ ファイルに残っているメタデータを確認することです。多くの場合、あらゆる種類のメタデータ専用のセクションがあり、コンパイルに使用された正確なコンパイラとバージョンを正確に明らかにできるコメントさえあります。ただし、これらは簡単になりすますことができますが、優れた検出器はこれを考慮して、手がかりを得るために実際のコードを調べます。

于 2012-09-04T22:13:21.060 に答える
0

コンパイラ タイプの検出は、EXE ファイルのコンパイラ シグネチャに基づいています。

于 2012-09-03T19:07:09.083 に答える