俞木发
Windows10的后台默认会运行多个Svchost.exe进程,一些病毒也通过这个名称来隐藏自己。那么,该怎么区分系统中正常和异常的Svchost.exe进程呢?下面结合实例,为大家介绍一些鉴别的方法。
Svc host.exe是从动态链接库(DLL)中运行服务的通用主机进程,系统中的很多服务是通过Svchost.exe调用相应的DLL文件来实现的。比如系统的音频设备服务,它所对应的命令行是“C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted -p-s AudioEndpointBuilder”,调用的是“C:\Windows\System32\AudioEndpointBuilder.dll”文件。具体的命令行查看方法为:打开任务管理器,切换到“详细信息”,右击状态栏并选择“显示列”,勾选“命令行”查看,可以看到系统后台有很多的S vc h o st进程,分别加载不同的DLL文件(图1)。
对于一些病毒使用Svchost.exe(或类似名称)进行伪装的,只要用好系统自带的相关工具,便可以去伪存真,找出异常的Svchost.exe进程。
情况1:找出混淆名称的Svchost.exe进程
一些病毒通过Svch0st.exe名称来假冒Svchost.exe进程。对于这类进程,使用PowerShell命令行就可以鉴别。
首先以管理员身份启动Power Shell,接着输入命令“get-process -name svch*”并回车执行,这样可以列出后台所有以“svch”字符开头的进程,可以看到Svch0st.exe中的数字“0”和字母“o”明显不同(图2)。
接下来根据图2显示的进程ID,打开任务管理器并切换到“详细信息”选项卡,找到加载该进程的实际文件,结束该进程并根据路径提示删除对应的文件即可(图3)。
情况2:查找同名的Svchost.exe进程
系统正常的Svchost.exe进程对应的是“C:\Windows\System32\Svchost.exe”文件,病毒程序则保存在其他的位置。因此,如果怀疑本机中有异常的Svchost.exe进程,通过进程的路径即可鉴别。
参照图1所示的操作,在“显示列”中勾选“路径名称”,然后将进程按照“名称”排序,可以看到笔者的电脑中ID为2412的Svchost.exe进程极为可疑,其路径是“C:\Windows\System”(图4)。接着按照图4显示的路径找到对应的Svchost.exe文件,按提示结束该进程并删除文件即可。
一些病毒会通过Svchost.exe加载其自行开发的DLL文件并将其伪装为系统服务来作恶。如果要对这类服务进行鉴别,关键是要找出Svchost.exe进程加载的DLL文件。
首先在任务栏的搜索框中输入“msconfi g”启动系统配置程序,切换到“服务”选项卡,勾选“隐藏所有Microsof t服务”,筛选出本机所有的第三方服务(图5)。
在PowerShell窗口中输入并执行“Get-WmiObjectwin32_service | Select Name,id,PathName,Displayname,Description | Out-GridView -Title "服务路径"”命令,接着在打开的窗口中依次点击“添加标准→PathName”,然后输入“Svchost”,可以筛选出Svchost.exe进程加载的所有系统服务(图6)。
因为病毒加载的是非系统文件,所以其加载的服务会被系统识别为非“Microsof t服務”。接下来就要从图6所示的服务列表中找到既是第三方服务,同时又是通过“Svchost.exe”加载的服务,即为病毒服务。根据图5中“服务”列显示的名称,再结合图6中“DisplayName”列显示的命令参数(对应图5中的服务名称),可以知道只有名为“Peer”的服务符合要求,其加载的文件为Peer.dll(图7)。
接着启动系统的搜索功能,查找本机的Peer.dll文件,通过查看文件属性确认其为第三方公司开发的。最后停止指定的Peer服务,并将其设置为“已禁用”。重启后再删除Peer.dll文件即可解决问题。