資源描述:
《加殼與脫殼殺毒軟件技術(shù)的意義》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、加殼與脫殼殺毒軟件技術(shù)的意義~教育資源庫(kù) 如果生命是一種執(zhí)著的力量,那么總有一種力量,比生命更加執(zhí)著,就是死亡!當(dāng)你去深刻思考死亡這兩個(gè)字的含義,用心去感受生命的來(lái)臨與離去,更或許有的人,需要在他彌留之際,才能真正理解生命的價(jià)值。 在計(jì)算機(jī)的世界里,病毒就是一種執(zhí)著的力量,那么殺毒軟件,就是死亡的力量;也或者病毒才是死亡的力量,不管怎樣,殺毒軟件是一種不可或缺的東西?! ∫?、殺毒軟件引擎與病毒庫(kù)的關(guān)系 其實(shí)病毒庫(kù)與殺毒引擎沒(méi)有直接的關(guān)系,殺毒引擎的任務(wù)和功能非常簡(jiǎn)單,就是對(duì)指定的文件或者程序進(jìn)行判斷其是否合法。而病毒庫(kù),
2、只不過(guò)是對(duì)殺毒引擎的一種補(bǔ)充,那個(gè)過(guò)程,就是殺毒引擎對(duì)文件或者程序判斷。明白這一點(diǎn),就應(yīng)該知道,好的殺毒軟件,重要在引擎的優(yōu)秀,病毒庫(kù)越大,殺毒速度肯定會(huì)降低。因?yàn)椴《編?kù)殺毒的過(guò)程,是引擎把判斷能力交給病毒庫(kù),用病毒庫(kù)與指定的文件進(jìn)行對(duì)比判斷。 二、加殼、脫殼 1.什么是加殼:所謂加殼,是一種通過(guò)一系列數(shù)學(xué)運(yùn)算,將可執(zhí)行程序文件或動(dòng)態(tài)鏈接庫(kù)文件的編碼進(jìn)行改變(目前還有一些加殼軟件可以壓縮、加密驅(qū)動(dòng)程序),以達(dá)到縮小文件體積或加密程序編碼的目的?! ‘?dāng)被加殼的程序運(yùn)行時(shí),外殼程序先被執(zhí)行,然后由這個(gè)外殼程序負(fù)責(zé)將用戶原有的程
3、序在內(nèi)存中解壓縮,并把控制權(quán)交還給脫殼后的真正程序。一切操作自動(dòng)完成,用戶不知道也無(wú)需知道殼程序是如何運(yùn)行的。一般情況下,加殼程序和未加殼程序的運(yùn)行結(jié)果是一樣的?! ∪绾闻袛嘁粋€(gè)可執(zhí)行文件是否被加了殼呢?有一個(gè)簡(jiǎn)單的方法(對(duì)中文軟件效果較明顯)。用記事本打開(kāi)一個(gè)可執(zhí)行文件,如果能看到軟件的提示信息則一般是未加殼的,如果完全是亂碼,則多半是被加殼的?! 槭裁春诳湍軌蚶眉託ぜ夹g(shù)來(lái)對(duì)抗反病毒軟件呢?眾所周知,目前殺毒軟件主要依靠特征碼技術(shù)查殺病毒。由于加殼軟件會(huì)對(duì)源文件進(jìn)行壓縮、變形,使加密前后的特征碼完全不同?! ∶摎つ芰Σ粡?qiáng)
4、的殺毒軟件,對(duì)付加殼后病毒就需要添加兩條不同的特征記錄。如果黑客換一種加殼工具加殼,則對(duì)于這些殺毒軟件來(lái)說(shuō)又是一種新的病毒,必須添加新的特征記錄才能夠查殺。如果殺毒軟件的脫殼能力較強(qiáng),則可以先將病毒文件脫殼,再進(jìn)行查殺,這樣只需要一條記錄就可以對(duì)這些病毒通殺,不僅減小殺毒軟件對(duì)系統(tǒng)資源的占用,同時(shí)大大提升了其查殺病毒的能力?! ?.脫殼 馬甲能穿也能脫。相應(yīng)的,有加殼也一定會(huì)有解殼(也叫脫殼)。脫殼主要有兩種方法:硬脫殼和動(dòng)態(tài)脫殼?! 〉谝环N,是硬脫殼,這是指找出加殼軟件的加殼算法,寫(xiě)出逆向算法,就像壓縮和解壓縮一樣。由于,
5、目前很多殼均帶有加密、變形的特點(diǎn),每次加殼生成的代碼都不一樣。硬脫殼對(duì)此無(wú)能為力,但由于其技術(shù)門(mén)檻較低,仍然被一些殺毒軟件所使用。 第二種,是動(dòng)態(tài)脫殼。由于加殼的程序運(yùn)行時(shí)必須還原成原始形態(tài),即加殼程序會(huì)在運(yùn)行時(shí)自行脫掉馬甲。目前,有一種脫殼方式是抓?。―ump)內(nèi)存中的鏡像,再重構(gòu)成標(biāo)準(zhǔn)的執(zhí)行文件。相比硬脫殼方法,這種脫殼方法對(duì)自行加密、變形的殼處理效果更好?! ∪⑻摂M機(jī)脫殼引擎(VUE)技術(shù) 對(duì)于病毒,如果讓其運(yùn)行,則用戶計(jì)算機(jī)就會(huì)被病毒感染。因此,一種新的思路被提出,即給病毒構(gòu)造一個(gè)仿真的環(huán)境,誘騙病毒自己脫掉馬甲
6、。并且虛擬環(huán)境和用戶的計(jì)算機(jī)隔離,病毒在虛擬機(jī)的操作不會(huì)對(duì)用戶計(jì)算機(jī)有任何的影響?! √摂M機(jī)脫殼技術(shù)已經(jīng)成為近年來(lái)全球安全業(yè)界公認(rèn)的、解決這一問(wèn)題的最有效利器。但由于編寫(xiě)虛擬機(jī)系統(tǒng)需要解決虛擬CPU、虛擬周邊硬件設(shè)備、虛擬驅(qū)動(dòng)程序等多個(gè)方面的困難?! ∷?、啟發(fā)式殺毒 病毒和正常程序的區(qū)別可以體現(xiàn)在許多方面,比較常見(jiàn)的如:通常一個(gè)應(yīng)用程序在最初的指令,是檢查命令行輸入有無(wú)參數(shù)項(xiàng)、清屏和保存原來(lái)屏幕顯示等,而病毒程序則沒(méi)有會(huì)這樣做的,通常它最初的指令是直接寫(xiě)盤(pán)操作、解碼指令,或搜索某路徑下的可執(zhí)行程序等相關(guān)操作指令序列。這些顯著
7、的不同之處,一個(gè)熟練的程序員在調(diào)試狀態(tài)下只需一瞥便可一目了然。啟發(fā)式代碼掃描技術(shù)實(shí)際上就是把這種經(jīng)驗(yàn)和知識(shí)移植到一個(gè)查病毒軟件中的具體程序體現(xiàn)?! l(fā)式指的自我發(fā)現(xiàn)的能力或運(yùn)用某種方式或方法去判定事物的知識(shí)和技能。一個(gè)運(yùn)用啟發(fā)式掃描技術(shù)的病毒檢測(cè)軟件,實(shí)際上就是以特定方式實(shí)現(xiàn)的動(dòng)態(tài)高度器或反編譯器,通過(guò)對(duì)有關(guān)指令序列的反編譯逐步理解和確定其蘊(yùn)藏的真正動(dòng)機(jī)。例如,如果一段程序以如下序列開(kāi)始:MOVAH,5/INT,13h,即調(diào)用格式化盤(pán)操作的BIOS指令功能,那么這段程序就高度可疑值得引起警覺(jué),尤其是假如這段指令之前不存在取得
8、命令行關(guān)于執(zhí)行的參數(shù)選項(xiàng),又沒(méi)有要求用戶交互性輸入繼續(xù)進(jìn)行的操作指令時(shí),就可以有把握地認(rèn)為這是一個(gè)病毒或惡意破壞的程序?! l(fā)式殺毒代表著未來(lái)反病毒技術(shù)發(fā)展的必然趨勢(shì),具備某種人工智能特點(diǎn)的反毒技術(shù),向我們展示了一種通用的、不需升級(jí)(較省需要升級(jí)或不依賴于升級(jí))的病毒檢測(cè)技