解析Svchost.exe和Explorer.exe兩大系統程式(zt)

tonykorn97發表於2006-08-28
在本文中我們將著重介紹一下Windows系統的Svchost.exe和Explorer.exe兩種程式,作為Windows系統中兩種重要的程式,下面我們就來看看他們的特點以及在各個作業系統中的應用。
Explorer

  在Windows系列的作業系統中,執行時都會啟動一個名為Explorer.exe的程式。這個程式主要負責顯示系統桌面上的圖示以及工作列,它在不同的系統中有不同的妙用。

  Explorer在Windows 9x中的應用

  在Windows 9x中,這個程式是執行系統時所必需的。如果用“結束任務”的方法來結束Explorer.exe程式,系統就會重新整理桌面,並更新登錄檔。所以,我們也可以利用此方法來快速更新登錄檔。方法如下:

  按下Ctrl+Alt+Del組合鍵,出現“結束任務”對話方塊。在該對話方塊中選擇“Explorer”選項,然後單擊“結束任務”按鈕,將出現“關閉Windows”對話方塊。單擊“否”按鈕,系統過一會兒將出現另一個對話方塊,告訴你該程式沒有響應,詢問是否結束任務。單擊“結束任務”按鈕,則更新登錄檔並返回Windows 9x系統環境中。這比起煩瑣的重新啟動過程要方便多了?

  Explorer在Windows 2000/XP中的應用  

  在Windows 2000/XP和其他Windows NT核心的系統中,Explorer.exe程式並不是系統執行時所必需的,所以可以用工作管理員來結束它,並不影響系統的正常工作。開啟你需要執行的程式,如記事本。然後右擊工作列,選擇“工作管理員”,選中“程式”選項卡,在視窗中選擇Explorer.exe程式,單擊“結束程式”按鈕,,接下來桌面上除了桌布(活動桌面Active Desktop的桌布除外),所有圖示和工作列都消失了。此時你仍可以像平常一樣操作一切軟體。  

  如果你想執行其他軟體,但此時桌面上空無一物,怎麼辦?彆著急,下面有兩種可以巧妙地開啟其他軟體:

  第一種方法:按下Ctrl+Alt+Del組合鍵,出現“Windows安全”對話方塊,單擊“工作管理員”按鈕(或是直接按下Ctrl+Shift+Esc組合鍵),在工作管理員視窗中選中“應用程式”選項卡,單擊“新任務”,在彈出的“建立新任務”的對話方塊中,輸入你想要開啟的軟體的路徑和名稱即可。

  你還可以在正在執行的軟體上,選擇“檔案→開啟”,在“開啟”對話方塊中,點選“檔案型別”下拉選單,選擇“所有檔案”,再瀏覽到你想開啟的軟體,右擊它,在快捷選單中選擇“開啟”命令,就可以啟動你需要的軟體了。注意,此時不能夠透過單擊“開啟”按鈕來開啟軟體,此種方法適用於大多數軟體,Office系列除外。

  透過結束Explorer.exe程式,還可以減少4520KB左右的系統已使用記憶體,無疑會加快系統的執行速度,為資源緊張的使用者騰出了寶貴的空間。

  Svchost.exe

  Svchost.exe是NT核心系統的非常重要的程式,對於2000、XP來說,不可或缺。很多病毒、木馬也會呼叫它。所以,深入瞭解這個程式,是玩電腦的必修課之一。

  大家對Windows作業系統一定不陌生,但你是否注意到系統中“Svchost.exe”這個檔案呢?細心的朋友會發現Windows中存在多個 “Svchost”程式(透過“ctrl+alt+del”鍵開啟工作管理員,這裡的“程式”標籤中就可看到了),為什麼會這樣呢?下面就來揭開它神秘的面紗。

  在基於NT核心的Windows作業系統家族中,不同版本的Windows系統,存在不同數量的“Svchost”程式,使用者使用“工作管理員”可檢視其程式數目。一般來說,Win 2000有兩個Svchost程式,Win XP中則有四個或四個以上的Svchost程式(以後看到系統中有多個這種程式,千萬別立即判定系統有病毒了喲),而Win 2003 server中則更多。這些Svchost程式提供很多系統服務,如:rpcss服務(remote procedure call)、dmserver服務(logical disk manager)、dhcp服務(dhcp clieNT)等。

  如果要了解每個Svchost程式到底提供了多少系統服務,可以在Win 2000的命令提示符視窗中輸入“tlist -s”命令來檢視,該命令是Win 2000 support tools提供的。在Win XP則使用“tasklist /svc”命令。

  Svchost中可以包含多個服務

  Windows系統程式分為獨立程式和共享程式兩種,“Svchost.exe”檔案存在於“%systemroot% system32”目錄下,它屬於共享程式。隨著Windows系統服務不斷增多,為了節省系統資源,微軟把很多服務做成共享方式,交由 Svchost.exe程式來啟動。但Svchost程式只作為服務宿主,並不能實現任何服務功能,即它只能提供條件讓其他服務在這裡被啟動,而它自己卻不能給使用者提供任何服務。那這些服務是如何實現的呢?

  原來這些系統服務是以動態連結庫(dll)形式實現的,它們把可執行程式指向 Svchost,由Svchost呼叫相應服務的動態連結庫來啟動服務。那Svchost又怎麼知道某個系統服務該呼叫哪個動態連結庫呢?這是透過系統服務在登錄檔中設定的引數來實現。

  從啟動引數中可見服務是靠Svchost來啟動的。

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

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

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

相關文章