我最近一直在想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機器上運行。