明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

深入?yún)^(qū)分Svchost.exe進程

[摘要]svchost.exe是nt核心系統(tǒng)的非常重要的進程, 對于2000、xp來說, 不可或缺。 很多病毒、木馬也會調(diào)用它。 大家對windows操作系統(tǒng)一定不陌生, 但你是否注意到系統(tǒng)中&...

svchost.exe是nt核心系統(tǒng)的非常重要的進程, 對于2000、xp來說, 不可或缺。 很多病毒、木馬也會調(diào)用它。

大家對windows操作系統(tǒng)一定不陌生, 但你是否注意到系統(tǒng)中“svchost.exe”這個文件呢?細心的朋友會發(fā)現(xiàn)windows中存在多個 “svchost”進程(通過“ctrl+alt+del”鍵打開任務管理器, 這里的“進程”標簽中就可看到了), 為什么會這樣呢?下面就來揭開它神秘的面紗。

發(fā)現(xiàn)

在基于nt內(nèi)核的windows操作系統(tǒng)家族中, 不同版本的windows系統(tǒng), 存在不同數(shù)量的“svchost”進程, 用戶使用“任務管理器”可查看其進程數(shù)目。 一般來說, win2000有兩個svchost進程, winxp中則有四個或四個以上的svchost進程(以后看到系統(tǒng)中有多個這種進程, 千萬別立即判定系統(tǒng)有病毒了喲), 而win2003 server中則更多。 這些svchost進程提供很多系統(tǒng)服務, 如:rpcss服務(remote procedure call)、dmserver服務(logical disk manager)、dhcp服務(dhcp client)等。

如果要了解每個svchost進程到底提供了多少系統(tǒng)服務, 可以在win2000的命令提示符窗口中輸入“tlist -s”命令來查看, 該命令是win2000 support tools提供的。 在winxp則使用“tasklist /svc”命令。

svchost中可以包含多個服務

深入

windows系統(tǒng)進程分為獨立進程和共享進程兩種, “svchost.exe”文件存在于“%systemroot% system32”目錄下, 它屬于共享進程。 隨著windows系統(tǒng)服務不斷增多, 為了節(jié)省系統(tǒng)資源, 微軟把很多服務做成共享方式, 交由 svchost.exe進程來啟動。 但svchost進程只作為服務宿主, 并不能實現(xiàn)任何服務功能, 即它只能提供條件讓其他服務在這里被啟動, 而它自己卻不能給用戶提供任何服務。 那這些服務是如何實現(xiàn)的呢?

原來這些系統(tǒng)服務是以動態(tài)鏈接庫(dll)形式實現(xiàn)的, 它們把可執(zhí)行程序指向 svchost, 由svchost調(diào)用相應服務的動態(tài)鏈接庫來啟動服務。 那svchost又怎么知道某個系統(tǒng)服務該調(diào)用哪個動態(tài)鏈接庫呢?這是通過系統(tǒng)服務在注冊表中設置的參數(shù)來實現(xiàn)。 下面就以rpcss(remote procedure call)服務為例, 進行講解。

從啟動參數(shù)中可見服務是靠svchost來啟動的

實例

以windows xp為例, 點擊“開始”/“運行”, 輸入“services.msc”命令, 彈出服務對話框, 然后打開“remote procedure call”屬性對話框, 可以看到rpcss服務的可執(zhí)行文件的路徑為“c:\windows\system32\svchost -k rpcss”, 這說明rpcss服務是依靠svchost調(diào)用“rpcss”參數(shù)來實現(xiàn)的, 而參數(shù)的內(nèi)容則是存放在系統(tǒng)注冊表中的。

在運行對話框中輸入“regedit.exe”后回車, 打開注冊表編輯器, 找到[hkey_local_machine systemcurrentcontrolsetservicesrpcss]項, 找到類型為“reg_expand_sz”的鍵“magepath”, 其鍵值為“%systemroot%system32svchost -k rpcss”(這就是在服務窗口中看到的服務啟動命令), 另外在“parameters”子項中有個名為“servicedll”的鍵, 其值為“% systemroot%system32rpcss.dll”, 其中“rpcss.dll”就是rpcss服務要使用的動態(tài)鏈接庫文件。 這樣 svchost進程通過讀取“rpcss”服務注冊表信息, 就能啟動該服務了。

解惑

因為svchost進程啟動各種服務, 所以病毒、木馬也想盡辦法來利用它, 企圖利用它的特性來迷惑用戶, 達到感染、入侵、破壞的目的(如沖擊波變種病毒“w32.welchia.worm”)。 但windows系統(tǒng)存在多個svchost進程是很正常的, 在受感染的機器中到底哪個是病毒進程呢?這里僅舉一例來說明。

假設windows xp系統(tǒng)被“w32.welchia.worm”感染了。 正常的svchost文件存在于“c:\windows\system32”目錄下, 如果發(fā)現(xiàn)該文件出現(xiàn)在其他目錄下就要小心了。 “w32.welchia.worm”病毒存在于“c:\windows\system32wins”目錄中, 因此使用進程管理器查看svchost進程的執(zhí)行文件路徑就很容易發(fā)現(xiàn)系統(tǒng)是否感染了病毒。 windows系統(tǒng)自帶的任務管理器不能夠查看進程的路徑, 可以使用第三方進程管理軟件, 如“windows優(yōu)化大師”進程管理器, 通過這些工具就可很容易地查看到所有的svchost進程的執(zhí)行文件路徑, 一旦發(fā)現(xiàn)其執(zhí)行路徑為不平常的位置就應該馬上進行檢測和處理。


上面是電腦上網(wǎng)安全的一些基礎常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。