解讀SVCHOST.EXE 病毒or系統進程?

大家對 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 又怎麼知道某個系統服務該調用哪個動態鏈接庫呢 ? 這是通過系統服務在註冊表中設置的參數來實現。

  三、實例應用

   以 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%system32rpcss.dll” ,其中 “rpcss.dll” 就是 rpcss 服務要使用的動態鏈接庫文件。這樣 svchost 進程通過讀取 “rpcss” 服務註冊表信息,就能啓動該 服務了。

  四、解惑疑點

  因爲 svchost 進程啓動各種服務,所以病毒、木馬也想盡辦法來利用它,企圖利用它的特性來迷惑用戶,達到感染、 入侵、破壞的目的 ( 如衝擊波變種病毒 “w32.welchia.worm”) 。但 windows 系統存在多個 svchost 進程是很正常的,在受感 染的機器中到底哪個是病毒進程呢 ? 這裏僅舉一例來說明。

  假設 windows xp 系統被 “w32.welchia.worm” 感染了。正常的 svchost 文件存 在於 “c:windowssystem32” 目錄下,八哥網 (http://www.it8g.com ) 專家介紹發現該文件出現在其 他目錄下就要小心了。 “w32.welchia.worm” 病毒存在於 “c:windowssystem32wins” 目錄中,因此使用進程管理器查看 svchost 進程的執行文件路徑就很容易發現系統是否感染了病毒

  系統自帶的任務管理器不能夠查看進程的路徑,可以使用第三方進程管理軟件,如 “windows 優化大師 進程管理器, 通過這些工具就可很容易地查看到所有的 svchost 進程的執行文件路徑,一旦發現其執行路徑爲不平常的位置就應該馬上進行檢測和處理。

 

 

推薦兩篇文章:

RPC 編程

http://www.ibm.com/developerworks/cn/aix/library/au-rpc_programming/

瞭解 TCP 系統調用序列

http://www.ibm.com/developerworks/cn/aix/library/au-tcpsystemcalls/

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章