打開peid,選擇主窗口的“任務(wù)查看器”,如圖所以,上面和windows自帶的進(jìn)程管理器一樣,顯示的是每個(gè)進(jìn)程的文件名,選取其中一個(gè)進(jìn)程,就會(huì)在下面看到這個(gè)進(jìn)程中所加載的dll文件。
可以看到explorer.exe中已經(jīng)注入了FlashGet的一個(gè)插件,這個(gè)插件的作用是在IE中如果點(diǎn)擊了一個(gè)下載鏈接,F(xiàn)lashGet會(huì)自動(dòng)彈出來詢問是否下載。這個(gè)過程就是通過注入了dll文件來監(jiān)控的。
自然,如果注入了惡意的dll文件,那么自然會(huì)對(duì)程序乃至系統(tǒng)帶來危害。
上面列出了注冊(cè)表中常見的自動(dòng)啟動(dòng)的程序清單位置,一般查毒的時(shí)候只需要對(duì)其中的項(xiàng)目進(jìn)行檢查。
一般而言,如果shell和AppInit_DLLs這兩個(gè)項(xiàng)目與正常值不同的話,那么其中表示的文件一般就極有可能是病毒了。
對(duì)于Run目錄下的文件,按照下面的原則來查毒:
如果項(xiàng)目的路徑在Program Files下面,又能確認(rèn)這是安裝的一個(gè)軟件,那么便可以排除是病毒:
圖:可以從是否有是隱藏文件來區(qū)分病毒和正常文件
目前除非十分特殊的目的,比如防止用戶修改,應(yīng)用程序很少具有隱藏和系統(tǒng)屬性,所以,如果懷疑的項(xiàng)目具有隱藏屬性,一般就可以確定是病毒了。
b.通過“版本”信息來確定
在編寫應(yīng)用程序時(shí),編寫者往往會(huì)把程序的版本信息、版權(quán)信息附加在程序中,可以在應(yīng)用程序的上按右鍵,察看屬性來看到版本信息。
版本信息中往往指名了程序的用圖,對(duì)于病毒而已,往往沒有版本信息
圖:regedit.exe的版本信息
圖:偽裝的病毒沒有版本信息
c.是用PEiD查看應(yīng)用程序簽名
這里介紹的便是PEid的主要功能,exe、dll文件等程序文件均有一個(gè)統(tǒng)一的名字:PE文件,他們往往是由各類程序設(shè)計(jì)語(yǔ)言,比如C++/VB產(chǎn)生的,或者直接又人工匯編編寫。
對(duì)于前者,各類程序設(shè)計(jì)語(yǔ)言生成的PE文件在其代碼開始處的某些固定字節(jié)總是固定的,基于這樣一個(gè)原理,可以來判斷某個(gè)應(yīng)用程序時(shí)什么編程語(yǔ)言編寫的:
圖:用Peid發(fā)現(xiàn)BitComet采用VC7編寫
目前的技術(shù):加殼,簡(jiǎn)單些說就是將原先的程序包裹起來(比如壓縮起來),然后把負(fù)責(zé)解包的程序覆蓋在這個(gè)應(yīng)用程序的頭部,這樣以后運(yùn)行這個(gè)程序時(shí),實(shí)際上是先由解包程序恢復(fù)出原來的程序,然后再運(yùn)行。
用于壓縮程序的軟件aspack、upx就是一種加殼程序,同樣,也能用Peid檢測(cè):
采用aspack壓縮的程序,peid會(huì)顯示:
ASPack 2.1 -> Alexey Solodovnikov
通常來說,目前常見的應(yīng)用程序采用加殼程序的并不多見,但有一定例外,如金山詞霸、CoralQQ。一些游戲?yàn)榱藴p少空間,其主程序也可能會(huì)壓縮加殼。
而常見得加殼軟件有:安全軟件、各類注冊(cè)機(jī)、各類算號(hào)器、加殼軟件本身以及病毒。這是因?yàn)檫@類程序往往需要通過網(wǎng)絡(luò)傳播,所以對(duì)體積有一定要求,同時(shí)目前加殼的目的除了壓縮以外更重要的是能夠保證程序不被反匯編,即起到加密保護(hù)作用。
對(duì)于病毒,它不但希望減少自身體積,也希望加密代碼,防止分析出工作機(jī)制。所以,病毒程序被加殼的概率很大??梢酝ㄟ^peid提示文字,或者在擴(kuò)展工具中檢測(cè)是否加殼來判斷。
也有極端的情況,就是病毒直接由編寫者通過匯編編寫,那么往往peid會(huì)無法獲得信息,這樣的情況也要地方。
不過采用peid分析的辦法要求有一定的基本功底,所以對(duì)于大多數(shù)人來說僅僅作為參考。
如果確定一個(gè)文件是病毒,首先要做的是是用進(jìn)程管理器將其關(guān)閉。
圖:將病毒文件進(jìn)程關(guān)閉
這樣可以確保病毒停止運(yùn)作,如果有很多病毒,務(wù)必將他們都停止了。
下一步便是把注冊(cè)表中的對(duì)應(yīng)項(xiàng)目刪除,然后刪除文件即可。
對(duì)于無法終止進(jìn)程的情況:
如果無法停止病毒進(jìn)程,意味著病毒文件無法刪除,同時(shí)即時(shí)在注冊(cè)表中刪除了對(duì)應(yīng)項(xiàng)目,病毒也往往會(huì)重新添加一遍。
對(duì)于這樣的情況,可以首先將病毒文件重命名,比如將hook.exe改外hook.ex_。這樣的操作是可行的。病毒往往不會(huì)去監(jiān)控自己的文件名是否更改,這樣一來,在下次重啟時(shí),由于已經(jīng)不存在hook.exe了,病毒就不會(huì)再加載,這樣就可以放心的把注冊(cè)表項(xiàng)目和文件刪除了。
2.在系統(tǒng)服務(wù)中查毒
這是目前各類病毒和流氓軟件的趨勢(shì),即病毒作為系統(tǒng)服務(wù)存在。這類病毒不會(huì)出現(xiàn)在上述的注冊(cè)表和啟動(dòng)項(xiàng)目中,但這類病毒也會(huì)隨開機(jī)自動(dòng)啟動(dòng),也擁有各大的權(quán)限。所以一般查毒必須檢查系統(tǒng)服務(wù)。
系統(tǒng)服務(wù)是在windows系統(tǒng)中扮演核心功能的一類程序,比如開設(shè)web服務(wù)器的話,就會(huì)有IIS服務(wù)。
目前也有很多軟件也有自己的服務(wù)程序,比如安裝了Windows Live Messenger,會(huì)有“共 享 USN 雜 志 閱 讀器 ”這個(gè)服務(wù)。目前的殺毒軟件的核心監(jiān)控程序也均是通過系統(tǒng)服務(wù)實(shí)現(xiàn)的。
自然,病毒注冊(cè)為系統(tǒng)服務(wù)也不再少數(shù),著名的木馬“灰鴿子”便是一個(gè)系統(tǒng)服務(wù)。
圖:系統(tǒng)服務(wù)列表
自動(dòng)類型的系統(tǒng)服務(wù)會(huì)在系統(tǒng)啟動(dòng)后立刻執(zhí)行,手動(dòng)類型的服務(wù)只有通過其他程序加載或者人工開啟才能執(zhí)行,而禁用類型的服務(wù)只有改變了他的啟動(dòng)類型才可能執(zhí)行。
如果病毒注冊(cè)成為系統(tǒng)服務(wù),啟動(dòng)類型自然便是“自動(dòng)”,同時(shí)如果目前處在中毒環(huán)境下,自然其運(yùn)行狀態(tài)為:已啟動(dòng)。
因而,可以首先列出自動(dòng)啟動(dòng)類型的服務(wù),然后通過查看其功能描述(病毒往往不寫功能描述,或者會(huì)偽裝)。然后查看這個(gè)服務(wù)的文件路徑,再采用第一部分提到的判斷病毒的辦法來確定是否可能是病毒。
對(duì)于懷疑的病毒項(xiàng)目,可以雙擊他,在屬性對(duì)話框中先將其停止,然后設(shè)為“已禁用”來關(guān)閉這個(gè)服務(wù)。
圖:如果懷疑是病毒,可以將其關(guān)閉并禁用
作為系統(tǒng)服務(wù),其運(yùn)行能力完全可以通過系統(tǒng)來控制,所以一般將其設(shè)為禁用后便可,如果偷懶完全不用刪除文件本身。但是如果想刪除病毒本身,請(qǐng)務(wù)必按下面方法進(jìn)行:
2.1 如何刪除系統(tǒng)服務(wù)
如果想將一個(gè)懷疑是病毒的系統(tǒng)服務(wù)刪除,并不是將服務(wù)關(guān)閉,刪文件那么容易。首相要將其禁用。然后刪除文件。不這樣做的后果是,如果服務(wù)仍舊未自動(dòng)啟動(dòng)類型,在下次啟動(dòng)windows時(shí),由于無法找到這個(gè)要啟動(dòng)的服務(wù)程序,windows便認(rèn)為系統(tǒng)便無法工作,于是會(huì)藍(lán)屏。
刪除了文件后,還需要將注冊(cè)的服務(wù)項(xiàng)目刪除,也就是在注冊(cè)表中刪除。這個(gè)過程可以用第3方工具來進(jìn)行,也可以親在在regedit中編輯。
系統(tǒng)服務(wù)對(duì)應(yīng)的目錄是:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001(或者002\003,所有的都可能)\Services HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
這樣服務(wù)列表中便不存在該服務(wù)了。
圖:必須將項(xiàng)目的整個(gè)目錄刪除
3.采用msconfig簡(jiǎn)化查毒過程。
winXP用戶可以在運(yùn)行中輸入msconfig工具來查看當(dāng)前的系統(tǒng)服務(wù)、自動(dòng)加載的程序,簡(jiǎn)化一定的步驟。不過對(duì)于注冊(cè)表項(xiàng)目,shell和AppInit_DLLs并不能在其中看到!
可以利用msconfig來鑒別系統(tǒng)服務(wù):
圖:可以通過制造商來判斷病毒
往往病毒編寫者會(huì)忘記填寫制造商名,所以對(duì)于沒有制造商信息的服務(wù)要格外注意,不過即使制造商為microsoft,也不能排除偽造的可能。
花了近一個(gè)小時(shí)。終于把這貼搞完。小小見解希望對(duì)新手有用
聯(lián)系客服