俞木發(fā)
Windows10的后臺(tái)默認(rèn)會(huì)運(yùn)行多個(gè)Svchost.exe進(jìn)程,一些病毒也通過(guò)這個(gè)名稱(chēng)來(lái)隱藏自己。那么,該怎么區(qū)分系統(tǒng)中正常和異常的Svchost.exe進(jìn)程呢?下面結(jié)合實(shí)例,為大家介紹一些鑒別的方法。
Svc host.exe是從動(dòng)態(tài)鏈接庫(kù)(DLL)中運(yùn)行服務(wù)的通用主機(jī)進(jìn)程,系統(tǒng)中的很多服務(wù)是通過(guò)Svchost.exe調(diào)用相應(yīng)的DLL文件來(lái)實(shí)現(xiàn)的。比如系統(tǒng)的音頻設(shè)備服務(wù),它所對(duì)應(yīng)的命令行是“C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted -p-s AudioEndpointBuilder”,調(diào)用的是“C:\Windows\System32\AudioEndpointBuilder.dll”文件。具體的命令行查看方法為:打開(kāi)任務(wù)管理器,切換到“詳細(xì)信息”,右擊狀態(tài)欄并選擇“顯示列”,勾選“命令行”查看,可以看到系統(tǒng)后臺(tái)有很多的S vc h o st進(jìn)程,分別加載不同的DLL文件(圖1)。
對(duì)于一些病毒使用Svchost.exe(或類(lèi)似名稱(chēng))進(jìn)行偽裝的,只要用好系統(tǒng)自帶的相關(guān)工具,便可以去偽存真,找出異常的Svchost.exe進(jìn)程。
情況1:找出混淆名稱(chēng)的Svchost.exe進(jìn)程
一些病毒通過(guò)Svch0st.exe名稱(chēng)來(lái)假冒Svchost.exe進(jìn)程。對(duì)于這類(lèi)進(jìn)程,使用PowerShell命令行就可以鑒別。
首先以管理員身份啟動(dòng)Power Shell,接著輸入命令“get-process -name svch*”并回車(chē)執(zhí)行,這樣可以列出后臺(tái)所有以“svch”字符開(kāi)頭的進(jìn)程,可以看到Svch0st.exe中的數(shù)字“0”和字母“o”明顯不同(圖2)。
接下來(lái)根據(jù)圖2顯示的進(jìn)程ID,打開(kāi)任務(wù)管理器并切換到“詳細(xì)信息”選項(xiàng)卡,找到加載該進(jìn)程的實(shí)際文件,結(jié)束該進(jìn)程并根據(jù)路徑提示刪除對(duì)應(yīng)的文件即可(圖3)。
情況2:查找同名的Svchost.exe進(jìn)程
系統(tǒng)正常的Svchost.exe進(jìn)程對(duì)應(yīng)的是“C:\Windows\System32\Svchost.exe”文件,病毒程序則保存在其他的位置。因此,如果懷疑本機(jī)中有異常的Svchost.exe進(jìn)程,通過(guò)進(jìn)程的路徑即可鑒別。
參照?qǐng)D1所示的操作,在“顯示列”中勾選“路徑名稱(chēng)”,然后將進(jìn)程按照“名稱(chēng)”排序,可以看到筆者的電腦中ID為2412的Svchost.exe進(jìn)程極為可疑,其路徑是“C:\Windows\System”(圖4)。接著按照?qǐng)D4顯示的路徑找到對(duì)應(yīng)的Svchost.exe文件,按提示結(jié)束該進(jìn)程并刪除文件即可。
一些病毒會(huì)通過(guò)Svchost.exe加載其自行開(kāi)發(fā)的DLL文件并將其偽裝為系統(tǒng)服務(wù)來(lái)作惡。如果要對(duì)這類(lèi)服務(wù)進(jìn)行鑒別,關(guān)鍵是要找出Svchost.exe進(jìn)程加載的DLL文件。
首先在任務(wù)欄的搜索框中輸入“msconfi g”啟動(dòng)系統(tǒng)配置程序,切換到“服務(wù)”選項(xiàng)卡,勾選“隱藏所有Microsof t服務(wù)”,篩選出本機(jī)所有的第三方服務(wù)(圖5)。
在PowerShell窗口中輸入并執(zhí)行“Get-WmiObjectwin32_service | Select Name,id,PathName,Displayname,Description | Out-GridView -Title "服務(wù)路徑"”命令,接著在打開(kāi)的窗口中依次點(diǎn)擊“添加標(biāo)準(zhǔn)→PathName”,然后輸入“Svchost”,可以篩選出Svchost.exe進(jìn)程加載的所有系統(tǒng)服務(wù)(圖6)。
因?yàn)椴《炯虞d的是非系統(tǒng)文件,所以其加載的服務(wù)會(huì)被系統(tǒng)識(shí)別為非“Microsof t服務(wù)”。接下來(lái)就要從圖6所示的服務(wù)列表中找到既是第三方服務(wù),同時(shí)又是通過(guò)“Svchost.exe”加載的服務(wù),即為病毒服務(wù)。根據(jù)圖5中“服務(wù)”列顯示的名稱(chēng),再結(jié)合圖6中“DisplayName”列顯示的命令參數(shù)(對(duì)應(yīng)圖5中的服務(wù)名稱(chēng)),可以知道只有名為“Peer”的服務(wù)符合要求,其加載的文件為Peer.dll(圖7)。
接著啟動(dòng)系統(tǒng)的搜索功能,查找本機(jī)的Peer.dll文件,通過(guò)查看文件屬性確認(rèn)其為第三方公司開(kāi)發(fā)的。最后停止指定的Peer服務(wù),并將其設(shè)置為“已禁用”。重啟后再刪除Peer.dll文件即可解決問(wèn)題。