2

実行可能ファイルを分析して検出するツールはありますか?-使用されているプログラミング言語(コンパイラ)、-使用されているフレームワーク(Qt、Gtk、.Net、WxWidgetsなど)-その他の有用な情報(圧縮など)。

プログラミング言語を区別するのが難しい場合があることは知っていますが(特にCまたはPascal exeの場合)、使用されている言語またはコンパイラーを区別することは可能ですか?(Delphiはexeを異なる方法で生成します。たとえば、VB6も同様です)。

それは可能かもしれません例えば。dll、ヘッダーなどの依存関係分析を使用します。

ありがとう。

4

4 に答える 4

3

GNUでは、いくつかのツールを使用して、必要な情報を推測することができます。

  • バイナリにリンクされた共有ライブラリを解決するためのldd
  • バイナリによってインポート/エクスポートされたシンボルを一覧表示するnm
  • バイナリに埋め込まれた文字列をダンプできる文字列
  • objdumpも便利です
  • 16進エディタも便利です。

私は窓のプレートフォームに同様のツールがあると思います。Dumpbin.exeはnmに似たもので、lddiircのdepends.exeです。

ところで、Javaは多くの場合、ネイティブではなくバイトコードでコンパイルされます。

于 2012-07-16T09:03:06.033 に答える
2

過去に (uni) PEInfoを使用したことがありますが、必要な情報が得られませんでした。その後、dll/exeが.netの場所を知っていたので、リフレクターを使用しました

しかし、それを行うソフトウェアはないと思います

回避策:実行できる最善の方法は、exe の文字列を調べて (たとえば、プロセス エクスプローラーを使用して)、自分で推測することです。

于 2012-07-16T08:36:39.710 に答える
1

バイナリ ファイル ビューアーで実行可能ファイルを開き、関数の名前のような文字列を探します。これらの文字列は常に利用できるわけではありませんが、場合によっては存在します。たとえば、DLL とのリンクを解決するために使用できます。その後、それらの文字列をグーグルで検索します。彼らがあなたに何かを言う可能性があります。

于 2012-07-16T08:44:04.210 に答える
0

私はこれを正しく行うための可能な方法があるとは思わない。たぶん、いくつかの基本的なプログラミング言語は検出できますが、使用されているフレームワークは誰も検出できません。何千ものフレームワークがあります。

于 2012-07-16T08:35:28.700 に答える