用PurifyPlus分析时如何找到应用程序里的钩子动态连接库

来源:互联网 发布:空气的比热容比数据 编辑:程序博客网 时间:2024/05/28 05:18

 

疑问

在使用 IBM RationalPurifyPlus时,如何找到应用程序里的钩子动态连接库的信息?

 

原因

一般来说,您可能对调用SetWindowsHook的代码是没有兴趣的,也没有这段代码的源代码和调试信息。多数情况下,调用SetWindowsHook的应用和您正在测试的程序完全没有关系。基于以上原因,您应该使用参数PurifyExcludeMust (或QuantifyExcludeMust 或CoverageExcludeMust)来排除这些模块。问题是如何找到那个调用SetWindowsHook的模块呢?

 

答案

这个文件适用于IBM RationalPurify, Quantify 和PureCoverage。Purify在这里代表全部三个产品。钩子动态连接库是这样一些模块,它们使用SetWindowsHook接口调用来与其它应用程序通讯。

可以采用下面的步骤查找那个调用SetWindowsHook的模块。

 

1,检查cache目录(缺省安装目录C:/ProgramFiles/Rational/PurifyPlus/cache),查找文件名中有hook或hk的模块。这些模块通常会使用SetWindowsHook接口。

 

2,检查cache目录,查找那些不是来自system32和应用程序工作目录的插桩过的模块。通常那些来自非相关目录的模块会使用SetWindowsHook接口。来自非相关目录的一个例子是"C:/Program Files/MSHardware/Mouse",在该目录下保存了msh_zwf.dll模块。cache目录中插桩后文件的文件名可以揭示原始文件所在的目录。

 

注意:不要通过检查Purify模块列表(View ->Properties)的方法查找钩子动态连接库,这是由于该列表没有包含全部的应用程序使用的模块;动态加载的模块不在该列表中显示。

原创粉丝点击