用PurifyPlus分析時如何找到應用程序裏的鉤子動態連接庫

 

疑問

在使用 IBM Rational PurifyPlus時,如何找到應用程序裏的鉤子動態連接庫的信息?

 

原因

一 般來說,您可能對調用SetWindowsHook的代碼是沒有興趣的,也沒有這段代碼的源代碼和調試信息。多數情況下,調用 SetWindowsHook的應用和您正在測試的程序完全沒有關係。基於以上原因,您應該使用參數PurifyExcludeMust (或 QuantifyExcludeMust 或 CoverageExcludeMust)來排除這些模塊。問題是如何找到那個調用SetWindowsHook的模塊呢?

 

答案

這個文件適用於IBM Rational Purify, Quantify 和 PureCoverage。Purify在這裏代表全部三個產品。鉤子動態連接庫是這樣一些模塊,它們使用SetWindowsHook接口調用來與其它應用程序通訊。

可以採用下面的步驟查找那個調用SetWindowsHook的模塊。

 

1,檢查cache目錄(缺省安裝目錄C:/Program Files/Rational/PurifyPlus/cache),查找文件名中有hook或hk的模塊。這些模塊通常會使用SetWindowsHook接口。

 

2,檢查cache目錄,查找那些不是來自system32和應用程序工作目錄的插樁過的模塊。通常那些來自非相關目錄的模塊會使用 SetWindowsHook接口。來自非相關目錄的一個例子是"C:/Program Files/MS Hardware/Mouse",在該目錄下保存了msh_zwf.dll模塊。cache目錄中插樁後文件的文件名可以揭示原始文件所在的目錄。

 

注意: 不要通過檢查Purify模塊列表(View -> Properties)的方法查找鉤子動態連接庫,這是由於該列表沒有包含全部的應用程序使用的模塊;動態加載的模塊不在該列表中顯示。

發佈了16 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章