PC& Life Q&A

2006 年 04 月 15 日

電腦裡面有4個SVCHOST..

Filed under: 電腦和網際網路 — starskypc @ 12:39:08
以下自我自己在Yahoo奇摩知識那裡回答的文章

來源網址:
http://tw.knowledge.yahoo.com/question/?qid=1105051407850

——————————-
Q:
電腦裡面有4個SVCHOST…

我在看工作管理員的時候~~處理程式裡面有4個

SVCHOST~~這ㄍ程式有問題嗎?

A:

解開SVCHOST之謎!

大家對Windows操作系統一定不陌生,但你是否注意到系統中
「SVCHOST.EXE」這個文件呢?細心的朋友會發現Windows中存在多個
「SVCHOST」進程(通過「Ctrl+Alt+Del」鍵打開任務管理器,這裡的「進
程」標籤中就可看到了),為什麼會這樣呢?下面就來揭開它神祕的面
紗。

  [發現]
在基於NT內核的Windows操作系統家族中,不同版本的Windows系統,
存在不同數量的「SVCHOST」進程,用戶使用「任務管理器」可查看其進
程數目。一般來說,Win2000有兩個SVCHOST進程,WinXP中則有四個或
四個以上的SVCHOST進程(以後看到系統中有多個這種進程,千萬別立即
判定系統有病毒了喲),而Win2003 server中則更多。這些SVCHOST進程提
供很多系統服務,如:RpcSs服務(Remote Procedure Call)、dmserver服務
(Logical Disk Manager)、Dhcp服務(DHCP Client)等。

  如果要了解每個SVCHOST進程到底提供了多少系統服務,可以在
Win2000的命令提示符窗口中輸入「Tlist -S」命令來查看,該命令是
Win2000 Support Tools提供的。在WinXP則使用「tasklist /svc」命令。

[深入]

  Windows系統進程分為獨立進程和共享進程兩種,「SVCHOST.EXE」
文件存在於「%SystemRoot%\system32\」目錄下,它屬於共享進程。隨著
Windows系統服務不斷增多,為了節省系統資源,微軟把很多服務做成共
享方式,交由SVCHOST.EXE進程來啟動。但SVCHOST進程只作為服務宿
主,並不能實現任何服務功能,即它只能提供條件讓其他服務在這裡被啟
動,而它自己卻不能給用戶提供任何服務。那這些服務是如何實現的呢?

  原來這些系統服務是以動態鏈接庫(DLL)形式實現的,它們把可執
行程序指向SVCHOST,由SVCHOST調用相應服務的動態鏈接庫來啟動服
務。那SVCHOST又怎麼知道某個系統服務該調用哪個動態鏈接庫呢?這是
通過系統服務在註冊表中設置的參數來實現。下面就以RpcSs(Remote
Procedure Call)服務為例,進行講解。

  實例:以Windows XP為例,點擊「開始」/「運行」,輸入
「services.msc」命令,彈出服務對話框,然後打開「Remote Procedure
Call」屬性對話框,可以看到RpcSs服務的可執行文件的路徑為
「C:\WINDOWS\system32\svchost -k rpcss」,這說明RpcSs服務是依靠
SVCHOST調用「rpcss」參數來實現的,而參數的內容則是存放在系統註冊
表中的。

  在運行對話框中輸入「regedit.exe」後回車,打開註冊表編輯器,找到
[HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Services\RpcSs]項,找
到類型為「REG_EXPAND_SZ」的鍵「magePath」,其鍵值為「%
SystemRoot%\system32\svchost -k rpcss」(這就是在服務窗口中看到的服務
啟動命令),另外在「Parameters」子項中有個名為「ServiceDll」的鍵,其
值為「%SystemRoot%\system32\rpcss.dll」,其中「rpcss.dll」就是rpcss服務
要使用的動態鏈接庫文件。這樣SVCHOST進程通過讀取「RpcSs」服務注
冊表信息,就能啟動該服務了。  

  [解惑]

  因為SVCHOST進程啟動各種服務,所以病毒、木馬也想盡辦法來利用
它,企圖利用它的特性來迷惑用戶,達到感染、入侵、破壞的目的(如衝
擊波變種病毒「W32.Welchia.Worm」)。 但Windows系統存在多個
SVCHOST進程是很正常的,在受感染的機器中到底哪個是病毒進程呢?這
裡僅舉一例來說明。

  假設Windows XP系統被「W32.Welchia.Worm」感染了。正常的
SVCHOST文件存在於「C:\Windows\system32」目錄下,如果發現該文件出
現在其他目錄下就要小心了。「W32.Welchia.Worm」病毒存在於
「C:\Windows\system32\wins」目錄中,因此使用進程管理器查看SVCHOST
進程的執行文件路徑就很容易發現系統是否感染了病毒。Windows系統自
帶的任務管理器不能夠查看進程的路徑,可以使用第三方進程管理軟件,
如「Windows優化大師」進程管理器,通過這些工具就可很容易地查看到
所有的SVCHOST進程的執行文件路徑,一旦發現其執行路徑為不平常的位
置就應該馬上進行檢測和處理。

  由於篇幅的關係,不能對SVCHOST全部功能進行詳細介紹,這是一個
Windows中的一個特殊進程,有興趣的朋友可參考有關技術資料進一步去
了解它。
win2000= http://support.microsoft.com/default.aspx?scid=kben-us250320
winxp= http://support.microsoft.com/default.aspx?scid=kben-us314056

資料來源=
http://hk.groups.yahoo.com/group/window_xpgroup/message/4876

參考資料
http://hk.groups.yahoo.com/group/window_xpgroup/message/4876

發表迴響 »

仍無迴響。

RSS feed for comments on this post. TrackBack URI

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

在 WordPress.com 建立免費網站或網誌.

%d 位部落客按了讚: