2016-08-23 116 views
0

我最近一直在想WMI在Windows系統內部是如何工作的。我喜歡具體的例子,並深入瞭解他們: 讓我們採取相對簡單的場景,我正在運行tasklist.exe。我知道tasklist正在使用WMI來查詢本地機器上運行的任務,所以這是一個可執行程序,其基本全部用於WMI查詢。WMI - 它究竟如何工作?什麼是創建WmiApSrv.exe服務以及它如何發送消息?

在我第一次運行它之後,一項新的服務開始了:名爲WmiApSrv.exe的服務,這是一個svchost.exe -k DcomLaunch的子進程。

現在我想知道,究竟tasklist.exe正在做什麼導致一個新的服務啓動 - 主要是當WMI服務(在services.msc下)的啓動類型爲Manual而不是自動..什麼是造成它開始,何時以及如何?什麼是特定的svchost.exe -k DcomLauncher進程的連接?

我試圖反向工程RPC調用(NdrClientCall2),但我無法弄清楚哪個RPC的調用GUID是其中幾十個相關的,以及它連接到的位置。之前幫助我的是RpcView(http://www.rpcview.org/),但由於某種原因(在我的Win7或XP虛擬機上),它無法在我的Windows 10機器上運行。

回答

0

這是使用lpc完成後,你可以看看裏面使用微軟的消息分析儀連接到微軟Windows的RPC終結點,其中RPC事件記錄。 tasklist.exe調用wmi接口uuid的客戶端存根控制函數,rpc調用被引導至svchost.exe -k DcomLaunch,後者將打開WmiApSrv.exe。

這需要更徹底的看上去比我做什麼,但我認爲這應該讓您的軌道上找到答案。