Svchost.exe是一个很普通的利用dll动态链接库来运行服务的程序,它位于system32目录下。在计算机启动时,它将读取注册表中有关服务的部分,然后建立需要启动的服务列表。在同一时刻,可能有多个S vchost.exe在同时运行,每个Svchost.exe中可能包含一个或一组服务,同一组内的每个服务都可以在一个Svchost.exe开始运行时在同等的条件下同时启动。说白一点,之所以要把若干个服务作为一组放在同一个S vchost.exe中来运行,目的就是使这些服务能够更好的被控制和调试。
Svchost.exe组的确定是位于注册表以下这个键值之中,HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost,这里的每一项就是一组服务,也就是大家在任务管理器中看到的一个“Svchost.exe”。每一个REG_MULTI_ SZ中的值就是一个服务组,一个组中可能只有一个服务,也有可能有若干个服务。到底哪些服务是属于同一个组,那些服务是独立运行的?您可以在这个键值中找到答案,H KEY_LOCAL_MACHINE\System\CurrentControlSet\Services。
在Windows2000资源工具包中,有一个Tlist.exe文件可以列出当前内存中正在运行的Svchost.exe中所包含的服务,命令行用法是“t list.exe -s”。