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