萬盛學電腦網

 萬盛學電腦網 >> 病毒防治 >> 加殼與脫殼 殺毒軟件新技術的意義

加殼與脫殼 殺毒軟件新技術的意義

  如果生命是一種執著的力量,那麼總有一種力量,比生命更加執著,就是死亡!當你去深刻思考“死亡”這兩個字的含義,用心去感受生命的來臨與離去,更或許有的人,需要在他彌留之際,才能真正理解生命的價值。

  在計算機的世界裡,病毒就是一種執著的力量,那麼殺毒軟件,就是死亡的力量;也或者病毒才是死亡的力量,不管怎樣,殺毒軟件是一種不可或缺的東西。

  一、殺毒軟件引擎與病毒庫的關系

  其實病毒庫與殺毒引擎沒有直接的關系,殺毒引擎的任務和功能非常簡單,就是對指定的文件或者程序進行判斷其是否合法。而病毒庫,只不過是對殺毒引擎的一種補充,那個過程,就是殺毒引擎對文件或者程序判斷。明白這一點,就應該知道,好的殺毒軟件,重要在引擎的優秀,病毒庫越大,殺毒速度肯定會降低。因為病毒庫殺毒的過程,是引擎把判斷能力交給病毒庫,用病毒庫與指定的文件進行對比判斷。

  二、加殼、脫殼

  1.什麼是加殼:所謂加殼,是一種通過一系列數學運算,將可執行程序文件或動態鏈接庫文件的編碼進行改變(目前還有一些加殼軟件可以壓縮、加密驅動程序),以達到縮小文件體積或加密程序編碼的目的。

  當被加殼的程序運行時,外殼程序先被執行,然後由這個外殼程序負責將用戶原有的程序在內存中解壓縮,並把控制權交還給脫殼後的真正程序。一切操作自動完成,用戶不知道也無需知道殼程序是如何運行的。一般情況下,加殼程序和未加殼程序的運行結果是一樣的。

  如何判斷一個可執行文件是否被加了殼呢?有一個簡單的方法(對中文軟件效果較明顯)。用記事本打開一個可執行文件,如果能看到軟件的提示信息則一般是未加殼的,如果完全是亂碼,則多半是被加殼的。

  為什麼黑客能夠利用加殼技術來對抗反病毒軟件呢?眾所周知,目前殺毒軟件主要依靠特征碼技術查殺病毒。由於加殼軟件會對源文件進行壓縮、變形,使加密前後的特征碼完全不同。

  脫殼能力不強的殺毒軟件,對付“加殼”後病毒就需要添加兩條不同的特征記錄。如果黑客換一種加殼工具加殼,則對於這些殺毒軟件來說又是一種新的病毒,必須添加新的特征記錄才能夠查殺。如果殺毒軟件的脫殼能力較強,則可以先將病毒文件脫殼,再進行查殺,這樣只需要一條記錄就可以對這些病毒通殺,不僅減小殺毒軟件對系統資源的占用,同時大大提升了其查殺病毒的能力。

  2. 脫殼

  馬甲”能穿也能脫。相應的,有加殼也一定會有解殼(也叫脫殼)。脫殼主要有兩種方法:硬脫殼和動態脫殼。

  第一種,是硬脫殼,這是指找出加殼軟件的加殼算法,寫出逆向算法,就像壓縮和解壓縮一樣。由於,目前很多“殼”均帶有加密、變形的特點,每次加殼生成的代碼都不一樣。硬脫殼對此無能為力,但由於其技術門檻較低,仍然被一些殺毒軟件所使用。

  第二種,是動態脫殼。由於加殼的程序運行時必須還原成原始形態,即加殼程序會在運行時自行脫掉“馬甲”。目前,有一種脫殼方式是抓取(Dump)內存中的鏡像,再重構成標准的執行文件。相比硬脫殼方法,這種脫殼方法對自行加密、變形的殼處理效果更好。

  三、虛擬機脫殼引擎(VUE)技術

  對於病毒,如果讓其運行,則用戶計算機就會被病毒感染。因此,一種新的思路被提出,即給病毒構造一個仿真的環境,誘騙病毒自己脫掉“馬甲”。並且“虛擬環境”和用戶的計算機隔離,病毒在虛擬機的操作不會對用戶計算機有任何的影響。

  “虛擬機脫殼”技術已經成為近年來全球安全業界公認的、解決這一問題的最有效利器。但由於編寫虛擬機系統需要解決虛擬CPU、虛擬周邊硬件設備、虛擬驅動程序等多個方面的困難。

  四、啟發式殺毒

  病毒和正常程序的區別可以體現在許多方面,比較常見的如:通常一個應用程序在最初的指令,是檢查命令行輸入有無參數項、清屏和保存原來屏幕顯示等,而病毒程序則沒有會這樣做的,通常它最初的指令是直接寫盤操作、解碼指令,或搜索某路徑下的可執行程序等相關操作指令序列。這些顯著的不同之處,一個熟練的程序員在調試狀態下只需一瞥便可一目了然。啟發式代碼掃描技術實際上就是把這種經驗和知識移植到一個查病毒軟件中的具體程序體現。

  啟發式指的“自我發現的能力”或“運用某種方式或方法去判定事物的知識和技能。”一個運用啟發式掃描技術的病毒檢測軟件,實際上就是以特定方式實現的動態高度器或反編譯器,通過對有關指令序列的反編譯逐步理解和確定其蘊藏的真正動機。例如,如果一段程序以如下序列開始:MOV AH ,5/INT,13h,即調用格式化盤操作的BIOS指令功能,那麼這段程序就高度可疑值得引起警覺,尤其是假如這段指令之前不存在取得命令行關於執行的參數選項,又沒有要求用戶交互性輸入繼續進行的操作指令時,就可以有把握地認為這是一個病毒或惡意破壞的程序。

  啟發式殺毒代表著未來反病毒技術發展的必然趨勢,具備某種人工智能特點的反毒技術,向我們展示了一種通用的、不需升級(較省需要升級或不依賴於升級)的病毒檢測技術和產品的可能性。由於諸多傳統技術無法企及的強大優勢,必將得到普遍的應用和迅速的發展。純粹的啟發式代碼分析技術的應用(不借助任何事先的對於被測目標病毒樣本的研究和了解),已能達到80%以上的病毒檢出率, 而其誤報率極易控制在0.1%之下,這對於僅僅使用傳統的基於對已知病毒的研究而抽取“特征字串”的特征掃描技術的查毒軟件來說,是不可想象的,一次質的飛躍。在新病毒,新變種層出不窮,病毒數量不斷激增的今天,這種新技術的產生和應用更具有特殊的重要意義。

copyright © 萬盛學電腦網 all rights reserved