5種小技巧干擾反病毒工程師
沒有一個編寫惡意軟件的程序員希望一個分析師去分析他們的代碼,所以他們會采用一些技巧來阻止這種行為。Debugger和VMWare一類的虛擬化技術(shù)都被惡意軟件所針對,因?yàn)槿绻鸇ebugger連接到正在運(yùn)行中的惡意軟件的話,惡意軟件可以很方便地被分析。
雖然現(xiàn)在在本文中要描述的內(nèi)容都不算新穎,但是它們也許能夠幫助在這些陷阱之中的你知道怎么一回事。
VMware Tools是一個軟件包,用戶們可以在他們的VMware虛擬機(jī)上安裝,以增加其功能——比如允許主機(jī)和客戶之間的拖放功能,反之亦然。他們的競爭對手Oracle Virtualbox也為他們的虛擬機(jī)提供了一個類似的安裝包,稱之為Virtualbox客戶添置。
VMware Tools采用了一種特殊的I/O端口來進(jìn)行主機(jī)和虛擬機(jī)之間的數(shù)據(jù)交流。惡意軟件利用了這一功能優(yōu)勢,用少數(shù)簡短的匯編代碼實(shí)現(xiàn)。
如果這個代碼在VMware虛擬機(jī)上運(yùn)行,會執(zhí)行成功,而把幻數(shù)存放到到CPU里的EBX通用寄存器中。一個系統(tǒng)如果是在VMware虛擬機(jī)內(nèi)運(yùn)行,是十分有效的方式。
X86指令集中對CPU能理解的指令有數(shù)量上的限制,你時常會遇到這樣一種情況:你的CPU無法理解一個指令,因此它不能被正確地處理。
以上的指令是微軟Virtual PC的反調(diào)試技術(shù)的一部分,賽門鐵克公司的研究人員曾經(jīng)記錄在案的。這是通過IDA Pro得到的另一個視圖,從中我們可以得到我們正在對付一個在正常處理器上非法的Virtual PC指令的線索:
如果目標(biāo)系統(tǒng)沒有運(yùn)行Virtual PC的話,就會產(chǎn)生異常,并且被惡意軟件捕獲。但是,如果Virtual PC運(yùn)行了,就不會有異常生成來說明用戶正在使用微軟的Virtual PC。
每個CPU有一個本地描述符表寄存器(LDTR),一個全局描述符表寄存器(GDTR),一個中斷描述符表寄存器.當(dāng)一個客操作系統(tǒng)運(yùn)行時這些必須被移動到不同的位置以避免和主系統(tǒng)的沖突。時常你會看到惡意軟件通過匯編指令SLDT,SGDT,SIDT取得這些寄存器的值以偵測這種情況。
這大概是最易認(rèn)出的反調(diào)試技術(shù),也就是惡意軟件掃描自身的進(jìn)程尋找特定的可能與分析工具有聯(lián)系的動態(tài)鏈接庫(DLLs)。這里被盯上的DLL可以是任何聯(lián)系到會注入特殊DLL到惡意軟件的進(jìn)程中的調(diào)試器或工具(比如沙盒)。
檢查寄存器中的Windows產(chǎn)品ID可以提供關(guān)于正在運(yùn)行的系統(tǒng)種類的線索。在過去很多沙盒在它們的操作系統(tǒng)環(huán)境中使用了固定的產(chǎn)品ID,至今有時仍可發(fā)現(xiàn)相關(guān)的檢查。
這只是一些阻止對惡意軟件的代碼分析的伎倆。注意這些技巧可以讓你的分析過程更高效。
(馬?。?/p>