楊流浪艦隊司令官 | 【教學】如何利用Process Explorer及TCPView觀察記憶體中的問題程序及對外連線行為 Process Explorer (下載點: http://www.sysinternals.com/Utilitie...sExplorer.html) 當我們懷疑記憶體中有木馬病毒或遠端遙控程式在常駐的時候,我們常會打開工作管理員來檢查,可是工作管理員只顯示執行中程式的名稱,卻無法顯示該程式的所在目錄,倘若問題程式是以類似某系統程式的名稱出現,自然很容易可以判斷程式的真偽,不過萬一問題程式是以相同於某系統程式的名稱出現,那就很容易讓管理者產生誤判了。 舉例來說,Windows系統有一支相當重要,卻常被冒名的系統程序svchost.exe,它存放在%Systemroot%\System32(註1)目錄下,木馬病毒常以類似的檔案名稱如svhost.exe、svhost32.exe或svch0st.exe出現,以混淆管理者的視聽,其中W32.Welchia.Worm病毒更以同檔名、不同存放目錄的方式(註2)出現。透過工作管理員是很難有效判斷程式真偽的,所以在此介紹各位改用Sysinternals的免費程式Process Explorer來替代工作管理員。只要透過簡單的設定修改,就可以在Process Explorer主畫面下觀察到所有執行中程序的所在目錄,因此對於以同檔名不同存放目錄出現的問題程式就能夠一眼看穿了。 (註1. %Systemroot%是指作業系統的安裝目錄,如Windows XP的預設安裝目錄C:\Windows或Windows 2000的預設安裝目錄C:\Winnt。 註2. W32.Welchia.Worm病毒的svchost.exe程式存放在%Systemroot%\Wins目錄下,與真正的系統程序svchost.exe是分別存放在不同目錄下的。) 第一次執行Process Explorer,將看到如下畫面。在畫面中,您可以看見目前在記憶體中執行的所有程序,甚至每支程序所連結的動態連結資料庫(DLL)檔案,不過在原始主化中式無法看見每隻執行程序的所在目錄的,因此請依照下列說明修改顯示設定。 請拉下上方的View選單,選取Select Columns選項。 這時會開啟一個標題為Select Columns的設定畫面,請切換畫面到Process Image分頁,然後勾選Image Path設定,並點取下方的確定按鈕。 回到主畫面下,這時您就可以看到每一支執行中程序的所在目錄了,像W32.Welchia.Worm病毒這種以同檔名、不同存放目錄的方式出現的冒牌系統程序,就再也逃不過您的法眼了。 如果您還是無從判定哪支執行程序是真、哪支執行程序是假的話,建議您下拉File選單,執行Save as指令將畫面結果另存檔案,並將檔案內容貼到版上,這樣版上眾高手就可以根據您的執行程序幫您找出問題程序了。 TCPView (下載點: http://www.sysinternals.com/Utilities/TcpView.html) 很多朋友問我,要怎樣才能觀察自己的電腦有沒有異常的連線行為,在過往我會建議對方利用netstat –an的指令做連線查詢,可是眼尖的看倌應該會發現一個問題,就是我沒辦法從netstat –an的查詢結果看出究竟是哪支程式在對外連線,這樣我要怎麼追查造成異常連線的程式究竟是哪一支呢? TCPView的優點就是補足netstat –an指令的不足之處,它不但會顯示所有對外連線記錄,還會顯示每筆連線記錄是由哪支程式造成的,雖然在TCPView畫面中無法看出連線程式的所在目錄,不過只要搭配上述介紹的Process Explorer就可以輕易看出端倪了。 |
回覆 |
會員 | 感謝樓主的用心教學,不過Process Explorer這套有一個缺點,就是當 某些病毒是利用真正的svchost作入侵動作時,這套並無法顯示是哪一個process綁架了svchost,這樣說,可能有些抽象,打個比方好了,svchost好比是一台公車,上面可以載很多乘客(process),正常情況下(OS沒中毒)上車的乘客都是正常的(如:system process),但有時候卻會有澳客(病毒),而如果防火牆是設定為允許svchost對外連線的,如此便給澳客可乘之機,把好康的(重要資料)帶到車上,並從容不迫的帶下車,只因為這台公車是被允許在路上走的~ 以XP來說,svchost是可以被很多process利用的,所以稱它為:公車,另外像explorer也是一台公車,因此一個查票員(可以觀看svchost下的每一個process)的軟體是必須的,當svchost的CPU使用率突然飆高並持續一段很長時間時,這時該員便扮演了關鍵性的角色~ 很遺憾的,目前小弟目前並沒有發現此類軟體,記得以前有找到類似軟體,不過卻缺少了觀看CPU使用率的功能,實在是可惜阿~ 另外,對於Process Explorer這套軟體,總覺得它對於process的排序有點奇怪,怎麼會以System Idle Process和explorer為最上層? 這和工作管理員的排序方式實在是天差地別,在工作管理員裡面,System Idle Process 是和其它Process平行的,所以後來小弟就放棄使用這套了~ 目前小弟採用的防毒策略為:將病毒or木馬會利用到的系統檔更名 ,讓駭客無可乘之機,例如:tftp.exe(上傳木馬用)、regedit(更改登錄值用)、net.exe(提升帳號權限用)、format.com(格式化硬碟)..等~ 但是由於XP有WFP(系統檔案保護)機制的關係,因此想對系統檔更名,必須想辦法繞過這個機制,因此...... 算了~不想講的太詳細,以免被駭客看到反反制就不好了 當然,防毒+防火牆是不可少的~ |
回覆 |
あなたの家に行く | 琥珀覺得 Process Explorer 並沒有錯。採用樹狀階層或是平行,只是為了方便讓使用者觀看。嚴格說來,用樹狀結構是比較正確的。 可以試著對 explorer.exe 分別採用「結束處理程序」和「結束處理樹」。一個會結束 explorer.exe 進程,另一個則是把 explorer.exe 之下的相關進程一起結束掉。 上半部是系統/核心進程,下半部是使用者進程,所以 Process Explorer 才會讓 System Idle Process 和 explorer.exe 平行吧? |
回覆 |
會員 | 引用:
Process Viewer3.7.3.1 中文化版(連至軟體王下載) | |
回覆 |
楊流浪艦隊司令官 | 沒有任何的產品能百分之百滿足所有用戶的需求 包括百萬級的網管產品都常會被客戶抱怨功能不符需求了 更何況是免費的小工具程式呢? 這只是個小小的教學,讓程度普通的網友學會利用工具程式去觀察異狀罷了 實在沒必要對文中介紹的小程式吹毛求疵吧 況且您也提不出完美的工具程式,不是嗎? |
回覆 |
會員 | 引用:
的好意絕對是值得肯定的,但是並非一定要歌功頌德才行,如果有 不同的意見或更好的建議都是可以提出來的,不是嗎? 樓主說出了Process Explorer的優點,但我提出了它的缺點,並非 要否定樓主,而是提供更多的意見給觀文者,誠如你所說,沒有百分百的軟體,既然有缺點為何不可以提出來呢? 至少可以讓user知道它的弱項在哪~ 尋找可以補足該缺點的軟體以達到互補的作用. 當然,要我提出完美的工具,當然更不可能~ 理由同上所述~ 行文至此,雖然有點火藥味,但還是感謝樓主的用心,提供圖文並茂的教學,雖然該軟體有缺點,但瑕不掩瑜,對非專業玩家而言,應該蠻 受用了~ | |
回覆 |
會員 | 引用:
是Svchost的部份,老實講,我非常同意您的觀點,用樹狀結構的確 是比較正確的,至少主從關係會比較清楚,從Process的名稱看來, 上半部我也是猜系統/核心進程,下半部是使用者進程,只不過對 System Idle Process排名最上層有點不理解,而Explorer亦然~ 相較於Process Viewer,Explorer並非是在最上層,只能說 每套軟體都有它的排序規則,看你習慣與否吧? | |
回覆 |
あなたの家に行く | 剛試了一下 Process Viewer,功能和 Process Explorer 大同小異。 Process Viewer 是依名稱排序,如果名稱相同就依 Process ID (PID) 的大小決定。 Windows 工作管理員的處理程序,在 Win2000 是依 PID 排序。也可以點選上面的任何一個標籤,選擇想要的排序方式。 Process Viewer 和 Process Explorer 的進程樹,結果是一樣的。 System Idle Process 照字面上解釋,不就是「系統閒置進程」?這種概念並不是 NT 系統才有的,在 UNIX 系統就有這樣的觀念、雛形,只是微軟把這些概念移植到 NT 系統上。想要深入研究,真的只能找作業系統的原文書來看了。 |
回覆 |
會員 | 引用:
有點眼花了~ 對了,突然間想到XP的tasklist/svc指令可以列出svchost下的 Process,不過就是無法同步秀出CPU的使用率,是很可惜的地方~ 不然當Svchost的CPU使用率很高時,就可以知道是哪一個Process造成的了~ | |
回覆 |
楊流浪艦隊司令官 | 對不起,我沒有要引起筆戰的意思,我只是將我的感覺說出來而已~~ 老實說,當初寫這篇文章的目的,是因為我在另一個論壇看到很多網友連最基本的檢查能力都沒有 所以才想到要找一些簡單易用的免費工具程式來教導這些網友如何作自我檢查 既然是免費的工具程式,我想就不該對它多所挑剔了,我的目的僅止於此而已 如果在遣詞用句上造成您的不悅,敬請見諒~~ 不過話說回來,每個人的需求都不相同,自然會對軟體功能做上一番挑選,這是無可厚非的事情 像rien本身就不使用TCPView來觀察連線狀況,因為它能提供的資訊實在有限 所以我都直接使用Network General的Sniffer Portable / Sniffer Distributed或NetScout的nGenius Performance Manager來觀察網路上的流量狀況,必要時甚至將相關的封包擷取下來作細部分析 Sniffer的功能比TCPView強上何止百倍,這應該沒有人有異議吧? 問題是假如我拿這套軟體出來介紹,那些連網路基本概念都沒有的網友們能夠馬上上手嗎? 以我多年Sniffer講師的經歷來看,那是不可能的事情! 同樣的道理,對那些不了解系統的網友來說,他們需要的會是什麼呢? 是簡單易用易懂且功能符合所需的工具程式,還是功能超強卻操作複雜又難以理解的全功能軟體呢? 因材施教才是教學的重點,這樣有錯嗎? 所以說,假如您已經是高手能人,建議您直接跳過這幾篇教學吧,因為這種程度的工具程式並不適合您! 在這邊大肆批評程式的功能只會讓初學者更加無所適從而已,請站在初學者的立場想想我說的可有道理好嗎? |
回覆 |
XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。