最近似乎有很多人因為「svchost.exe應用程式錯誤」而煩惱不已。
以下是可能的症狀:
1.上網上到一半會跳出『svchost.exe應用程式錯誤
2.應用程式發生例外
不明的軟體例外錯誤(0xc0000409)於位置0x69a0a3c0』類似這樣的錯誤訊息視窗
對於該訊息視窗,若永不理會,則仍舊可以上網,
但若點選「確定」或「取消」即無法正常上網(此時網路是沒有問題的)

這個情況,經微軟證實,是其作業系統之漏洞。修補方法請先上微軟網站,下載 KB921883 該修正檔,並安裝至電腦上。

微軟相關網址:
http://www.microsoft.com/downloads/details.aspx?FamilyID=2996b9b6-03ff-4636-861a-46b3eac7a305&DisplayLang=zh-tw
 
以上方法請有類似問題的網友試試看吧。為了電腦系統的安全及穩定性,請定時上微軟網站檢查是否有相關更新檔案。

全面瞭解系統中 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」(圖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文件的調用路徑可以通過「系統訊息→軟體環境→正在運行任務」來查看.

全站熱搜

金魚不是魚 發表在 痞客邦 留言(0) 人氣()