特定のライブラリに依存するもの(MFC/CLRなど)は、参照しているDLLを解析することで判別できます。
Dependency Walkerでこういった情報は見れるので、それを参考にできます。
http://www.altech-ads.com/product/10000783.htm
さらに.NETやVBはランタイムが必要なのでそこで判別できます。
他のアプローチとしては、
・ボタンにチェックマークなどのアイコンがあるものはDelphiである可能性が高い。
・メニューバーとツールバーがOffice2000風、2003風のものはそれぞれ.NET1.1、2.0である可能性が高い。
・高機能エディタはほとんどがDelphi(TEditorのシェアが非常に高いため)
・ボタンの大きさやコントロールの間隔が不自然なのはVBである可能性が高い。
・コントロールの癖からライブラリ⇒開発環境を推定する。
長々と書きましたが、結局のところ慣れというか各開発環境の知識が必要になります。
昔からある方法だとstringsというコマンドを使ってexeファイル中の文字列を探すという方法が知られています。
stringsは大昔からあるコマンドで、Win32にもいくつか移植されています。
たとえば、以下の物が有ります。
http://www.microsoft.com/technet/sysinternals/Miscellaneous/Stri...
コマンドプロンプトを開いて以下のように打ち込むと使用したライブラリ等がわかることが有ります。
(strings.exeをc:\toolsにおいた場合です。 適当にstrings.exeにパスを通してください。)
C:\>c:\tools\strings.exe 調べたい実行ファイル.exe | more
いくつかのプログラムを調べてみたら以下のような文字列が見あたりました。
SOFTWARE\Borland\Delphi\RTL
This application cannot run using the active version of the Microsoft .NET Runtime
Microsoft Visual C++ Runtime Library
へぇ~これすごいですね!おもしろいのでいくつかやってみました。BitTorrent.exeはPythonできてるのか。
PEiDというソフトを使えばアプリケーションが何で作られたのか簡単に知ることができます。
使い方はダウンロードしたファイルを解凍してPEiD.exeを実行し、Fileの横の...をクリックし、解析したいアプリケーションを読み込めば下の空欄に作成に使われたソフトが表示されるので(Microsoft Visual C++など)何で作られたのか知ることができます。
PEiDダウンロードURL http://www.peid.info/files/PEiD-0.94-20060510.zip
これはすごい!ついにキターーって感じです。こんなのがあるんですね!
なるほどstrings.exeで調べた結果と大体おなじでした。
あと、解析結果で調べてASPackとかEXEを保護するソフトの存在を知りました。
EXEを解析できないようにするってのもあるのか・・・そりゃそうですよね。勉強になります。
ありがとうございます。試してみました。結局DDLがどの開発環境のものかの知識が必要ということですね。参考になります。