精華區beta AntiVirus 關於我們 聯絡資訊
全面瞭解系統中 svchost.exe 文件 張貼者: Banana 張貼日期: 2004-07-10 13:11 筆者經常在一些反病毒論壇上瀏覽時,發現一些朋友對任務管理器中的svchost進程不甚 瞭解,看見存在許多svchost進程就以為自己中了病毒,其實不然。 svchost.exe是NT核心繫統非常重要的文件,對於Win2000/XP來說,不可或缺。這些 svchost進程提供很多系統服務,如:rpcss服務(remote procedure call)、dmserver 服務(logical disk manager)、dhcp服務(dhcp client)等等。 如果要瞭解每個svchost進程到底提供了多少系統服務,可以在WinXP的命令提示符窗口中 輸入「tasklist /svc」命令來查看。 工作原理 一般來說,Windows系統進程分為獨立進程和共享進程兩種。svchost.exe文件存在於 %systemroot%\system32目錄下,屬於共享進程。 隨著Windows系統服務不斷增多,為了節省系統資源,微軟把很多服務都做成共享方式, 交由svchost進程來啟動。但svchost進程只作為服務宿主,並不能實現任何服務功能,即 它只能提供條件讓其他服務在這裡被啟動,而它自己卻不能給用戶提供任何服務。 這些服務是如何實現的呢?原來這些系統服務是以動態鏈接庫(dll)形式實現的,它們把 可執行程式指向svchost,由svchost調用相應服務的動態鏈接庫來啟動服務。 那svchost又怎麼知道某個系統服務該調用哪個動態鏈接庫呢?這是通過系統服務在註冊表 中設置的參數來實現的。 具體實例 下面以Remote Registry服務為例,來看看svchost進程是如何調用DLL文件的。在WinXP中 ,點擊「開始→運行」,輸入「services.msc」命令,會彈出服務對話框,然後打開「 Remote Registry」屬性對話框,可以看到Remote Registry服務的可執行文件的路徑為「 C:\Windows\System32\svchost -k LocalService」(圖1),這說明Remote Registry服 務是依靠svchost調用「LocalService」參數來實現的,而參數的內容則是存放在系統註 冊表中的。 在運行對話框中輸入「regedit.exe」後回車,打開註冊表編輯器,找到「 HKEY_LOCAL_MACHINE\System\currentcontrolset\services\Remote Registry」項,再找 到類型為「reg_expand_sz」的「Imagepath」項,其鍵值為「 %systemroot%\system32\svchost -k LocalService」(這就是在服務窗口中看到的服務 啟動命令),另外在「parameters」子項中有個名為「ServiceDll」的鍵,其值為「% systemroot%\system32\regsvc.dll」,其中「regsvc.dll」就是Remote Registry服務要 使用的動態鏈接庫文件。這樣svchost進程通過讀取「Remote Registry」服務註冊表訊息 ,就能啟動該服務了。 也正是因為svchost的重要性,所以病毒、木馬也想盡辦法來利用它,企圖利用它的特性 來迷惑用戶,達到感染、入侵、破壞的目的。那麼應該如何判斷到底哪個是病毒進程呢? 正常的svchost.exe文件應該存在於「C:\Windows\system32」目錄下,如果發現該文件出 現在其他目錄下就要小心了。 提示:svchost.exe文件的調用路徑可以通過「系統訊息→軟體環境→正在運行任務」來 查看. CRETIX Security? - http://www.hacker.org.tw 原創作者: 電腦報 文章來源: EFASHIONBOY 正體台灣化: CRETIX Security -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.175.86.82 ※ 編輯: fino 來自: 218.175.86.82 (04/04 10:56)
posoce:講解的好清楚!推~ 140.123.221.83 04/04
untitle:推正體台灣化140.117.199.194 04/04