私は Windows プロセスの分析にまったく慣れていませんが、先週、Xperf が非常に便利であることに気付きました。また、DLL の分析についていくつか質問があります。
プロセスによって使用される特定の DLL イメージによって使用されるレジストリ エントリとファイル パスを確認できるかどうか、およびこれを実現できるツールを確認できるかどうか疑問に思っていました。
これが不可能な場合、DLL が使用しているリソースを見つけるための適切な戦略、または代替アプローチは何かと考えていました。
これにはProcess Explorerを使用できます。他の SysInternals プロセス ツールのほとんども非常に便利です。Process Explorer は、大量のデータを表示するための (複雑な) UI を備えたツールの 1 つにすぎません。Process Monitorは、プロセスのリアルタイムのレジストリ、ファイル システムなどへのアクセスを示します。
Process Monitor と xperf はどちらも、ファイルへのアクセスごとにコール スタックを記録できます。次に、これらの呼び出しスタックを調べて、呼び出しスタックで特定の DLL を探すことができます。
しかし、あなたの質問は実際には整形式ではありません。「特定の DLL によって使用される」とはどういう意味ですか? ファイルから読み取るときにDLL Dを呼び出すDLL Cを呼び出すDLL Bを呼び出すプロセスAを持つことができます。そのファイルを「使用」している DLL はどれですか? B、C、D、またはそれらすべて? 唯一の賢明な答えは、依存しているということです。
Hans Passant が言ったように、ハンドルは DLL ではなくプロセスによって所有されており、せいぜい「所有権」を特定の DLL に割り当てるためのヒューリスティックを考え出すことができます。