揭開 svchost.exe 程序之謎

Home Home
引用 | 編輯 billjrm
2005-04-15 15:50
樓主
推文 x2
以下資訊是從 PCZONE 轉貼過來,希望對各位有所幫助..^_^

------------------------------------------------------------

svchos.exe是 NT 核心系統的非常重要的程序,對於2000、XP 來說,不可或缺。很多病毒、木馬也會使用它。所以,深入了解這個程式,是玩電腦的必修課之一。

大家對 Windows作業系統一定不陌生,但你是否注意到系統中“svchost.exe”這個文件呢?細心的朋友會發現 Windows中存在多個 “svchost”程序(通過“ctrl+alt+del”鍵打開工作管理員,這裡的“處理程序”標籤中就可看到了),為什麼會這樣呢?下面就來揭開它神秘的面紗。


發現
====
在基於 NT 核心的 Windows作業系統家族中,不同版本的 Windows系統,存在不同數量的“svchost”程序,用戶使用“工作管理員”可查看其程序數目。一般來說,win2000有兩個svchost程序,Windows XP中則有四個或四個以上的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”命令。

svchost中可以包含多個服務


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

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

從啟動參數中可見服務是靠svchost來啟動的。


實例
====
以windows xp為例,點擊“開始”/“執行”,輸入“services.msc”命令,彈出服務對話方塊,然後打開“remote procedure call”屬性對話方塊,可以看到rpcss服務的可執行文件的路徑為“c:\windows\system32\svchost -k rpcss”,這說明rpcss服務是依靠s ..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 Kilian
2005-04-16 09:33
1樓
  
Longhorn b4087 有 13 個 svchost; 表情

有病毒叫做 scvhost (注意英文字);

PCZONE 好像部份轉貼了 MS KB:
http://support.microsoft.com/default.aspx?scid=kb;zh-tw;314056

獻花 x0
引用 | 編輯 richardlam25
2005-04-16 23:34
2樓
  
內容很深奧, 看不明白...
感謝分享

獻花 x0
引用 | 編輯 howiechen616
2005-04-20 09:03
3樓
  
謝謝您的解說,讓我對svchost.exe 加深認知,以前看到工作管理員跑出那麼多同樣的東西時,真的讓人不解,感謝您在此解說...

獻花 x0
引用 | 編輯 utzon
2007-04-06 12:18
4樓
  
<win2003 server中則更多> 表情
這句話對現在的我來說簡直是像天堂般的福音啊 表情
看見論壇一直有需多關於這個程式的說法,總是依直讓我內心感受到一絲絲的不安
直到看見這一句 表情
已經將所有關於這該死的svchost.EXE看完了.
心理也放下一塊石頭,現在就是趕快備分了~一天的辛苦總算是有了收穫 表情

獻花 x0
引用 | 編輯 ten_c2003
2007-07-26 08:51
5樓
  
看了好像明白,又好像不明白,還是謝謝如此細心解說,不過,我用殺毒軟件清除,應該不回有後遺症吧? 表情

獻花 x0
引用 | 編輯 oooopppp1
2008-06-08 04:17
6樓
  
It's a good article and I got many useful information from it. thanks for your sharing, as well as take more wonderful knowledge from you. Cheers up! 表情

獻花 x0
引用 | 編輯 free543
2008-06-16 08:20
7樓
  
有感動
正在想這個東西......

獻花 x0
引用 | 編輯 X226941981
2010-10-27 00:45
8樓
  
原來是這樣子
難怪我的電腦常常出現狀況 長知識了...........

獻花 x0
引用 | 編輯 aa690510
2011-02-08 13:27
9樓
  
表情 這樣更了解了電腦

獻花 x0
引用 | 編輯 jackzone1
2011-03-01 16:58
10樓
  
感恩分享 表情

獻花 x0
引用 | 編輯 zswill5566
2011-06-21 18:05
11樓
  
那在win7里呢 我剛剛大略算了一下約有上百來個呢 真是嚇人 難怪開一會機器 上個網路 跑些程式 記憶體就30%左右了 表情

獻花 x0
引用 | 編輯 arthur8523
2011-07-13 20:26
12樓
  
謝謝你的解說- -之前看過類似文章指svchost並不是病毒,但沒有樓主這樣詳細-0-

獻花 x0
引用 | 編輯 Zigzap
2011-08-14 15:03
13樓
  
謝謝版主,這跟   微軟 knowledge database 寫得一樣好 表情

獻花 x0
引用 | 編輯 cplnam
2011-09-10 13:43
14樓
  
我希望有程式可以輕易監管這些程序....
我有點被混淆了...

獻花 x0
引用 | 編輯 freeze02468
2013-12-31 01:31
15樓
  
真的很感謝大大能提供這麼實用的教學!

小弟上到了寶貴的一課! 真的是受益良多阿! 表情

獻花 x0
引用 | 編輯 ddp995101
2014-11-29 20:56
16樓
  
其實也不難 現今防毒軟體都可以掃到病毒 好幾年前就跟新

獻花 x0