當(dāng)生命的執(zhí)著遇到死亡的力量,一定會碰撞出激烈的火花;當(dāng)病毒的執(zhí)著遇到殺毒軟件的力量,也一定會出現(xiàn)備受爭議的話題。當(dāng)我們還沒有真正認(rèn)識到殺毒軟件之于網(wǎng)絡(luò)安全有多么重要的時候,它已經(jīng)悄然成為了安全領(lǐng)域的焦點,連帶著一些殺毒的技術(shù)也成為了網(wǎng)友津津樂道的話題,例如殺毒能力和病毒庫的關(guān)系,例如啟發(fā)式殺毒到底好在哪里。
作為與用戶的計算機同命運的安全軟件,防病毒軟件一直都受到人們的特別關(guān)注,其實在有關(guān)殺毒軟件的能力問題的爭論背后更多的是對殺毒技術(shù)的關(guān)注。
焦點話題一、殺毒軟件引擎與病毒庫的關(guān)系
從理論上講,病毒庫與殺毒引擎沒有直接的關(guān)系,殺毒引擎的任務(wù)非常簡單,就是對指定的文件或者程序進行判斷其是否合法。而病毒庫,只不過是對殺毒引擎的一種補充,也就是說:“我們沒有足夠聰明的殺毒引擎來完成這個過程”,這里所提到的過程,就是殺毒引擎對文件或者程序的判斷。
看到這里,我們就明白了:好的殺毒軟件,重要在引擎的優(yōu)秀,病毒庫只不過是補充,而且病毒庫越大,殺毒的速度會隨之降低,這是一個反比的關(guān)系。因為病毒庫殺毒的過程,是引擎把判斷能力交給病毒庫,用病毒庫與指定的文件進行對比判斷。這就是為什么很多網(wǎng)友總是抱怨卡巴斯基全面掃描的速度總是那么慢,原因之一它有一個太過強大的病毒庫,間接拉下了殺毒的速度。
焦點問題二、有關(guān)加殼、脫殼技術(shù)的種種
什么是加殼?
所謂加殼,是通過一系列數(shù)學(xué)運算,將可執(zhí)行程序文件或動態(tài)鏈接庫文件的編碼進行改變(目前還有一些加殼軟件可以壓縮、加密驅(qū)動程序),以達到縮小文件體積或加密程序編碼的目的。當(dāng)被加殼的程序運行時,外殼程序先被執(zhí)行,然后由這個外殼程序負(fù)責(zé)將用戶原有的程序在內(nèi)存中解壓縮,并把控制權(quán)交還給脫殼后的真正程序。一切操作自動完成,用戶不知道也無需知道殼程序是如何運行的。一般情況下,加殼程序和未加殼程序的運行結(jié)果是一樣的。
判斷一個可執(zhí)行文件是否被加殼的簡單方法:用記事本打開一個可執(zhí)行文件,如果能看到軟件的提示信息則一般是未加殼的,如果完全是亂碼,多半是已經(jīng)被加殼了。
病毒編寫者為什么喜歡使用加殼技術(shù)?
眾所周知,目前大部分殺毒軟件主要依靠特征碼技術(shù)查殺病毒。由于加殼軟件會對源文件進行壓縮、變形,使加密前后的特征碼完全不同。脫殼能力不強的殺毒軟件,對付“加殼”后病毒就需要添加兩條不同的特征記錄。如果病毒編寫者換一種加殼工具加殼,那么對于殺毒軟件來說又是一種新的病毒,需要添加新的特征記錄才能夠查殺。
應(yīng)對“加殼”而生的技術(shù)—脫殼
相對加殼而言,能夠?qū)⒓託の募€愿成源文件的過程就是“脫殼”。脫殼主要有兩種方法:硬脫殼和動態(tài)脫殼。 第一種,是硬脫殼,這是指找出加殼軟件的加殼算法,寫出逆向算法,就像壓縮和解壓縮一樣。由于,目前很多“殼”均帶有加密、變形的特點,每次加殼生成的代碼都不一樣。硬脫殼對此無能為力,但由于它比較容易實現(xiàn),在技術(shù)名詞上也容易混淆用戶的視聽,所以多被殺毒軟件采用。
目前,有一種脫殼方式是抓?。―ump)內(nèi)存中的鏡像,再重構(gòu)成標(biāo)準(zhǔn)的執(zhí)行文件。相比硬脫殼方法,這種脫殼方法對自行加密、變形的殼處理效果更好,使得加殼程序會在運行時自行脫掉“馬甲”,因而叫做動態(tài)脫殼。
而最新流行的技術(shù)是“虛擬機脫殼引擎(VUE)技術(shù)”。給病毒構(gòu)建一個仿真環(huán)境,誘騙病毒自己脫掉“馬甲”,最重要的是“虛擬環(huán)境”和用戶的計算機隔離,病毒在虛擬機的操作不會對用戶計算機有任何影響。這種技術(shù)已經(jīng)成為近年來全球安全業(yè)界公認(rèn)的、解決這一問題的利器,現(xiàn)在非?;鸬臍⒍拒浖﨧cAfee的防毒能力為什么出色,基本上全是虛擬脫殼技術(shù)的功勞。
作為與用戶的計算機同命運的安全軟件,防病毒軟件一直都受到人們的特別關(guān)注,其實在有關(guān)殺毒軟件的能力問題的爭論背后更多的是對殺毒技術(shù)的關(guān)注。
焦點話題一、殺毒軟件引擎與病毒庫的關(guān)系
從理論上講,病毒庫與殺毒引擎沒有直接的關(guān)系,殺毒引擎的任務(wù)非常簡單,就是對指定的文件或者程序進行判斷其是否合法。而病毒庫,只不過是對殺毒引擎的一種補充,也就是說:“我們沒有足夠聰明的殺毒引擎來完成這個過程”,這里所提到的過程,就是殺毒引擎對文件或者程序的判斷。
看到這里,我們就明白了:好的殺毒軟件,重要在引擎的優(yōu)秀,病毒庫只不過是補充,而且病毒庫越大,殺毒的速度會隨之降低,這是一個反比的關(guān)系。因為病毒庫殺毒的過程,是引擎把判斷能力交給病毒庫,用病毒庫與指定的文件進行對比判斷。這就是為什么很多網(wǎng)友總是抱怨卡巴斯基全面掃描的速度總是那么慢,原因之一它有一個太過強大的病毒庫,間接拉下了殺毒的速度。
焦點問題二、有關(guān)加殼、脫殼技術(shù)的種種
什么是加殼?
所謂加殼,是通過一系列數(shù)學(xué)運算,將可執(zhí)行程序文件或動態(tài)鏈接庫文件的編碼進行改變(目前還有一些加殼軟件可以壓縮、加密驅(qū)動程序),以達到縮小文件體積或加密程序編碼的目的。當(dāng)被加殼的程序運行時,外殼程序先被執(zhí)行,然后由這個外殼程序負(fù)責(zé)將用戶原有的程序在內(nèi)存中解壓縮,并把控制權(quán)交還給脫殼后的真正程序。一切操作自動完成,用戶不知道也無需知道殼程序是如何運行的。一般情況下,加殼程序和未加殼程序的運行結(jié)果是一樣的。
判斷一個可執(zhí)行文件是否被加殼的簡單方法:用記事本打開一個可執(zhí)行文件,如果能看到軟件的提示信息則一般是未加殼的,如果完全是亂碼,多半是已經(jīng)被加殼了。
病毒編寫者為什么喜歡使用加殼技術(shù)?
眾所周知,目前大部分殺毒軟件主要依靠特征碼技術(shù)查殺病毒。由于加殼軟件會對源文件進行壓縮、變形,使加密前后的特征碼完全不同。脫殼能力不強的殺毒軟件,對付“加殼”后病毒就需要添加兩條不同的特征記錄。如果病毒編寫者換一種加殼工具加殼,那么對于殺毒軟件來說又是一種新的病毒,需要添加新的特征記錄才能夠查殺。
應(yīng)對“加殼”而生的技術(shù)—脫殼
相對加殼而言,能夠?qū)⒓託の募€愿成源文件的過程就是“脫殼”。脫殼主要有兩種方法:硬脫殼和動態(tài)脫殼。 第一種,是硬脫殼,這是指找出加殼軟件的加殼算法,寫出逆向算法,就像壓縮和解壓縮一樣。由于,目前很多“殼”均帶有加密、變形的特點,每次加殼生成的代碼都不一樣。硬脫殼對此無能為力,但由于它比較容易實現(xiàn),在技術(shù)名詞上也容易混淆用戶的視聽,所以多被殺毒軟件采用。
目前,有一種脫殼方式是抓?。―ump)內(nèi)存中的鏡像,再重構(gòu)成標(biāo)準(zhǔn)的執(zhí)行文件。相比硬脫殼方法,這種脫殼方法對自行加密、變形的殼處理效果更好,使得加殼程序會在運行時自行脫掉“馬甲”,因而叫做動態(tài)脫殼。
而最新流行的技術(shù)是“虛擬機脫殼引擎(VUE)技術(shù)”。給病毒構(gòu)建一個仿真環(huán)境,誘騙病毒自己脫掉“馬甲”,最重要的是“虛擬環(huán)境”和用戶的計算機隔離,病毒在虛擬機的操作不會對用戶計算機有任何影響。這種技術(shù)已經(jīng)成為近年來全球安全業(yè)界公認(rèn)的、解決這一問題的利器,現(xiàn)在非?;鸬臍⒍拒浖﨧cAfee的防毒能力為什么出色,基本上全是虛擬脫殼技術(shù)的功勞。