upside
反病毒 反詐騙 反虐犬
|
分享:
x0
|
[資訊教學] 全面瞭解系統中 svchost.exe 檔案
全面瞭解系統中 svchost.exe 檔案
筆者經常在一些反病毒論壇上瀏覽時,發現一些朋友對任務管理器中的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」,這說明Remote Registry服務是依靠svchost呼叫「LocalService」參數來實現的,而參數的內容則是存放在系統註冊表中的。
在執行對話框中輸入「regedit.exe」後Enter,開啟註冊表編輯器,找到「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檔案的呼叫路徑可以通過「系統訊息→軟體環境→正在執行任務」來檢視
|