EXEファイルに使用されるコンパイラを検出する


18

実行可能ファイルの構築に使用されたコンパイラを検出する(または隠す)方法はありますか?

回答:


12

PEiDはかなり良いです

PEiDは、PEファイル用の最も一般的なパッカー、暗号化、コンパイラを検出します。現在、PEファイルで600を超えるさまざまな署名を検出できます。

PEiDは、すでに存在する他の識別子と比較すると、いくつかの点で特別です!

  1. それは素晴らしいGUIを備えており、インターフェースは本当に直感的でシンプルです。
  2. 検出率は、他のどの識別子よりも優れています。
  3. 変更されたファイルや不明なファイルの高度な検出のための特別なスキャンモード。
  4. シェル統合、コマンドラインサポート、Always on topおよびDrag'n'Drop機能。
  5. 再帰を使用した複数のファイルとディレクトリのスキャン。
  6. タスクビューアーとコントローラー。
  7. Generic OEP FinderやKrypto ANALyzerなどのプラグインとのプラグインインターフェイス。
  8. さらに優れた検出のために使用される追加のスキャン技術。
  9. ヒューリスティックスキャンオプション。
  10. 新しいPEの詳細、インポート、エクスポート、TLSビューアー
  11. 新しく組み込まれたクイック逆アセンブラ。
  12. 新しいビルトイン16進ビューア。
  13. ユーザーが更新できる外部署名インターフェイス。

4
「PEiDは、PEファイル用の最も一般的な[...]コンパイラを検出します。」それはreadmeに書かれていることです-実際にはそれを実現する方法はわかりません
-mbx

@Sathya注、含まれているリンクは現在無効です。
DuckMaestro

@DuckMaestro代替リンクwiti更新
Sathyajith Bhatさん

コンパイラーを検出できない場合、Nothing found [Overlay] *のようなものが表示されます-そのツールを初めて使用する場合、混乱を招きます。
mbx 14年

「先のサイトには有害なプログラムが含まれています」-Google Chrome。より良いリンクはこちらです。
ベンN

8

* nixユーティリティ文字列を試してください。を使用strings -a foo.exe すると、結果の山が生成されます。ファイルにリダイレクトして、お気に入りのエディターで調べます。Borland C ++-Copyright 2002 Borland Corporationなど、特定のコンパイラに直接関係する行が表示される場合があります。インクルードパスなど、特定のコンパイラが使用されたことを示す行のみを検索できる場合があります。

Stringsは、cygwinの一部として、またはmicrosoft sysinternalsパッケージの一部として、Windowsでも使用できます


それは私だけでいくつかのdll名がプロジェクトのコンパイラ名は表示されません
エドゥアルド・ザビエル


1

無料ではありませんが、IDA Proには非常に優れたコンパイラ検出機能があります。もちろん主な機能ではありませんが、すばらしい追加機能です。


0

対応するASCII文字が表示された16進ダンプで、EXEファイルの最初の数十バイトを調べる方法を見つけることができる場合、通常は使用されているコンパイラを示します。


1
exeファイルは、特定のコンパイラ版(Visual Studioの2010 ProfessionalまたはEnterpriseまたはエクスプレス)でビルドした場合、誰かまたはいくつかのソフトウェアを見つけることができる場合、私は思っていた
レムス離合

通常、これは正しくありません。PEファイルの最初の部分はDOSスタブです。これは通常、「このプログラムはDOSモードでは実行できません」などのようなものを印刷するプログラムです。
lesderid

-1

「dependency walker」を使用して、リンクするランタイムライブラリを確認できます。MSVCP100はMicrosoft Visual C ++ 2010 x86です

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.