特定の Windows 実行可能ファイルをコンパイルおよびビルドするために使用されたコンパイラを検出する信頼できる方法はありますか?
これだけではトピックが広すぎるので、次のように絞り込みます。
- C ファミリーの言語 (C、C++、C#) にしか興味がない
- この情報を隠す目的で実行可能ファイルが改ざんされていないと仮定しましょう。
- Visual Studio と最も有名な gnu コンパイラで十分なので、非常に古い、または広く使用されていないコンパイラを処理する必要はありません。
C# の場合、Visual Studio に同梱されているコンパイラが使用されていることは明らかですが、この場合、Studio のバージョン (年) と型 (express など) を取得できますか?
編集:
ヒューリスティックを使用する必要があるため、答えから判断するのは難しく、常に信頼できるとは限りません。では、実行可能ファイルにある種の「透かし」を意図的に挿入するコンパイラはありますか? もしあれば、Visual Studioはそのようなコンパイラである可能性があると推測していました(他に何もなければ、誰かが無料の高速版を使用したのか、それとも公式に購入したものとは別のバージョンを使用したのかを知るためだけにそれを行っていると想像できます)。しかし、Googleで決定的な答えを見つけることができませんでした。