0

我对分析 Windows 进程很陌生,上周发现 Xperf 非常有用,我对分析 DLL 有一些疑问。

我想知道是否可以查看进程使用的特定 DLL 映像使用了哪些注册表项和文件路径,以及我可以使用哪些工具来实现这一点。

如果这不可能,我想知道什么是找出 DLL 正在使用哪些资源的好策略,或替代方法。

4

2 回答 2

1

您可以为此使用Process Explorer。大多数其他 SysInternals 流程工具也非常有用 - Process Explorer 只是一个用于显示大量数据的(复杂)UI。进程监视器显示进程的实时注册表、文件系统等访问。

于 2014-03-03T15:44:24.000 回答
0

Process Monitor 和 xperf 都可以记录对文件的每次访问的调用堆栈。然后,您可以检查这些调用堆栈以查找调用堆栈上的特定 DLL。

但是您的问题确实不是很好。你是什​​么意思“由特定的DLL使用”?您可以让进程 A 调用 DLL B,然后调用 DLL C,然后从文件中读取时调用 DLL D。哪个 DLL 正在“使用”该文件?B、C、D 还是全部?唯一明智的答案是视情况而定。

正如 Hans Passant 所说,句柄由一个进程而不是 DLL 拥有,并且您最多可以提出启发式方法来将“所有权”分配给特定的 DLL。

于 2014-03-18T02:51:40.233 回答