解析Windows XP操作系統進程
很多朋友面對系統中的進程,往往感到茫然,不知它們具有什么功能;是否可以結束其運行,以節省系統資源;哪個進程比較可疑,可能是木馬……其實進程應該可理解為處于活動狀態的計算機程序,它在操作系統中執行特定的任務。
本文,筆者將以Windows XP操作系統為例,為大家介紹系統進程的相關內容。
揪出可疑進程 揭露進程偽裝術 進程級別有高低 進程樹的妙用 封殺進程的另類方法 Win9X/Me也能擁有WinXP的任務管理器
揪出可疑進程
系統進程一般包括:基本系統進程和附加進程。基本系統進程是系統運行的必備條件,只有這些進程處于活動狀態,系統才能正常運行;而附加進程則不是必需的,你可以按需新建或結束。我們就先來了解一下哪些是最基本的系統進程。
1.基本系統進程
Csrss.exe:這是子系統服務器進程,負責控制Windows創建或刪除線程以及16位的虛擬DOS環境。
System Idle Process:這個進程是作為單線程運行在每個處理器上,并在系統不處理其它線程的時候分派處理器的時間。
Smss.exe:這是一個會話管理子系統,負責啟動用戶會話。
Services.exe:系統服務的管理工具。
Lsass.exe:本地的安全授權服務。
Explorer.exe:資源管理器。
Spoolsv.exe:管理緩沖區中的打印和傳真作業。
Svchost.exe:這個進程要著重說明一下,有不少朋友都有這種錯覺:若是在“任務管理器”中看到多個Svchost.exe在運行,就覺得是有病毒了。其實并不一定,系統啟動的時候,Svchost.exe將檢查注冊表中的位置來創建需要加載的服務列表,如果多個Svchost.exe同時運行,則表明當前有多組服務處于活動狀態;多個DLL文件正在調用它。
至于其它一些附加進程,大多為系統服務,是可以酌情結束運行的。由于其數量眾多,我們在此也不便于一一列舉。
在系統資源緊張的情況下,我們可以選擇結束一些附加進程,以增加資源,起到優化系統的作用。在排除基本系統及附加進程后,新增的陌生進程就值得被大家懷疑了。
2.常見木馬進程
廣外女生:Diagcfg.exe進程。
WAY無賴小子:Msgsvc.exe進程。
冰河木馬:Kernel32.exe進程。
BO2000木馬:Umgr32.exe進程。
客觀地說,目前主流的木馬在配置服務器時,很多都具有自定義進程名稱的功能,例如《粉色信鴿》等。因此在判定木馬時,其進程名稱不止一種,寄希望于通過進程名稱,查找木馬服務器端的方法,已不太具適用性了。所以,我們需要自己的判斷,揪出進程中的“害群之馬”。
3.自行分析可疑進程
軟件名稱:柳葉擦眼
軟件版本:V4.00 Beta 1
軟件大小:374KB
軟件語言:簡體中文
應用平臺:Win9X/NT/2000/XP
下載地址
我們運行《柳葉擦眼》后,鼠標雙擊系統托盤中的該程序圖標,即可看到主界面(圖1)。在此大家將會注意到,程序已為你標示出了系統文件。因此,大家只需注意那些“定義級別”為“未知”及“危險”的進程,這樣就大大縮小了我們的判定范圍。當你發現有問題的進程后,選定并點擊“降妖伏魔”按鈕即可封殺該進程。
圖 1
為了使程序更趨于我們的使用習慣,大家可以自定義設置。點擊左側視圖中的“參數設置”,在右側界面中可設定是否標示系統文件、正常文件及危險文件;是否所有程序均可運行;是否自動關閉危險文件;還可設定檢測刷新時間(圖2)。
圖 2
我們可看到“定義文件列表”中顯示的是程序預置的定義級別及其功能說明。可根據個人機器的程序運行情況,自行添加定義。例如,平日經常使用“Virtual PC”虛擬機等程序,可將它設置為“正常文件”。在“添加文件定義”彈出窗口中(圖3),輸入“程序名稱”及“功能說明”并定義級別即可。另外,也可將已知的木馬進程添加為“危險文件”。最后,點擊“確定并保存設置”按鈕。經過這一番定制后,哪些進程存在問題就一目了然了。
圖 3
我們在程序中執行的各項操作,將會被自動記錄下來,大家在“柳葉日志”中可以查看(圖4)。
圖 4
揭露進程偽裝術
木馬偽裝技術的發展可謂日新月異,由進程隱藏到進程插入,使得在查殺方面越來越難以應付了。一般具有進程插入功能的木馬會把自身注入其它應用程序的地址空間,而這個應用程序對于系統來說,是一個絕對安全的程序。
即使我們查找出了DLL插入進程,如果它是嵌入在系統基本進程中的,如“svchost.exe”等進程,我們是無法結束其運行的。
下面,將以實例演示一下線程插入類后門是如何在機器上運行的。我們以目前比較流行的“Devil4.exe”(魔鬼4號)程序為例。
運行“EditDevil4.exe”配置程序后,在顯示界面中設置“配置文件”(即需要在目標上激活的可執行文件)、端口(可自定義,本例中為9000)、密碼及插入進程(一般設置為系統基本進程,本例中為Explorer.exe)(圖5)。配置完畢后,執行確認操作,使其生效。
圖 5
一旦目標機器激活了配置好的程序,“Devil4.exe”將立即插入至指定進程中。我們可使用“fport v2.0”這款系統工具查看所有開放的TCP和UDP端口,并顯示相應的應用程序(支持WinNT4/2000/XP)。運行“命令提示符”后,進入fport程序的存儲路徑,運行它。
大家注意查看其中的“Explorer.exe”進程,看到其TCP協議開放端口為適才筆者所定制9000端口,此時表明病毒進程插入成功(圖6)。“Devil4.exe”后門本身具有刪除程序,運行“DelDevil4.exe”程序后,就可清除駐留系統中的后門。
圖 6
小提示:如果大家要封殺可疑端口,可以使用Active Ports及DBPort之類的第三方端口工具。這兩款軟件均是圖形化界面,操作方法非常類似。不僅可自動刷新進程,還能夠立即關閉指定端口。對于線程插入類木馬的查殺,并非一件輕而易舉的事,由于在配置插入進程時使用者可隨意指定,因此,大家一定要安裝殺毒軟件并定期升級病毒庫。
如果要手動查殺,則需要用戶具有相當的知識水平與一定的經驗積累。在此給大家推薦一款比較優秀的軟件——進程間諜。利用它,可以查看窗口和子窗口句柄、ID、標題,以及父進程ID線程個數路徑等,還可獲知指定父進程的下屬模塊……我們要著重利用該程序的可查看DLL模塊的功能,試圖找出可疑的插入進程。
軟件名稱:進程間諜
軟件版本:V1.0.2.1
軟件語言:簡體中文
軟件類型:共享軟件
應用平臺:Win9X/Me/2000/XP/2003
下載地址
運行《進程間諜》程序后,查看“進程樹”標簽頁,點擊“刷新進程”按鈕,而后選擇左側列表的進程,當選定一個進程后,程序開始處理相關信息。我們切換到當前右側視圖中的“模塊”標簽頁(圖7),在此顯示了很多該進程中插入的DLL線程,包括“模塊名”(需要著重查看)、“基地地址”、“大小”及“進入口”。大家從中即可仔細排查可疑線程,例如廣外女生的DLL插入線程是“%system32gwboydll.dll”。
圖 7
進程級別有高低
我們在使用MyIE 2瀏覽網頁時,又同時運行了下載工具等。這種情況下,我們就可以通過相應的設置,使系統優先處理MyIE 2,為它分配更多的CPU資源。
按“Ctrl+Alt+Del”組合鍵,調出“Windows任務管理器”,查看“進程”標簽頁,選定其中希望優先處理的程序后,在其右鍵彈出菜單中選擇“設置優先級→‘高’或‘高于標準’”(圖8)。而其它在后臺處理的程序,則可將進程設置為“低”或“低于標準”。
圖 8
小提示:如果調節進程優先級別后,感覺CPU占用率過高,要實時還原為原來的級別,以免系統因資源耗盡而當機。進程樹的妙用
我們在“Windows任務管理器”中,可以看到在指定進程的右鍵彈出菜單中有一項“結束進程樹”的選項(圖9)。那么這個“進程樹”是什么呢?
圖 9
一個應用程序運行后,還可能調用其它的進程來執行操作,這一組進程就形成了一個進程樹(進程樹可能是多級的,并非只有一個層次的子進程)。該應用程序稱之為父進程,其所調用的對象稱之為子進程。當我們結束一個進程樹后,即表示同時結束了其所屬的所有子進程,此種方法常用于對可復制自身的木馬進程的封殺。即當發現木馬進程后,選擇“結束進程樹”。但是,Windows系統自身的任務管理器并不具備顯示子進程的功能。我們可利用“Process Viewer”這款軟件,實現詳細查看進程樹的目的。
軟件名稱:Process Viewer
軟件版本:v3.7.3.1
軟件語言:英文
軟件類型:免費軟件
應用平臺:Win9X/NT/2000/XP/2003
軟件大小:92KB
下載地址
運行“Process Viewer”程序后,在其主界面中將實時顯示當前運行的進程。大家點擊菜單欄上的“View→Process Tree”,在彈出對話框中即可以進程樹的模式查看相關進程(圖10)。
圖 10
下面,筆者要提及一下其它實用功能。當你選擇主界面中的指定進程后,點擊菜單欄上的“Process→Startup Info”,在彈出對話框中大家將獲知其啟動信息,在“Start directory”選項中顯示的是啟動路徑;在“Command Line”選項中顯示的是命令行;在“Environment”中顯示的是環境。
另外,如果你希望了解某個進程對應的是哪個應用程序或反之。則需要選擇指定進程后,點擊菜單欄上的“View→Applications”,在彈出對話框中就可查看。
封殺進程的另類方法
在上文中,我們已經提及了如何在“Windows任務管理器”中結束進程。但那只是常規方式,現在,我們就來玩玩別出心裁的非常規進程封殺方式。
1.封殺對方機器進程
我們可以利用兩種方法實現這一目的。第一種就是使用遠程控制程序,目前大部分木馬都具有查看被控端主機進程的功能,而且還可以遠程結束指定進程。這部分內容相信對系統安全感興趣的朋友都非常熟悉了,因此,就不詳細介紹了。第二種方法,就是使用專門結束進程的工具——自定義殺進程。運行程序后,在其中文本框中(圖11)輸入欲結束的進程名稱(注意:是“進程”列表中的名稱,而非應用程序名稱),而后會“生成”一個文件。通過某種途徑使它在目標機器上激活,就可封殺對方機器的指定進程了。
圖 11
小提示:如果你需要經常在遠程機器上管理進程,那么還是選擇一款專業工具為佳。Remote Task Manager就是一款能夠讓你在遠程管理系統進程的軟件(適用于WinNT的機器),就如同在本地機器使用“Windows 任務管理器”一樣。
2.定時封殺本機進程
軟件名稱:進程終結者
軟件版本:V1.0
軟件語言:簡體中文
應用平臺:Win9X/NT/Me/2000/XP
軟件大小:44KB
下載地址
運行程序后,首先選擇列表中的指定進程,如“wnb.exe”(萬能五筆),然后在其右側視圖中指定經過多長時間后結束該進程,再點擊“定時終結”按鈕(圖12),該程序到時就可立即退出。
圖 12
3.封殺不可見窗口的進程
對于某些在后臺運行的木馬服務器,我們從屏幕上當然是看不見的,但如果能夠獲取隱藏的不可見窗口,就有可能查看到木馬的蹤影。
軟件名稱:系統查看大師
軟件版本:V1.0.0
軟件語言:簡繁中文
軟件類型:共享軟件
運行環境:Win9X/NT/2000/XP
軟件大小:559 KB
下載地址
我們直接運行下載后的《系統查看大師》主程序即可,在其左側視圖中點擊“取不可見窗口”按鈕。此后,在其右側的進程列表中就將顯示出所有當前運行的未在屏幕上直觀顯示出的窗口標題(圖13)。選定其中的可疑窗口后,點擊右下端的“結束此窗口”按鈕即可。
圖 13
Win9X/Me系統也能擁有WinXP的任務管理器
Windows XP系統的用戶,可以使用“任務管理器”,輕松查看系統進程,但是,Windows 98/Me的用戶,卻只能查看當前運行的應用程序。為了使這部分用戶也能夠管理系統進程。筆者為大家介紹一款與XP系統的“任務管理器”最為相似的第三方軟件。
軟件名稱:Windows任務管理器
軟件版本:V2.22
軟件大小:769 KB
軟件語言:簡體中文
應用平臺:Win95/98/Me 下載地址
運行“Windows任務管理器”后,大家看看其界面,是不是和Windows XP的同類工具像同胞兄弟?我們切換到“進程”標簽頁,在其中顯示出了當前處于活動狀態的進程。選擇其中指定的進程后,點擊下方的“進程細節”按鈕,在彈出對話框中(圖14)可選擇查看“文件細節”、“線程細節”及“模塊細節”等。其中在“模塊細節”標簽頁中,可以獲知該進程所調用的若干DLL文件。另外,為了便于隨時應用“Windows任務管理器”,建議將它設置為隨系統自動運行。
圖 14
結語:筆者以上所介紹的若干關于系統進程方面的應用,雖說不是非常全面,但從中也足可看出,這小小進程,原來還有這么大的學問