2014-03-03 56 views
0

我對分析Windows進程非常新,並且在上週發現Xperf非常有用,並且我對分析DLL有一些疑問。查看DLL使用的註冊表項和文件

我想知道是否有可能看到哪些註冊表項和文件路徑被某個進程使用的特定DLL映像使用,以及使用哪些工具可以實現這一點。

如果這是不可能的,我想知道什麼是很好的策略來找出DLL正在使用的資源或替代方法。

+0

像註冊表鍵句柄這樣的操作系統對象是由進程擁有的,而不是DLL。因此,沒有任何機制可以將擁有權追溯回DLL,您最好看看調用堆棧。 –

回答

1

您可以使用Process Explorer。大多數其他SysInternals過程工具也非常有用 - Process Explorer只是一個具有(複雜)UI的用於顯示大量數據的工具。 Process Monitor顯示進程的實時註冊表,文件系統等訪問。

0

Process Monitor和xperf都可以爲每次訪問文件記錄調用堆棧。然後您可以檢查這些調用堆棧以在調用堆棧中查找特定的DLL。

但是你的問題確實不是很好形成。你是什​​麼意思「由特定的DLL使用」?你可能有進程A調用DLL B調用DLL C調用DLL D,然後再從文件中讀取。哪個DLL'使用'該文件? B,C,D還是全部?唯一明智的答案是,這取決於。

正如Hans Passant所說,句柄由一個進程而不是DLL擁有,並且至多你可以想出啓發式方法來將「所有權」分配給一個特定的DLL。