【读书小结】—— 基于虚拟机的启发式扫描反病毒技术
虛擬機(jī)(VM),在反病毒界被稱為通用解密器。具體做法是:用程序代碼虛擬一個CPU來,同樣也虛擬CPU的各個寄存器,甚至將硬件端口也虛擬出來,用調(diào)試程序調(diào)入被調(diào)的樣本,將每一條語句放到虛擬環(huán)境中執(zhí)行,這樣就可以通過內(nèi)存和寄存器以及端口的變化來了解程序的執(zhí)行。這樣的一個虛擬環(huán)境就是一個虛擬機(jī)。
虛擬機(jī)作為原操作系統(tǒng)下的一個應(yīng)用程序,目標(biāo)是讓程序像運(yùn)行在單獨(dú)一臺真正的機(jī)器上,絲毫察覺不到自己處于VM的控制之下。而實(shí)現(xiàn)虛擬技術(shù)的關(guān)鍵在于軟件虛擬化和硬件虛擬化。
文中給出了三種方案:自含代碼虛擬機(jī)(SCCE),緩沖代碼虛擬機(jī)(BCE),有限代碼虛擬機(jī)(LCE)。
自含代碼虛擬機(jī),像是一個真正的CPU,從內(nèi)存中取出每條指令,然后解碼,用自己的例程模擬該指令。該虛擬機(jī)會包含一個例程來對內(nèi)存/寄存器尋址操作數(shù)進(jìn)行解碼,然后還包括一個用于模擬每個可能在CPU上執(zhí)行的指令的例程集。因此,自含代碼虛擬機(jī)的代碼會非常巨大,而且速度會非常慢。
緩沖代碼虛擬機(jī),是SCCE的一個縮略版,大概是整合了個通用指令模擬例程,然后剩下的特殊指令單獨(dú)用例程進(jìn)行模擬。
有限代碼虛擬機(jī),并非實(shí)際上的虛擬機(jī)。只是簡單地跟蹤一段代碼的寄存器內(nèi)容,可能會提供一個小的被改動的內(nèi)存地址表,或是調(diào)用過的中斷之類的東西。選擇使用LCE而非更大更復(fù)雜的系統(tǒng)的原因,在于既是只對極少數(shù)之類的支持便可以在解密原始加密病毒的路上走很遠(yuǎn),因?yàn)椴《緝H僅使用了INTEL指令集的一小部分來加密其主體。
至于啟發(fā)式代碼掃描技術(shù),則是所謂的有自我發(fā)現(xiàn)的能力,發(fā)現(xiàn)新病毒。因?yàn)閭鹘y(tǒng)的反病毒掃描技術(shù)是在文件中查找已知病毒的特征碼來鑒別是否染毒,是一種靜態(tài)的過程,僅能查出已知的病毒。而啟發(fā)式掃描能夠根據(jù)某些規(guī)則職能地分析程序的代碼,從而有可能找到未知的病毒。一個運(yùn)用啟發(fā)式掃描技術(shù)的病毒檢測軟件,實(shí)際上就是以特定方式實(shí)現(xiàn)的動態(tài)高度器或反編譯器,通過對有關(guān)指令序列的反編譯逐步理解和確定其蘊(yùn)藏的真正動機(jī)。
——
感覺,反病毒技術(shù)的發(fā)展是這樣的。
1、簡單的黑名單技術(shù),發(fā)現(xiàn)病毒加入黑名單。
2、Hash特征碼生成,這個也會分成很多塊內(nèi)容。靜態(tài)文件查殺,還有內(nèi)存查殺都可以歸納到這里的感覺。通過一些列的特征碼,運(yùn)用AC或者BM等多種字符匹配算法,來掃描出病毒。
3、虛擬機(jī)技術(shù),也就是本文中提到的虛擬個機(jī)子來監(jiān)控病毒。可是,這樣代價太高。
4、沙盤技術(shù),類似于還原精靈,暫時理解是這樣的。給程序自由運(yùn)行,但是同時監(jiān)控其所有行為。
總結(jié)
以上是生活随笔為你收集整理的【读书小结】—— 基于虚拟机的启发式扫描反病毒技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视频剪切合并器如何剪辑下载的MP4电影并
- 下一篇: HAL库教程8:通用定时器的使用