ホーム

OFF-SOFT.net

OFF-SOFT.net

ウェブやソフトウェアに関するサポート&情報サイトです。サイト構築からソフトウェアの作成、利用まであなたの助けになるかも・・・・しれません。たぶん・・。

Dependency Walkerで実行ファイルの依存ファイルを調べる

公開日| 2009年08月16日 | コメントはまだありません。
概要 :
VisualStudioやPlatformSDKなどに同梱されているDependency Walker(depends.exe)というアプリケーションがあります。 このアプリケーションは、実行ファイル(exe, dll, ocx, sys, etc.)の他ファイル(dll, ocx, sys, etc.)への依存を調べるのに便利なツールです。
このアプリケーションは、マイクロソフトから提供されていますが、フリーソフトとして提供されています。

今回は、このDependency Walkerについて、簡単に説明したいと思います。


ダウンロード: http://www.dependencywalker.com/
ダウンロードしてインストールしてみましょう
先のダウンロードサイトから、depends22_xxx.zipをダウンロードします。

先のダウンロードサイトには、以下のようなダウンロードファイルがあります。
  • Download Version 2.2.6000 for x86 (Windows 95 / 98 / Me / NT / 2000 / XP / 2003 / Vista) [610k]
  • Download Version 2.2.6000 for x64 [468k]
  • Download Version 2.2.6000 for IA64 [605k]
etc.
CPUによりダウンロードするファイルが異なります。通常、ほとんどの場合は、x86で大丈夫だと思いますが、 64bitやx86アーキテクチャでない他のCPU(例えばAlphaチップ)などをご利用の場合は、気をつける必要があります。

ダウンロードしたZIPファイルを適当なディレクトリ(インストールディレクトリになります)へ解凍します。
解凍すると、以下のようなファイルが作成されます。

[インストール(解凍)先ディレクトリ]
  • depends.exe
  • depends.dll
  • depends.chm

上記のdepends.exeをエクスプローラからのダブルクリックなどで実行すれば、以下のような画面が表示されます。



コマンドラインからの実行も行いたい場合は、環境設定画面で、PATHに以下のパスを加えてあげると良いでしょう。

使ってみましょう
使い方は、いたってシンプルです。 例えば、ある実行ファイル(exe)が依存しているファイル(DLL)を検索したい場合、その実行ファイルを、Dependency Walkerの画面へドロップして開きます。 すると、以下のような画面が表示されます。(ここでは、Qtアプリケーションを開いたときの例です。)

この例では、以下のDLLにこの実行ファイルが依存していることがわかります。
  • QTSCRIPT4.DLL
  • QTGUI4.DLL
  • QTCORE4.DLL
  • KERNEL32.DLL
  • MSVCR90.DLL

1 - 3までは、QtライブラリのDLLです。
4は、OSの基本ライブラリのDLLです。(通常、このDLLはOSに同梱されています)
5は、Visual C++ 2008 のRUNタイムライブラリのDLLです。

このことから、もし、この実行ファイルを配布したい場合、4を除くDLLを同梱してあげる必要があることがわかります。
インストーラを作成する上でも、必要最小限のDLLを確認するので非常に便利です。

また、逆にうまく動作しない実行ファイル(exe,dllなど)が、依存するDLLなどの不足による場合、このDependency Walkerで、同様に ドロップすれば、必要よなる依存ファイル(DLLなど)をすべて表示してくれますので、簡単に調べることができます。
もし、そこでシステムに見当たらない場合は、以下のようにクエスションマークと対応する関数が赤く表示されますので、簡単に見つけることができます。



もし、依存ファイルが存在するのに、Dependency Walkerでは、見つからない(検出されない)場合は、 メニューの Opetion - Configure Module Order をクリックし、以下の画面を表示します。


この画面から、依存ファイルの存在するディレクトリ名を指定してAdd Directoryボタンをクリックすると、 A user define directoryに追加されます。
設定を終えたら、OKボタンをクリックし、保存します。

その後、リフレッシュ(F5) (View - Reflesh)で更新します。
おそらく、これで、検出されるようになると思いますが、正しく実行させるためには、先ほど設定したディレクトリを環境設定のパスにも設定すれば、正しく動作するでしょう。

コメント

コメントをどうぞ







  • はてなブックマークへ追加する
  • Facebookでシェアする
  • twitter でつぶやく
  • Google Plusでシェアする
  • Pocketでシェアする
ページトップへ