Dependency Walker の使い方と日本語化

Dependency Walker の使い方が良く分からないので詳しく知りたいという要望があったので簡単に説明します。

まず、Dependency Walker自体はVisualStudioに入ってるのですが、最新版のv 2.2.6000を入手しましょう。

2dcb2430.jpg

ちなみにこのまま使うと、英語版で、全角のフォルダ名があったときに読めないのです。「デスクトップ」が「デベハトップ」になります(^^;


単に、フォルダの読み書きだけしたいのならば、0x536fd にある、0580c120を0580c100に書き換えれば全角フォルダも行けるようになります。(何をしてるかというと、文字コードが 0x31~0x5aの範囲内にある場合 0x20でOrを取ってアルファベットを小文字にしています。つまり、全角文字の2バイト目がこれに該当すると化けてしまうわけです)

ちなみに、日本語化+上の修正をやってくれる便利なソフトがあります。
DependencyWalker 日本語化+α プロジェクト

DependencyWalkerの実行ファイルがある場所にファイルを置いて実行すればいいだけです。

では、日本語化したこのソフトで実際にどう使えばいいかを検証してみましょう。

foobar2000の9.6 Beta5を実験に使います。
672f083e.jpg

まず、左下のモジュールに注目してください。
砂時計がついてるのは、後からロードされるライブラリで、必ず使うとは限らないものです。(?)が突いてるのは、ファイル自体がパスに通っていないものや、存在しないものに付くマーク、赤いアイコンになってるのは実装されていない関数があるものです。
つまり、砂時計がついてないファイルに(?)や赤いアイコンがあるとそのままでは動作しないということを意味します。

ちなみに、APPHELP.DLLとMPR.DLLはWindowsXPで、SideBySideテクノロジー(色々なアプリごとにDLLのバージョンを使い分ける機能)で使うだけなのでよく(?)が出ていますが気にしなくても大丈夫です。

cfd65667.jpg

赤色になっているアイコンをクリックすると、実際に欠落している関数が何なのかがわかります。
この場合はShell32.dllに SHOpenFolderAndSelectItemという関数が足りないということが分かります。
中には関数名が無くて、序数しか書いていないものもありますが、これは非公開の関数で、上位のOSやサービスパックには名前がついていたりすることも少なくありません。

KDWで、動かないソフトがあったときには、ファイル名とこの関数名を報告してもらえばよいわけです。

では、KDWでshell32.dllと簡易インストールして、F5で更新してみます。

d4ee11d6.jpg

この通り、砂時計の無いアイコンのエラーはなくなりました。
ひねくれたプログラムでなければ、これで動作するわけです。

cc4648fe.jpg

ドライバー(SYSのつくファイル)の場合はちょっと特殊で、ファイルが \system32\Drivers にあるのに、このように(?)が出てきます。
これは、Dependency Walkerが Driversフォルダをデフォルトで検索対象にしていないからです。

これは、オプション>モジュールの検索順序(Option>Configure Module Search Order)で設定します。

c03df4fb.jpg

検索で Driversを選択した後左のディレクトリ追加を選んで少し順序を上げてやります。

48008536.jpg

このドライバは問題ないことが分かります。

XPのドライバは、SYSファイルをこのようにDependency Walkerで チェックして、問題がなければ、ほとんどはINFファイルの書き換えだけで動作するようです。

最後にちょっと便利なTipsです。

・名前を付けて保存 … どの関数が足りないかなどの情報を、直接実行ファイルを送らなくても伝えることが出来ます。
・表示>ファイル名をフルパスで表示(View>FullPaths)
…ファイル名がフルパス表示になるので、どこにあるファイルを呼んでいるのかが分かりやすくなります。
・F5 … 簡単に更新できます。
・Ctrl+C ファイル名のフルパスがコピーできます。
・プロファイラ … ファイル実行時のエラーをトレースできます(日本語版専用・上級者用)。

Dependency Walker の使い方 その2

おすすめ

15件のフィードバック

  1. ななし より:

    もし宜しければお力をお貸しください。
    サウンドカード「Asus XonarDG」では、
    Windows2000はサポート外になっているので
    ドライバを「Dependency Walker」で調べてみました。
    「MPR.DLL」と「dbghelp.dll」に砂時計が付いていないのが、
    多数ありました。大丈夫でしょうか?
    「cmudaxp.sys」は問題なさそうでした。
    それとINFファイルの書き換えとはどのようにすれば良いでしょう?
    「Asus XonarDG」をWindows2000で動かす事が出来ないでしょうか?
    文章が稚拙ですみません。それでは失礼します。

  2. ななし より:

    もし宜しければお力をお貸しください。
    サウンドカード「Asus XonarDG」では、
    Windows2000はサポート外になっているので
    ドライバを「Dependency Walker」で調べてみました。
    「MPR.DLL」と「dbghelp.dll」に砂時計が付いていないのが、
    多数ありました。大丈夫でしょうか?
    「cmudaxp.sys」は問題なさそうでした。
    それとINFファイルの書き換えとはどのようにすれば良いでしょう?
    「Asus XonarDG」をWindows2000で動かす事が出来ないでしょうか?
    文章が稚拙ですみません。それでは失礼します。

  3. ななし より:

    もし宜しければお力をお貸しください。
    サウンドカード「Asus XonarDG」では、
    Windows2000はサポート外になっているので
    ドライバを「Dependency Walker」で調べてみました。
    「MPR.DLL」と「dbghelp.dll」に砂時計が付いていないのが、
    多数ありました。大丈夫でしょうか?
    「cmudaxp.sys」は問題なさそうでした。
    それとINFファイルの書き換えとはどのようにすれば良いでしょう?
    「Asus XonarDG」をWindows2000で動かす事が出来ないでしょうか?
    文章が稚拙ですみません。それでは失礼します。

  4. blackwingcat より:

    > 「MPR.DLL」と「dbghelp.dll」に砂時計が付いていないのが、
    > 多数ありました。大丈夫でしょうか?
    DWIファイルを見てみないことにはわかりません。
    アップしてもらえれば見てみます

  5. blackwingcat より:

    > 「MPR.DLL」と「dbghelp.dll」に砂時計が付いていないのが、
    > 多数ありました。大丈夫でしょうか?
    DWIファイルを見てみないことにはわかりません。
    アップしてもらえれば見てみます

  6. blackwingcat より:

    > 「MPR.DLL」と「dbghelp.dll」に砂時計が付いていないのが、
    > 多数ありました。大丈夫でしょうか?
    DWIファイルを見てみないことにはわかりません。
    アップしてもらえれば見てみます

  7. ななし より:

    DWIファイルって、これでいいのでしょうか?↓
    http://www1.axfc.net/uploader/File/so/69110
    pass:nanasi
    それでは失礼します。

  8. ななし より:

    DWIファイルって、これでいいのでしょうか?↓
    http://www1.axfc.net/uploader/File/so/69110
    pass:nanasi
    それでは失礼します。

  9. ななし より:

    DWIファイルって、これでいいのでしょうか?↓
    http://www1.axfc.net/uploader/File/so/69110
    pass:nanasi
    それでは失礼します。

  10. blackwingcat より:

    見た感じだと、HsMgr.exe というのが、KDW の動的設定する必要がありそうなくらいですね。
    もう一つエラーが出るファイルがありますが、そっちはVista 用ファイルだと思います。

  11. blackwingcat より:

    見た感じだと、HsMgr.exe というのが、KDW の動的設定する必要がありそうなくらいですね。
    もう一つエラーが出るファイルがありますが、そっちはVista 用ファイルだと思います。

  12. blackwingcat より:

    見た感じだと、HsMgr.exe というのが、KDW の動的設定する必要がありそうなくらいですね。
    もう一つエラーが出るファイルがありますが、そっちはVista 用ファイルだと思います。

  13. ななし より:

    このドライバはXP32とXP64の専用のはずですが
    それにVista 用ファイルが、入ってる事って
    あるものなのでしょうか?
    KDW の動的設定って、この場合?どのようにすれば
    いいのでしょうか?
    このドライバのINFをお持ちではないと思うので
    アップしておきます。↓
    http://www1.axfc.net/uploader/File/so/69174
    INFファイルの書き換えとはどのようにすれば良いでしょうか?
    たくさん質問してしまって申し訳ありません。
    もし宜しければお答えください。それでは失礼します。

  14. ななし より:

    このドライバはXP32とXP64の専用のはずですが
    それにVista 用ファイルが、入ってる事って
    あるものなのでしょうか?
    KDW の動的設定って、この場合?どのようにすれば
    いいのでしょうか?
    このドライバのINFをお持ちではないと思うので
    アップしておきます。↓
    http://www1.axfc.net/uploader/File/so/69174
    INFファイルの書き換えとはどのようにすれば良いでしょうか?
    たくさん質問してしまって申し訳ありません。
    もし宜しければお答えください。それでは失礼します。

  15. ななし より:

    このドライバはXP32とXP64の専用のはずですが
    それにVista 用ファイルが、入ってる事って
    あるものなのでしょうか?
    KDW の動的設定って、この場合?どのようにすれば
    いいのでしょうか?
    このドライバのINFをお持ちではないと思うので
    アップしておきます。↓
    http://www1.axfc.net/uploader/File/so/69174
    INFファイルの書き換えとはどのようにすれば良いでしょうか?
    たくさん質問してしまって申し訳ありません。
    もし宜しければお答えください。それでは失礼します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です