是否有任何方法可以查看正在運行的Windows進程的激活上下文?查看正在運行的進程的Windows激活上下文?
理想情況下,當我說「視圖」時,我的意思是以人類可讀的方式檢查它,查看/確認已加載的DLL等。
我的想象是,某種調試器可能會附加到正在運行的進程,然後顯示該信息。但任何類型的工具都可能有用 - 調試器,日誌文件,甚至使用激活上下文API檢查事物等。
是否有任何方法可以查看正在運行的Windows進程的激活上下文?查看正在運行的進程的Windows激活上下文?
理想情況下,當我說「視圖」時,我的意思是以人類可讀的方式檢查它,查看/確認已加載的DLL等。
我的想象是,某種調試器可能會附加到正在運行的進程,然後顯示該信息。但任何類型的工具都可能有用 - 調試器,日誌文件,甚至使用激活上下文API檢查事物等。
檢索激活上下文詳細信息的基本方法之一是使用QueryActCtxW()
API。這個API可以用來查詢一堆細節。好樣品可用here。
在示例代碼中,請注意以下行。
// Request the first file in the root assembly
QueryIndex.ulAssemblyIndex = 1;
QueryActCtxW()
API可以,只要它返回成功遞增的ulAssemblyIndex
值反覆調用。每次成功的電話將返回由ulAssemblyIndex
代表的組裝請求的詳細信息。
當從一個進程中調用QueryActCtxW()
時,上面將會工作。
現在,如果你想獲得另一個進程的細節,一個想法是在DLL中包裝激活上下文檢索邏輯。該DLL可以將詳細信息轉儲到磁盤文件或將其管理到查看器。然後通過諸如DLL Injection之類的技術或通過利用CreateRemoteThread() API將該DLL注入給定進程。