剖析程式中SVCHOST的作用和原理(轉)

RegisterForBlog發表於2007-08-11
剖析程式中SVCHOST的作用和原理(轉)[@more@]

  走進SVCHOST

  SVCHOST程式現在是聲名狼藉,本來Windows用它來啟動各種服務,可是偏偏病毒、木馬也想盡辦法來利用它,企圖利用它的特性來迷惑使用者,達到感染、入侵、破壞的目的(如衝擊波變種病毒“W32.Welchia.Worm”),弄的大家草木皆兵一見有SVCHOST就懷疑自己是否已經中招,其實Windows系統存在多個SVCHOST程式是很正常的,在受感染的機器中到底哪個是病毒程式呢?這裡僅舉一例來說明。

  

  假設Windows XP系統被“W32.Welchia.Worm”感染了。正常的SVCHOST檔案存在於“C:Windowssystem32”目錄下,如果發現該檔案出現在其他目錄下就要小心了。“W32.Welchia.Worm”病毒存在於“C:Windowssystem32wins”目錄中,因此使用程式管理器檢視SVCHOST程式的執行檔案路徑就很容易發現系統是否感染了病毒。Windows系統自帶的工作管理員不能夠檢視程式的路徑,可以使用第三方程式管理軟體,如“Windows最佳化大師”程式管理器,透過這些工具就可很容易地檢視到所有的SVCHOST程式的執行檔案路徑,一旦發現其執行路徑為不平常的位置就應該馬上進行檢測和處理。

  

  在基於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”命令。

  

  深入分析SVCHOST

  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:WINDOWSsystem32svchost -k rpcss”,這說明RpcSs服務是依靠SVCHOST呼叫“rpcss”引數來實現的,而引數的內容則是存放在系統登錄檔中的。

  

  在執行對話方塊中輸入“regedit.exe”後回車,開啟登錄檔編輯器,找到[HKEY_LOCAL_MACHINE SYSTEMCurrentControlSetServicesRpcSs]項,找到型別為“REG_EXPAND_SZ”的鍵“magePath”,其鍵值為“%SystemRoot%system32svchost -k rpcss”(這就是在服務視窗中看到的服務啟動命令),另外在“Parameters”子項中有個名為“ServiceDll”的鍵,其值為“%SystemRoot%system32 pcss.dll”,其中“rpcss.dll”就是rpcss服務要使用的動態連結庫檔案。這樣SVCHOST程式透過讀取“RpcSs”服務登錄檔資訊,就能啟動該服務了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10763080/viewspace-948399/,如需轉載,請註明出處,否則將追究法律責任。

相關文章