解讀Svchost.exe進(jìn)程之迷 保護(hù)系統(tǒng)安全 |
發(fā)布時間: 2012/7/4 15:48:59 |
svchost.exe是nt核心系統(tǒng)的非常重要的進(jìn)程,對于2000、xp來說,不可或缺。很多病毒、木馬也會調(diào)用它。所以,深入了解這個程序,是玩電腦的必修課之一。 大家對windows操作系統(tǒng)一定不陌生,但你是否注意到系統(tǒng)中“svchost.exe”這個文件呢?細(xì)心的朋友會發(fā)現(xiàn)windows中存在多個 “svchost”進(jìn)程(通過“ctrl+alt+del”鍵打開任務(wù)管理器,這里的“進(jìn)程”標(biāo)簽中就可看到了),為什么會這樣呢?下面就來揭開它神秘的面紗。 發(fā)現(xiàn) 在基于nt內(nèi)核的windows操作系統(tǒng)家族中,不同版本的windows系統(tǒng),存在不同數(shù)量的“svchost”進(jìn)程,用戶使用“任務(wù)管理器”可查看其進(jìn)程數(shù)目。一般來說,win2000有兩個svchost進(jìn)程,winxp中則有四個或四個以上的svchost進(jìn)程(以后看到系統(tǒng)中有多個這種進(jìn)程,千萬別立即判定系統(tǒng)有病毒了喲),而win2003 server中則更多。這些svchost進(jìn)程提供很多系統(tǒng)服務(wù),如:rpcss服務(wù)(remote procedure call)、dmserver服務(wù)(logical disk manager)、dhcp服務(wù)(dhcp client)等。 如果要了解每個svchost進(jìn)程到底提供了多少系統(tǒng)服務(wù),可以在win2000的命令提示符窗口中輸入“tlist -s”命令來查看,該命令是win2000 support tools提供的。在winxp則使用“tasklist /svc”命令。 svchost中可以包含多個服務(wù) 深入 windows系統(tǒng)進(jìn)程分為獨(dú)立進(jìn)程和共享進(jìn)程兩種,“svchost.exe”文件存在于“%systemroot% system32”目錄下,它屬于共享進(jìn)程。隨著windows系統(tǒng)服務(wù)不斷增多,為了節(jié)省系統(tǒng)資源,微軟把很多服務(wù)做成共享方式,交由 svchost.exe進(jìn)程來啟動。但svchost進(jìn)程只作為服務(wù)宿主,并不能實(shí)現(xiàn)任何服務(wù)功能,即它只能提供條件讓其他服務(wù)在這里被啟動,而它自己卻不能給用戶提供任何服務(wù)。那這些服務(wù)是如何實(shí)現(xiàn)的呢? 原來這些系統(tǒng)服務(wù)是以動態(tài)鏈接庫(dll)形式實(shí)現(xiàn)的,它們把可執(zhí)行程序指向 svchost,由svchost調(diào)用相應(yīng)服務(wù)的動態(tài)鏈接庫來啟動服務(wù)。那svchost又怎么知道某個系統(tǒng)服務(wù)該調(diào)用哪個動態(tài)鏈接庫呢?這是通過系統(tǒng)服務(wù)在注冊表中設(shè)置的參數(shù)來實(shí)現(xiàn)。下面就以rpcss(remote procedure call)服務(wù)為例,進(jìn)行講解。 從啟動參數(shù)中可見服務(wù)是靠svchost來啟動的 實(shí)例 以windows xp為例,點(diǎn)擊“開始”/“運(yùn)行”,輸入“services.msc”命令,彈出服務(wù)對話框,然后打開“remote procedure call”屬性對話框,可以看到rpcss服務(wù)的可執(zhí)行文件的路徑為“c:\windows\system32\svchost -k rpcss”,這說明rpcss服務(wù)是依靠svchost調(diào)用“rpcss”參數(shù)來實(shí)現(xiàn)的,而參數(shù)的內(nèi)容則是存放在系統(tǒng)注冊表中的。 在運(yùn)行對話框中輸入“regedit.exe”后回車,打開注冊表編輯器,找到[hkey_local_machine systemcurrentcontrolsetservicesrpcss]項(xiàng),找到類型為“reg_expand_sz”的鍵“magepath”,其鍵值為“%systemroot%system32svchost -k rpcss”(這就是在服務(wù)窗口中看到的服務(wù)啟動命令),另外在“parameters”子項(xiàng)中有個名為“servicedll”的鍵,其值為“% systemroot%system32rpcss.dll”,其中“rpcss.dll”就是rpcss服務(wù)要使用的動態(tài)鏈接庫文件。這樣 svchost進(jìn)程通過讀取“rpcss”服務(wù)注冊表信息,就能啟動該服務(wù)了。 解惑 因?yàn)閟vchost進(jìn)程啟動各種服務(wù),所以病毒、木馬也想盡辦法來利用它,企圖利用它的特性來迷惑用戶,達(dá)到感染、入侵、破壞的目的(如沖擊波變種病毒“w32.welchia.worm”)。但windows系統(tǒng)存在多個svchost進(jìn)程是很正常的,在受感染的機(jī)器中到底哪個是病毒進(jìn)程呢?這里僅舉一例來說明。 假設(shè)windows xp系統(tǒng)被“w32.welchia.worm”感染了。正常的svchost文件存在于“c:\windows\system32”目錄下,如果發(fā)現(xiàn)該文件出現(xiàn)在其他目錄下就要小心了。“w32.welchia.worm”病毒存在于“c:\windows\system32wins”目錄中,因此使用進(jìn)程管理器查看svchost進(jìn)程的執(zhí)行文件路徑就很容易發(fā)現(xiàn)系統(tǒng)是否感染了病毒。windows系統(tǒng)自帶的任務(wù)管理器不能夠查看進(jìn)程的路徑,可以使用第三方進(jìn)程管理軟件,如“windows優(yōu)化大師”進(jìn)程管理器,通過這些工具就可很容易地查看到所有的svchost進(jìn)程的執(zhí)行文件路徑,一旦發(fā)現(xiàn)其執(zhí)行路徑為不平常的位置就應(yīng)該馬上進(jìn)行檢測和處理。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |