久艹视频免费看,亚洲成av人综合在线观看,51久久夜色精品国产水果派解说,gogo全球大胆高清人体444

知識(shí)學(xué)堂
  • ·聯(lián)系電話:+86.023-75585550
  • ·聯(lián)系傳真:+86.023-75585550
  • ·24小時(shí)手機(jī):13896886023
  • ·QQ 咨 詢:361652718 513960520
當(dāng)前位置 > 首頁(yè) > 知識(shí)學(xué)堂 > 常見技術(shù)問題
剖析Windows進(jìn)程SVCHOST的作用和原理
更新時(shí)間:2011-09-26 | 發(fā)布人:本站 | 點(diǎn)擊率:511

SVCHOST進(jìn)程現(xiàn)在是聲名狼藉,本來(lái)Windows用它來(lái)啟動(dòng)各種服務(wù),可是偏偏病毒、木馬也想盡辦法來(lái)利用它,企圖利用它的特性來(lái)迷惑用戶,達(dá)到感染、入侵、破壞的目的(如沖擊波變種病毒“W32.Welchia.Worm”),弄的大家草木皆兵一見有SVCHOST就懷疑自己是否已經(jīng)中招,其實(shí)Windows系統(tǒng)存在多個(gè)SVCHOST進(jìn)程是很正常的,在受感染的機(jī)器中到底哪個(gè)是病毒進(jìn)程呢?這里僅舉一例來(lái)說(shuō)明。
假設(shè)Windows XP系統(tǒng)被“W32.Welchia.Worm”感染了。正常的SVCHOST文件存在于“C:\Windows\system32”目錄下,如果發(fā)現(xiàn)該文件出現(xiàn)在其他目錄下就要小心了!癢32.Welchia.Worm”病毒存在于“C:\Windows\system32\wins”目錄中,因此使用進(jìn)程管理器查看SVCHOST進(jìn)程的執(zhí)行文件路徑就很容易發(fā)現(xiàn)系統(tǒng)是否感染了病毒。Windows系統(tǒng)自帶的任務(wù)管理器不能夠查看進(jìn)程的路徑,可以使用第三方進(jìn)程管理軟件,如“Windows優(yōu)化大師”進(jìn)程管理器,通過(guò)這些工具就可很容易地查看到所有的SVCHOST進(jìn)程的執(zhí)行文件路徑,一旦發(fā)現(xiàn)其執(zhí)行路徑為不平常的位置就應(yīng)該馬上進(jìn)行檢測(cè)和處理。

在基于NT內(nèi)核的Windows操作系統(tǒng)家族中,不同版本的Windows系統(tǒng),存在不同數(shù)量的“SVCHOST”進(jìn)程,用戶使用“任務(wù)管理器”可查看其進(jìn)程數(shù)目。一般來(lái)說(shuō),Win2000有兩個(gè)SVCHOST進(jìn)程,WinXP中則有四個(gè)或四個(gè)以上的SVCHOST進(jìn)程(以后看到系統(tǒng)中有多個(gè)這種進(jìn)程,千萬(wà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)等。

如果要了解每個(gè)SVCHOST進(jìn)程到底提供了多少系統(tǒng)服務(wù),可以在Win2000的命令提示符窗口中輸入“Tlist -S”命令來(lái)查看,該命令是Win2000 Support Tools提供的。在WinXP則使用“tasklist /svc”命令。

深入分析SVCHOST

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)程來(lái)啟動(dòng)。但SVCHOST進(jìn)程只作為服務(wù)宿主,并不能實(shí)現(xiàn)任何服務(wù)功能,即它只能提供條件讓其他服務(wù)在這里被啟動(dòng),而它自己卻不能給用戶提供任何服務(wù)。那這些服務(wù)是如何實(shí)現(xiàn)的呢?

原來(lái)這些系統(tǒng)服務(wù)是以動(dòng)態(tài)鏈接庫(kù)(DLL)形式實(shí)現(xiàn)的,它們把可執(zhí)行程序指向SVCHOST,由SVCHOST調(diào)用相應(yīng)服務(wù)的動(dòng)態(tài)鏈接庫(kù)來(lái)啟動(dòng)服務(wù)。那SVCHOST又怎么知道某個(gè)系統(tǒng)服務(wù)該調(diào)用哪個(gè)動(dòng)態(tài)鏈接庫(kù)呢?這是通過(guò)系統(tǒng)服務(wù)在注冊(cè)表中設(shè)置的參數(shù)來(lái)實(shí)現(xiàn)。下面就以RpcSs(Remote Procedure Call)服務(wù)為例,進(jìn)行講解。實(shí)例:筆者以Windows XP為例,點(diǎn)擊“開始”/“運(yùn)行”,輸入“services.msc”命令,彈出服務(wù)對(duì)話框,然后打開“Remote Procedure Call”屬性對(duì)話框,可以看到RpcSs服務(wù)的可執(zhí)行文件的路徑為“C:\WINDOWS\system32\svchost -k rpcss”,這說(shuō)明RpcSs服務(wù)是依靠SVCHOST調(diào)用“rpcss”參數(shù)來(lái)實(shí)現(xiàn)的,而參數(shù)的內(nèi)容則是存放在系統(tǒng)注冊(cè)表中的。

在運(yùn)行對(duì)話框中輸入“regedit.exe”后回車,打開注冊(cè)表編輯器,找到[HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Services\RpcSs]項(xiàng),找到類型為“REG_EXPAND_SZ”的鍵“magePath”,其鍵值為“%SystemRoot%\system32\svchost -k rpcss”(這就是在服務(wù)窗口中看到的服務(wù)啟動(dòng)命令),另外在“Parameters”子項(xiàng)中有個(gè)名為“ServiceDll”的鍵,其值為“%SystemRoot%\system32\rpcss.dll”,其中“rpcss.dll”就是rpcss服務(wù)要使用的動(dòng)態(tài)鏈接庫(kù)文件。這樣SVCHOST進(jìn)程通過(guò)讀取“RpcSs”服務(wù)注冊(cè)表信息,就能啟動(dòng)該服務(wù)了。