當(dāng)前位置:
首頁(yè) >
免杀之路
發(fā)布時(shí)間:2025/3/8
29
豆豆
(一)、免殺應(yīng)注意的事項(xiàng):
? 1.免殺的測(cè)試(在線殺毒、殺毒軟件上報(bào)、世界反毒網(wǎng):http://www.virustotal.com/zh-cn/) 在這里我建議大家不要上傳自己的馬到這樣的網(wǎng)站上去.一上傳不要多久就會(huì)被殺了.大家還是把殺軟裝在自己的電腦,然后測(cè)試比較好.
? 2.一個(gè)好的免殺木馬要過文件、內(nèi)存、行為、主動(dòng)防御等一些專殺軟件.
? 3.目前一些常用的殺軟有:
Ahnlab V3:韓國(guó)安博士
AntiVir:德國(guó)小紅傘
Authentium:來自美國(guó)佛羅里達(dá)州
Avast:捷克Alwil公司
AVG:是新公司(Grisoft——捷克)給ewido 4.0起的新名字
BitDefender:來自羅馬尼亞的老牌殺毒軟件(世界排名第一)
CAT-QuickHeal:印度殺軟
ClamAV:Unix系統(tǒng)的殺毒工具
DrWeb:大蜘蛛來自俄羅斯
eSafe:Aladdin Knowledge Systems公司
eTrust-Vet:CA(Computer Associates)公司
Ewido:雅豆來自德國(guó)
FileAdvisor:未知
Fortinet:美國(guó)飛塔有限公司
F-Port:冰島殺毒軟件
F-Secure:芬蘭著名安全機(jī)構(gòu)F-Secure新版安全產(chǎn)品Internet Security 2007,奧地利反病毒軟件
Ikarus:奧地利反病毒軟件
Kaspersky:來自俄羅斯著名數(shù)據(jù)安全廠商Kaspersky Labs
McAfee:美國(guó)制造
Microsoft:美國(guó)微軟
NOD32V2:來自德國(guó)
Norman:挪威防毒軟件
Panda:西班牙的熊貓
Prevx1:英國(guó)著名的反間諜軟件
Rising:中國(guó)瑞星
Sophos:英國(guó)殺軟
Sunbelt:被評(píng)為全球三大反間諜軟件
Symantec:賽門鐵克的諾頓(公司總部設(shè)在美國(guó)加州)
TheHacker:未知
vba32:白俄羅斯超強(qiáng)啟發(fā)式殺毒軟件
VirusBuster:驅(qū)逐艦有防毒精靈
Webwasher-Gateway:美國(guó)殺毒軟件,雙引擎
(二)、殺軟殺毒的原理
1.殺毒軟件的工作流程
對(duì)于一款殺毒軟件來說,一次成功的病毒查殺過程,通常都要經(jīng)歷病毒識(shí)別、病毒報(bào)警、病毒清除、文件或系統(tǒng)復(fù)原這幾個(gè)過程。各個(gè)過程中又運(yùn)用了很多復(fù)雜的技術(shù),但其中最關(guān)鍵的應(yīng)該是殺毒引擎技術(shù),從廣義上來講,是指通過文件、網(wǎng)頁(yè)監(jiān)視等實(shí)時(shí)監(jiān)控行為,運(yùn)用文件識(shí)別技術(shù)來完成病毒掃描、識(shí)別、報(bào)警以及清除,甚至防御的一整套的機(jī)制,因此引擎技術(shù)也決定了殺毒軟件的優(yōu)劣,而引擎所包含的眾多技術(shù)中,病毒識(shí)別技術(shù)又是重中之重。
2.必不可少的認(rèn)殼過程
病毒、木馬加殼已經(jīng)是非常普遍的現(xiàn)象了,目前主要有兩種脫殼技術(shù):算法認(rèn)殼和動(dòng)態(tài)認(rèn)殼,目前主流的殺毒軟件都引入了虛擬機(jī)技術(shù),雖然這會(huì)占用一定的系統(tǒng)資源,但使帶殼的病毒文件,運(yùn)行于虛擬機(jī)之上,不僅可以更好的識(shí)別各種殼,還可以有效防止病毒真正的感染文件。
算法認(rèn)殼:此法是根據(jù)加殼程序的解密算法對(duì)病毒進(jìn)行認(rèn)殼,雖然有速度快、消耗資源少的優(yōu)點(diǎn),但也有無法認(rèn)變形殼的缺點(diǎn)。不過,很多殺毒軟件還是能夠向用戶發(fā)出警報(bào),以彌補(bǔ)無法認(rèn)殼的缺憾。
動(dòng)態(tài)認(rèn)殼:眾所周知,只有讓加過殼的程序運(yùn)行起來,才能將其還原成本來的面目,此時(shí)為了避免程序運(yùn)行后真正感染系統(tǒng)文件,因此引入了虛擬機(jī)技術(shù),為帶殼的病毒程序虛擬一個(gè)計(jì)算機(jī)環(huán)境,使它運(yùn)行于虛擬環(huán)境。此法雖優(yōu)勢(shì)明顯,但也會(huì)消耗很多的系統(tǒng)資源,因此擁有一套自己的、成熟的虛擬機(jī)技術(shù),將大大提高檢測(cè)的速度。
3.識(shí)別病毒的幾種方法
如何識(shí)別病毒,對(duì)于任何殺毒軟件來說,都是非常重要,同時(shí)也是非常核心的工作。識(shí)別病毒的能力,往往決定了這款殺毒軟件的病毒查殺能力,若連病毒都無法識(shí)別,當(dāng)然也就不能對(duì)病毒作出妥當(dāng)?shù)奶幚?。檢測(cè)病毒方法通常有:特征代碼法、校驗(yàn)和法、行為監(jiān)測(cè)法、軟件模擬法幾種,各安全廠商會(huì)衡量不同方法之間的查殺效果、運(yùn)行開銷等因素,再結(jié)合自身的技術(shù)特點(diǎn),選擇相應(yīng)的病毒識(shí)別方法。這里只介紹各種方法的優(yōu)缺點(diǎn),對(duì)于具體的實(shí)現(xiàn)步驟,已經(jīng)超出了“菜鳥”的范疇。
特征代碼法:這種方法根據(jù)正常程序與病毒程序代碼的差別來識(shí)別病毒文件。有人認(rèn)為,對(duì)于已知病毒來說,這種方法是最簡(jiǎn)單、最直接的方法,這種方法的優(yōu)、缺點(diǎn)都很突出。
優(yōu)點(diǎn):檢測(cè)的準(zhǔn)確率較高,誤報(bào)率低。
缺點(diǎn):查殺速度慢,由于已知病毒越來越多,因此病毒特征碼也隨之增加,因此查殺速度也會(huì)越來越慢。不能檢測(cè)未知病毒和多態(tài)性病毒以及隱蔽性病毒。另外這種檢測(cè)方法也不適合網(wǎng)絡(luò)版殺毒軟件采用,因?yàn)樗鼤?huì)消耗我們寶貴的網(wǎng)絡(luò)資源。
校驗(yàn)和法:此法計(jì)算文件的校驗(yàn)和(只要知道是一種算法就可以了)并保存,可定期或調(diào)用文件時(shí)進(jìn)行對(duì)比,從而判斷文件是否被病毒感染。雖然此法可以發(fā)現(xiàn)未知病毒,但由于其較高的誤報(bào)率,已經(jīng)逐漸不被采用。
優(yōu)點(diǎn):可發(fā)現(xiàn)未知病毒。
缺點(diǎn):無法報(bào)出病毒名稱,誤報(bào)率高,當(dāng)軟件更新,口令修改或修改文件內(nèi)容時(shí),校驗(yàn)和法都可能會(huì)誤報(bào),因?yàn)檫@種方法無法區(qū)分文件內(nèi)容的變化是不是屬于正常的程序使用引起的。
行為監(jiān)測(cè)法:此法根據(jù)病毒的行為特征來識(shí)別病毒,這需要對(duì)病毒行為進(jìn)行詳細(xì)的分類和研究,分析那些病毒共同的行為,以及正常程序的罕見行為,根據(jù)程序運(yùn)行時(shí)的行為進(jìn)行病毒判斷和預(yù)警。
優(yōu)點(diǎn):由于其歸納和總結(jié)各種病毒的共同特征,因此可以發(fā)現(xiàn)未知病毒,對(duì)于多數(shù)未知病毒預(yù)報(bào)非常有效。
缺點(diǎn):對(duì)于未知行為病毒,不能有效檢測(cè),同時(shí)也存在誤報(bào)現(xiàn)象,對(duì)查到的未知病毒,不能識(shí)別病毒名稱,因此普通用戶不能對(duì)發(fā)現(xiàn)的未知病毒進(jìn)行有效的清除。
軟件模擬法:這種方法通過模擬病毒運(yùn)行的方式來檢測(cè)病毒特征,由于特征碼法無法檢測(cè)多態(tài)性病毒,雖然行為監(jiān)測(cè)法可以發(fā)現(xiàn)病毒,但是無法確定病毒名稱,也無法對(duì)其進(jìn)行相應(yīng)的殺除,因此產(chǎn)生了軟件模擬法。
優(yōu)點(diǎn):可識(shí)別未知病毒,病毒定位準(zhǔn)確,誤報(bào)率低。
缺點(diǎn):檢測(cè)速度受到一定影響,消耗系統(tǒng)資源較高。
上述幾種檢測(cè)方法各有所長(zhǎng),往往都不能單純使用一種方法完成大規(guī)模病毒的檢測(cè)報(bào)警工作,通常都是幾種技術(shù)相結(jié)合,根據(jù)實(shí)際情況和應(yīng)用場(chǎng)合配合運(yùn)用相應(yīng)的檢測(cè)手段。
4.未來之路
目前,虛擬機(jī)、實(shí)時(shí)監(jiān)控、主動(dòng)防御等技術(shù)均已經(jīng)漸漸成為主流。除此之外,還有兩種處于試驗(yàn)階段的新技術(shù),分別是智能碼標(biāo)識(shí)技術(shù)和行為攔截技術(shù)
智能碼標(biāo)識(shí)技術(shù):這種技術(shù)如同給各種程序分配一個(gè)可以對(duì)其進(jìn)行唯一識(shí)別的ID,這樣對(duì)付那些非法的木馬、后門等程序就變得簡(jiǎn)單了很多,即使是文件或程序遭到病毒感染,殺毒軟件也可以根據(jù)那一串智能識(shí)別碼對(duì)其進(jìn)行攔截和阻擊。目前,此項(xiàng)技術(shù)還處于理論階段,還沒有哪個(gè)安全公司的產(chǎn)品中已經(jīng)包含了此技術(shù)的模塊。
行為攔截技術(shù):從概念上來說,這優(yōu)點(diǎn)類似主動(dòng)防御的概念。這里的行為攔截指的是即時(shí)的監(jiān)控執(zhí)行應(yīng)用程序行為,并且攔截顯示惡意的程序活動(dòng)。如果有必要,甚至可以對(duì)系統(tǒng)的API進(jìn)行阻擋,但同時(shí)也表現(xiàn)出來一定的負(fù)面影響,如果錯(cuò)誤的攔截了合法程序的正常執(zhí)行行為,將導(dǎo)致系統(tǒng)運(yùn)行的異常,輕則系統(tǒng)的某些功能無法使用,重則引起系統(tǒng)的癱瘓,對(duì)于那些對(duì)于操作系統(tǒng)知之甚少的用戶來說,這一點(diǎn)尤為突出。雖然目前很多軟件(如:NOD32、 AVAST等)都已經(jīng)開始嘗試使用這種技術(shù),但很有很多內(nèi)容需要研究。
(三)、殺毒軟件常見的查殺分類
1、文件查殺
? 是我們的病毒特征碼與殺毒軟件中的病毒庫(kù)中的代碼來進(jìn)行比較,如果病毒庫(kù)中有相同的特征碼,就會(huì)認(rèn)為這個(gè)是病毒特征碼--通俗一點(diǎn)講,比如你身上一個(gè)特征?? 它就會(huì)認(rèn)識(shí)到這個(gè)特征就是你了 。所以,對(duì)于這樣的查殺模式。我們只要改變特征碼殺毒軟件就會(huì)不認(rèn)識(shí)了。
2、內(nèi)存查殺 瑞星、金山?? ?
? 其實(shí)內(nèi)存查殺也是通過特征碼的,和文件查殺基本上一樣,一個(gè)區(qū)別就是它是通過內(nèi)存特征碼來查殺的。
3、行為查殺?? 東方微點(diǎn)主動(dòng)防御? 瑞星主動(dòng)防御
? 是通過判斷程序的動(dòng)作來進(jìn)行定義,如果程序?qū)δ硞€(gè)地方進(jìn)行動(dòng)作就會(huì)被認(rèn)為是病毒了。比如對(duì)灰鴿子做內(nèi)存免殺后,發(fā)現(xiàn)能過。但是一運(yùn)行就會(huì)被報(bào)毒,
4、特征碼定義以及分類
??
殺毒軟件在對(duì)文件進(jìn)行查殺的時(shí)候。會(huì)挑選文件內(nèi)部的一句或者幾句代碼來作為它識(shí)別病毒的方式。這種代碼就叫做病毒的特征碼。如果我們將這個(gè)代碼變更或者修改。就會(huì)使得殺毒軟件對(duì)其無法查殺。也就達(dá)到我們免殺的效果。
特征碼主要分為:文件特征碼,內(nèi)存特征碼,行為特征碼
單一特征碼,復(fù)合特征碼
單一特征碼
? 單一特征碼就是說,一個(gè)程序中的幾句代碼被殺毒軟件做為識(shí)別標(biāo)志。修改掉一處就可以免殺。
復(fù)合特征碼
? 一個(gè)程序中的多句代碼被殺毒軟件作為識(shí)別標(biāo)志。有一處不修改都不能免殺。
(四)、免殺常用名詞的解釋
1、免殺是什么。
例如:修改入口點(diǎn)、加殼加花偽裝、加密,手工加花,定位特征碼,修改特征碼
免殺技術(shù)的分類
殺軟查殺的方式:文件查殺、內(nèi)存查殺、行為查殺
免殺手段:加殼免殺、加花免殺、修改特征碼修改免殺。
2.加殼免殺
???? 在好萊塢間諜電影里,那些特工們往往以神奇莫測(cè)的化妝來欺騙別人,甚至變換成另一個(gè)身份,國(guó)內(nèi)對(duì)于這種偽裝行為有個(gè)通俗的說法——“穿馬甲”。而這種正與邪的爭(zhēng)斗已經(jīng)延伸到了軟件領(lǐng)域,很多軟件作者通過給軟件“穿馬甲”、甚至穿多個(gè)“馬甲”的方式,躲避殺毒軟件的查殺,這種技術(shù)就是“加殼”。
3 加花免殺
??
? 什么是花指令?實(shí)際上,把它按照“亂指令”來理解可能更貼切一些。我們知道,匯編語言其實(shí)就是機(jī)器指令的符號(hào)化,從某種程度上看,它只是更容易理解一點(diǎn)的機(jī)器指令而已。每一條匯編語句,在匯編時(shí),都會(huì)根據(jù)cpu特定的指令符號(hào)表將匯編指令翻譯成二進(jìn)制代碼。而日常應(yīng)用中,我們通過VC的IDE或其它如OD等反匯編、反編譯軟件也可以將一個(gè)二進(jìn)制程序反匯編成匯編代碼。機(jī)器的一般格式為:指令+數(shù)據(jù)。而反匯編的大致過程是:首先會(huì)確定指令開始的首地址,然后根據(jù)這個(gè)指令字判斷是哪個(gè)匯編語句,然后再將后面的數(shù)據(jù)反匯編出來。由此,我們可以看到,在這一步的反匯編過程中存在漏洞:如果有人故意將錯(cuò)誤的機(jī)器指令放在了錯(cuò)誤的位置,那反匯編時(shí),就有可能連同后面的數(shù)據(jù)一起錯(cuò)誤地反匯編出來,這樣,我們看到的就可能是一個(gè)錯(cuò)誤的反匯編代碼。這就是“花指令”,簡(jiǎn)而言之,花指令是利用了反匯編時(shí)單純根據(jù)機(jī)器指令字來決定反匯編結(jié)果的漏洞。使得殺毒軟件不能正常的判斷病毒文件的構(gòu)造。說通俗點(diǎn)就是“殺毒軟件是從頭到腳按順序來查找病毒。如果我們把病毒的頭和腳顛倒位置。殺毒軟件就找不到病毒了”
4 修改特征碼免殺
因?yàn)闅⒍拒浖闅⒕褪亲约旱牟《編?kù)和木馬的特征碼對(duì)比,如果相同的話就判斷它是木馬,當(dāng)然我們只要改掉這些代碼就可以免殺了。這就是修改特征碼免殺。
5.匯編指令說明
匯編語言指令集
1.算術(shù)運(yùn)算符
ADC:帶進(jìn)位加法
ADD:二進(jìn)制數(shù)加法
DEC:減一
DIV:無符號(hào)數(shù)除法
IDIV:帶符號(hào)數(shù)(整數(shù))除法
IMUL:帶符號(hào)數(shù)(整數(shù))乘法
INC:加一
MUL:無符號(hào)書乘法
NEG:求補(bǔ)
SBB:帶借位減法
SUB:二進(jìn)制減法
XADD:交換并相加
2.ASCII-BCD轉(zhuǎn)換
AAA:加后ASCII調(diào)整
AAD:除前ASCII調(diào)整
AAM:乘后ASCII調(diào)整
AAC:減后ASCII調(diào)整
DAA:加后十進(jìn)制調(diào)整
DAS:減后十進(jìn)制調(diào)整
3.移位
RCL:帶進(jìn)位循環(huán)左移
RCR:帶進(jìn)位循環(huán)右移
ROL:循環(huán)左移
ROR:循環(huán)右移
SAL:算術(shù)左移
SAR:算術(shù)右移
SHL:邏輯左移
SHR:邏輯右移
SHLD:雙精度左移
SHRD:雙精度右移
4.比較
BSF/BSR:位掃描
BT/BTC/BR/BB:位測(cè)試
CMP:比較
CMPSN:串比較
CMPXCHG:比較交換
CMPXCHG8B:比較并換?lt;br>TEST:測(cè)試位
5.數(shù)據(jù)傳送
LDS:裝如數(shù)據(jù)段寄存器
LEA:裝入有效地址
LES:裝入附加段寄存器
LODS:從串取
LSS:裝入堆棧段寄存器
MOV:傳送數(shù)據(jù)
MOVS:串傳送
MOVSX:帶符號(hào)擴(kuò)展傳送
MOVZX:帶零擴(kuò)展傳送
STOS:存入串
XCHG:交換
XLAT:換碼
6.標(biāo)志操作
CLC:清除位標(biāo)志
CLD:清除方向標(biāo)志
CLI:清除中斷標(biāo)志
CMC:進(jìn)位標(biāo)志求反
LAHF:標(biāo)志送AH
POPF:標(biāo)志出棧
PUSHF:標(biāo)志進(jìn)棧
SAHF:AH送標(biāo)志寄存器
STC:進(jìn)位標(biāo)志置1
CTD:方向標(biāo)志置1
STI:中斷標(biāo)志置1
7.輸入/輸出
IN:輸入字節(jié)或字
INSN:串輸入
OUT:輸出字節(jié)或字
OUTSN:穿輸出
8.邏輯操作
AND:邏輯與
NOT:邏輯非
OR:邏輯或
XOR:異或
9.循環(huán)
LOOP:循環(huán)直到完成
LOOPE:相等時(shí)循環(huán)
LOOPZ:為零是循環(huán)
LOOPNE:不相等時(shí)循環(huán)
LOOPPNZ:不為零是循環(huán)
LOOPPNEW:不相等時(shí)循環(huán)
LOOPNZW:不為零時(shí)循環(huán)
10.處理器控制
HLT:進(jìn)入暫停狀態(tài)
LOCK:封鎖總線
NOP:無操作
WAIT:置處理器于等待狀態(tài)
11.堆棧操作
ENTER:建立堆棧幀
LEAVE:結(jié)束堆棧幀
POP:字出棧
POPF:標(biāo)志出棧
POPA:所有通用寄存器出棧
PUSH:字進(jìn)棧
PUSHA:所有通用積存器進(jìn)棧
PUSHF:標(biāo)志進(jìn)棧
12.串操作
CMPS:串比較
LODS:從串取
MOVS:串傳送
REP:串重復(fù)
REPE:相等時(shí)重復(fù)
REPZ:為零時(shí)重復(fù)
REPNE:不相等時(shí)重復(fù)
REPNZ:不為零時(shí)重復(fù)
SCAS:串掃描
STDS:存入串
13.轉(zhuǎn)移(條件)
INT溢出中斷
JA:高于則轉(zhuǎn)移
JAE:高于或等于則轉(zhuǎn)移
JB:低于則轉(zhuǎn)移
JBE:低于或等于則轉(zhuǎn)移
JC:進(jìn)位為1則轉(zhuǎn)移
JCXZ:CX為零則轉(zhuǎn)移
JE:相等則轉(zhuǎn)移
JG:大于則轉(zhuǎn)移
JGE:大于或等于則轉(zhuǎn)移
JL:小于則轉(zhuǎn)移
JLE:小于或等于
JNC:進(jìn)位為零則轉(zhuǎn)移
JNE:不相等則轉(zhuǎn)移
JNG:不大于則轉(zhuǎn)移
JNGE:不大于或等于則轉(zhuǎn)移
JNL:不小于則轉(zhuǎn)移
JNLE:不小于或等于則轉(zhuǎn)移
JNA:不高于則轉(zhuǎn)移
JNB:不低于則轉(zhuǎn)移
JNBE:不低于或等于則轉(zhuǎn)移
JNAE:不高于或等于則轉(zhuǎn)移
JN不溢出則轉(zhuǎn)移
JNP:奇偶位為0則轉(zhuǎn)移
JNZ:結(jié)果不為零則轉(zhuǎn)移
JNS:結(jié)果為正則轉(zhuǎn)移
J若溢出則轉(zhuǎn)移
JP:奇偶位為1則轉(zhuǎn)移
JPE:奇偶性為偶則轉(zhuǎn)移
JP奇偶性為奇則轉(zhuǎn)移
JS:結(jié)果為負(fù)則轉(zhuǎn)移
JZ:結(jié)果為零則轉(zhuǎn)移
14.轉(zhuǎn)移(無條件)
CALL:調(diào)用過程
INT:中斷
IRET:中斷返回
JMP:無條件轉(zhuǎn)移
RET:返回
RETN/RETF:近返回/遠(yuǎn)返回
15.類型轉(zhuǎn)換
CBW:字節(jié)轉(zhuǎn)換為字
CDQ:雙字轉(zhuǎn)換為四字
CWD:字轉(zhuǎn)換為雙字
CWDE:字轉(zhuǎn)換為擴(kuò)展的雙字
(五)、免殺常用工具
OllyICE
LordPE
PEiD
MYCLL
Restorator 2007
multiCCL
(六)、研究新的免殺技術(shù)
1.掌握免殺的原理:
如今外面的教程大多只講方法,不講原理,導(dǎo)致不能靈活的運(yùn)用免殺技術(shù).從而缺乏新免殺技術(shù)的研究能力.
2.只講操作,不講免殺原理:使看教程的菜鳥朋友,只會(huì)照抄照搬,缺乏技術(shù)的研究能力.
3.技術(shù)含量低,方法簡(jiǎn)單,免殺效果差: 一般都以加密和加殼組合為主.
4.免殺時(shí)間短:公布的免殺方法,能活多久,相信大家都清楚.
5.一種免殺方法被公布,意味著,這種免殺方法的失效。
? 1.免殺的測(cè)試(在線殺毒、殺毒軟件上報(bào)、世界反毒網(wǎng):http://www.virustotal.com/zh-cn/) 在這里我建議大家不要上傳自己的馬到這樣的網(wǎng)站上去.一上傳不要多久就會(huì)被殺了.大家還是把殺軟裝在自己的電腦,然后測(cè)試比較好.
? 2.一個(gè)好的免殺木馬要過文件、內(nèi)存、行為、主動(dòng)防御等一些專殺軟件.
? 3.目前一些常用的殺軟有:
Ahnlab V3:韓國(guó)安博士
AntiVir:德國(guó)小紅傘
Authentium:來自美國(guó)佛羅里達(dá)州
Avast:捷克Alwil公司
AVG:是新公司(Grisoft——捷克)給ewido 4.0起的新名字
BitDefender:來自羅馬尼亞的老牌殺毒軟件(世界排名第一)
CAT-QuickHeal:印度殺軟
ClamAV:Unix系統(tǒng)的殺毒工具
DrWeb:大蜘蛛來自俄羅斯
eSafe:Aladdin Knowledge Systems公司
eTrust-Vet:CA(Computer Associates)公司
Ewido:雅豆來自德國(guó)
FileAdvisor:未知
Fortinet:美國(guó)飛塔有限公司
F-Port:冰島殺毒軟件
F-Secure:芬蘭著名安全機(jī)構(gòu)F-Secure新版安全產(chǎn)品Internet Security 2007,奧地利反病毒軟件
Ikarus:奧地利反病毒軟件
Kaspersky:來自俄羅斯著名數(shù)據(jù)安全廠商Kaspersky Labs
McAfee:美國(guó)制造
Microsoft:美國(guó)微軟
NOD32V2:來自德國(guó)
Norman:挪威防毒軟件
Panda:西班牙的熊貓
Prevx1:英國(guó)著名的反間諜軟件
Rising:中國(guó)瑞星
Sophos:英國(guó)殺軟
Sunbelt:被評(píng)為全球三大反間諜軟件
Symantec:賽門鐵克的諾頓(公司總部設(shè)在美國(guó)加州)
TheHacker:未知
vba32:白俄羅斯超強(qiáng)啟發(fā)式殺毒軟件
VirusBuster:驅(qū)逐艦有防毒精靈
Webwasher-Gateway:美國(guó)殺毒軟件,雙引擎
(二)、殺軟殺毒的原理
1.殺毒軟件的工作流程
對(duì)于一款殺毒軟件來說,一次成功的病毒查殺過程,通常都要經(jīng)歷病毒識(shí)別、病毒報(bào)警、病毒清除、文件或系統(tǒng)復(fù)原這幾個(gè)過程。各個(gè)過程中又運(yùn)用了很多復(fù)雜的技術(shù),但其中最關(guān)鍵的應(yīng)該是殺毒引擎技術(shù),從廣義上來講,是指通過文件、網(wǎng)頁(yè)監(jiān)視等實(shí)時(shí)監(jiān)控行為,運(yùn)用文件識(shí)別技術(shù)來完成病毒掃描、識(shí)別、報(bào)警以及清除,甚至防御的一整套的機(jī)制,因此引擎技術(shù)也決定了殺毒軟件的優(yōu)劣,而引擎所包含的眾多技術(shù)中,病毒識(shí)別技術(shù)又是重中之重。
2.必不可少的認(rèn)殼過程
病毒、木馬加殼已經(jīng)是非常普遍的現(xiàn)象了,目前主要有兩種脫殼技術(shù):算法認(rèn)殼和動(dòng)態(tài)認(rèn)殼,目前主流的殺毒軟件都引入了虛擬機(jī)技術(shù),雖然這會(huì)占用一定的系統(tǒng)資源,但使帶殼的病毒文件,運(yùn)行于虛擬機(jī)之上,不僅可以更好的識(shí)別各種殼,還可以有效防止病毒真正的感染文件。
算法認(rèn)殼:此法是根據(jù)加殼程序的解密算法對(duì)病毒進(jìn)行認(rèn)殼,雖然有速度快、消耗資源少的優(yōu)點(diǎn),但也有無法認(rèn)變形殼的缺點(diǎn)。不過,很多殺毒軟件還是能夠向用戶發(fā)出警報(bào),以彌補(bǔ)無法認(rèn)殼的缺憾。
動(dòng)態(tài)認(rèn)殼:眾所周知,只有讓加過殼的程序運(yùn)行起來,才能將其還原成本來的面目,此時(shí)為了避免程序運(yùn)行后真正感染系統(tǒng)文件,因此引入了虛擬機(jī)技術(shù),為帶殼的病毒程序虛擬一個(gè)計(jì)算機(jī)環(huán)境,使它運(yùn)行于虛擬環(huán)境。此法雖優(yōu)勢(shì)明顯,但也會(huì)消耗很多的系統(tǒng)資源,因此擁有一套自己的、成熟的虛擬機(jī)技術(shù),將大大提高檢測(cè)的速度。
3.識(shí)別病毒的幾種方法
如何識(shí)別病毒,對(duì)于任何殺毒軟件來說,都是非常重要,同時(shí)也是非常核心的工作。識(shí)別病毒的能力,往往決定了這款殺毒軟件的病毒查殺能力,若連病毒都無法識(shí)別,當(dāng)然也就不能對(duì)病毒作出妥當(dāng)?shù)奶幚?。檢測(cè)病毒方法通常有:特征代碼法、校驗(yàn)和法、行為監(jiān)測(cè)法、軟件模擬法幾種,各安全廠商會(huì)衡量不同方法之間的查殺效果、運(yùn)行開銷等因素,再結(jié)合自身的技術(shù)特點(diǎn),選擇相應(yīng)的病毒識(shí)別方法。這里只介紹各種方法的優(yōu)缺點(diǎn),對(duì)于具體的實(shí)現(xiàn)步驟,已經(jīng)超出了“菜鳥”的范疇。
特征代碼法:這種方法根據(jù)正常程序與病毒程序代碼的差別來識(shí)別病毒文件。有人認(rèn)為,對(duì)于已知病毒來說,這種方法是最簡(jiǎn)單、最直接的方法,這種方法的優(yōu)、缺點(diǎn)都很突出。
優(yōu)點(diǎn):檢測(cè)的準(zhǔn)確率較高,誤報(bào)率低。
缺點(diǎn):查殺速度慢,由于已知病毒越來越多,因此病毒特征碼也隨之增加,因此查殺速度也會(huì)越來越慢。不能檢測(cè)未知病毒和多態(tài)性病毒以及隱蔽性病毒。另外這種檢測(cè)方法也不適合網(wǎng)絡(luò)版殺毒軟件采用,因?yàn)樗鼤?huì)消耗我們寶貴的網(wǎng)絡(luò)資源。
校驗(yàn)和法:此法計(jì)算文件的校驗(yàn)和(只要知道是一種算法就可以了)并保存,可定期或調(diào)用文件時(shí)進(jìn)行對(duì)比,從而判斷文件是否被病毒感染。雖然此法可以發(fā)現(xiàn)未知病毒,但由于其較高的誤報(bào)率,已經(jīng)逐漸不被采用。
優(yōu)點(diǎn):可發(fā)現(xiàn)未知病毒。
缺點(diǎn):無法報(bào)出病毒名稱,誤報(bào)率高,當(dāng)軟件更新,口令修改或修改文件內(nèi)容時(shí),校驗(yàn)和法都可能會(huì)誤報(bào),因?yàn)檫@種方法無法區(qū)分文件內(nèi)容的變化是不是屬于正常的程序使用引起的。
行為監(jiān)測(cè)法:此法根據(jù)病毒的行為特征來識(shí)別病毒,這需要對(duì)病毒行為進(jìn)行詳細(xì)的分類和研究,分析那些病毒共同的行為,以及正常程序的罕見行為,根據(jù)程序運(yùn)行時(shí)的行為進(jìn)行病毒判斷和預(yù)警。
優(yōu)點(diǎn):由于其歸納和總結(jié)各種病毒的共同特征,因此可以發(fā)現(xiàn)未知病毒,對(duì)于多數(shù)未知病毒預(yù)報(bào)非常有效。
缺點(diǎn):對(duì)于未知行為病毒,不能有效檢測(cè),同時(shí)也存在誤報(bào)現(xiàn)象,對(duì)查到的未知病毒,不能識(shí)別病毒名稱,因此普通用戶不能對(duì)發(fā)現(xiàn)的未知病毒進(jìn)行有效的清除。
軟件模擬法:這種方法通過模擬病毒運(yùn)行的方式來檢測(cè)病毒特征,由于特征碼法無法檢測(cè)多態(tài)性病毒,雖然行為監(jiān)測(cè)法可以發(fā)現(xiàn)病毒,但是無法確定病毒名稱,也無法對(duì)其進(jìn)行相應(yīng)的殺除,因此產(chǎn)生了軟件模擬法。
優(yōu)點(diǎn):可識(shí)別未知病毒,病毒定位準(zhǔn)確,誤報(bào)率低。
缺點(diǎn):檢測(cè)速度受到一定影響,消耗系統(tǒng)資源較高。
上述幾種檢測(cè)方法各有所長(zhǎng),往往都不能單純使用一種方法完成大規(guī)模病毒的檢測(cè)報(bào)警工作,通常都是幾種技術(shù)相結(jié)合,根據(jù)實(shí)際情況和應(yīng)用場(chǎng)合配合運(yùn)用相應(yīng)的檢測(cè)手段。
4.未來之路
目前,虛擬機(jī)、實(shí)時(shí)監(jiān)控、主動(dòng)防御等技術(shù)均已經(jīng)漸漸成為主流。除此之外,還有兩種處于試驗(yàn)階段的新技術(shù),分別是智能碼標(biāo)識(shí)技術(shù)和行為攔截技術(shù)
智能碼標(biāo)識(shí)技術(shù):這種技術(shù)如同給各種程序分配一個(gè)可以對(duì)其進(jìn)行唯一識(shí)別的ID,這樣對(duì)付那些非法的木馬、后門等程序就變得簡(jiǎn)單了很多,即使是文件或程序遭到病毒感染,殺毒軟件也可以根據(jù)那一串智能識(shí)別碼對(duì)其進(jìn)行攔截和阻擊。目前,此項(xiàng)技術(shù)還處于理論階段,還沒有哪個(gè)安全公司的產(chǎn)品中已經(jīng)包含了此技術(shù)的模塊。
行為攔截技術(shù):從概念上來說,這優(yōu)點(diǎn)類似主動(dòng)防御的概念。這里的行為攔截指的是即時(shí)的監(jiān)控執(zhí)行應(yīng)用程序行為,并且攔截顯示惡意的程序活動(dòng)。如果有必要,甚至可以對(duì)系統(tǒng)的API進(jìn)行阻擋,但同時(shí)也表現(xiàn)出來一定的負(fù)面影響,如果錯(cuò)誤的攔截了合法程序的正常執(zhí)行行為,將導(dǎo)致系統(tǒng)運(yùn)行的異常,輕則系統(tǒng)的某些功能無法使用,重則引起系統(tǒng)的癱瘓,對(duì)于那些對(duì)于操作系統(tǒng)知之甚少的用戶來說,這一點(diǎn)尤為突出。雖然目前很多軟件(如:NOD32、 AVAST等)都已經(jīng)開始嘗試使用這種技術(shù),但很有很多內(nèi)容需要研究。
(三)、殺毒軟件常見的查殺分類
1、文件查殺
? 是我們的病毒特征碼與殺毒軟件中的病毒庫(kù)中的代碼來進(jìn)行比較,如果病毒庫(kù)中有相同的特征碼,就會(huì)認(rèn)為這個(gè)是病毒特征碼--通俗一點(diǎn)講,比如你身上一個(gè)特征?? 它就會(huì)認(rèn)識(shí)到這個(gè)特征就是你了 。所以,對(duì)于這樣的查殺模式。我們只要改變特征碼殺毒軟件就會(huì)不認(rèn)識(shí)了。
2、內(nèi)存查殺 瑞星、金山?? ?
? 其實(shí)內(nèi)存查殺也是通過特征碼的,和文件查殺基本上一樣,一個(gè)區(qū)別就是它是通過內(nèi)存特征碼來查殺的。
3、行為查殺?? 東方微點(diǎn)主動(dòng)防御? 瑞星主動(dòng)防御
? 是通過判斷程序的動(dòng)作來進(jìn)行定義,如果程序?qū)δ硞€(gè)地方進(jìn)行動(dòng)作就會(huì)被認(rèn)為是病毒了。比如對(duì)灰鴿子做內(nèi)存免殺后,發(fā)現(xiàn)能過。但是一運(yùn)行就會(huì)被報(bào)毒,
4、特征碼定義以及分類
??
殺毒軟件在對(duì)文件進(jìn)行查殺的時(shí)候。會(huì)挑選文件內(nèi)部的一句或者幾句代碼來作為它識(shí)別病毒的方式。這種代碼就叫做病毒的特征碼。如果我們將這個(gè)代碼變更或者修改。就會(huì)使得殺毒軟件對(duì)其無法查殺。也就達(dá)到我們免殺的效果。
特征碼主要分為:文件特征碼,內(nèi)存特征碼,行為特征碼
單一特征碼,復(fù)合特征碼
單一特征碼
? 單一特征碼就是說,一個(gè)程序中的幾句代碼被殺毒軟件做為識(shí)別標(biāo)志。修改掉一處就可以免殺。
復(fù)合特征碼
? 一個(gè)程序中的多句代碼被殺毒軟件作為識(shí)別標(biāo)志。有一處不修改都不能免殺。
(四)、免殺常用名詞的解釋
1、免殺是什么。
例如:修改入口點(diǎn)、加殼加花偽裝、加密,手工加花,定位特征碼,修改特征碼
免殺技術(shù)的分類
殺軟查殺的方式:文件查殺、內(nèi)存查殺、行為查殺
免殺手段:加殼免殺、加花免殺、修改特征碼修改免殺。
2.加殼免殺
???? 在好萊塢間諜電影里,那些特工們往往以神奇莫測(cè)的化妝來欺騙別人,甚至變換成另一個(gè)身份,國(guó)內(nèi)對(duì)于這種偽裝行為有個(gè)通俗的說法——“穿馬甲”。而這種正與邪的爭(zhēng)斗已經(jīng)延伸到了軟件領(lǐng)域,很多軟件作者通過給軟件“穿馬甲”、甚至穿多個(gè)“馬甲”的方式,躲避殺毒軟件的查殺,這種技術(shù)就是“加殼”。
3 加花免殺
??
? 什么是花指令?實(shí)際上,把它按照“亂指令”來理解可能更貼切一些。我們知道,匯編語言其實(shí)就是機(jī)器指令的符號(hào)化,從某種程度上看,它只是更容易理解一點(diǎn)的機(jī)器指令而已。每一條匯編語句,在匯編時(shí),都會(huì)根據(jù)cpu特定的指令符號(hào)表將匯編指令翻譯成二進(jìn)制代碼。而日常應(yīng)用中,我們通過VC的IDE或其它如OD等反匯編、反編譯軟件也可以將一個(gè)二進(jìn)制程序反匯編成匯編代碼。機(jī)器的一般格式為:指令+數(shù)據(jù)。而反匯編的大致過程是:首先會(huì)確定指令開始的首地址,然后根據(jù)這個(gè)指令字判斷是哪個(gè)匯編語句,然后再將后面的數(shù)據(jù)反匯編出來。由此,我們可以看到,在這一步的反匯編過程中存在漏洞:如果有人故意將錯(cuò)誤的機(jī)器指令放在了錯(cuò)誤的位置,那反匯編時(shí),就有可能連同后面的數(shù)據(jù)一起錯(cuò)誤地反匯編出來,這樣,我們看到的就可能是一個(gè)錯(cuò)誤的反匯編代碼。這就是“花指令”,簡(jiǎn)而言之,花指令是利用了反匯編時(shí)單純根據(jù)機(jī)器指令字來決定反匯編結(jié)果的漏洞。使得殺毒軟件不能正常的判斷病毒文件的構(gòu)造。說通俗點(diǎn)就是“殺毒軟件是從頭到腳按順序來查找病毒。如果我們把病毒的頭和腳顛倒位置。殺毒軟件就找不到病毒了”
4 修改特征碼免殺
因?yàn)闅⒍拒浖闅⒕褪亲约旱牟《編?kù)和木馬的特征碼對(duì)比,如果相同的話就判斷它是木馬,當(dāng)然我們只要改掉這些代碼就可以免殺了。這就是修改特征碼免殺。
5.匯編指令說明
匯編語言指令集
1.算術(shù)運(yùn)算符
ADC:帶進(jìn)位加法
ADD:二進(jìn)制數(shù)加法
DEC:減一
DIV:無符號(hào)數(shù)除法
IDIV:帶符號(hào)數(shù)(整數(shù))除法
IMUL:帶符號(hào)數(shù)(整數(shù))乘法
INC:加一
MUL:無符號(hào)書乘法
NEG:求補(bǔ)
SBB:帶借位減法
SUB:二進(jìn)制減法
XADD:交換并相加
2.ASCII-BCD轉(zhuǎn)換
AAA:加后ASCII調(diào)整
AAD:除前ASCII調(diào)整
AAM:乘后ASCII調(diào)整
AAC:減后ASCII調(diào)整
DAA:加后十進(jìn)制調(diào)整
DAS:減后十進(jìn)制調(diào)整
3.移位
RCL:帶進(jìn)位循環(huán)左移
RCR:帶進(jìn)位循環(huán)右移
ROL:循環(huán)左移
ROR:循環(huán)右移
SAL:算術(shù)左移
SAR:算術(shù)右移
SHL:邏輯左移
SHR:邏輯右移
SHLD:雙精度左移
SHRD:雙精度右移
4.比較
BSF/BSR:位掃描
BT/BTC/BR/BB:位測(cè)試
CMP:比較
CMPSN:串比較
CMPXCHG:比較交換
CMPXCHG8B:比較并換?lt;br>TEST:測(cè)試位
5.數(shù)據(jù)傳送
LDS:裝如數(shù)據(jù)段寄存器
LEA:裝入有效地址
LES:裝入附加段寄存器
LODS:從串取
LSS:裝入堆棧段寄存器
MOV:傳送數(shù)據(jù)
MOVS:串傳送
MOVSX:帶符號(hào)擴(kuò)展傳送
MOVZX:帶零擴(kuò)展傳送
STOS:存入串
XCHG:交換
XLAT:換碼
6.標(biāo)志操作
CLC:清除位標(biāo)志
CLD:清除方向標(biāo)志
CLI:清除中斷標(biāo)志
CMC:進(jìn)位標(biāo)志求反
LAHF:標(biāo)志送AH
POPF:標(biāo)志出棧
PUSHF:標(biāo)志進(jìn)棧
SAHF:AH送標(biāo)志寄存器
STC:進(jìn)位標(biāo)志置1
CTD:方向標(biāo)志置1
STI:中斷標(biāo)志置1
7.輸入/輸出
IN:輸入字節(jié)或字
INSN:串輸入
OUT:輸出字節(jié)或字
OUTSN:穿輸出
8.邏輯操作
AND:邏輯與
NOT:邏輯非
OR:邏輯或
XOR:異或
9.循環(huán)
LOOP:循環(huán)直到完成
LOOPE:相等時(shí)循環(huán)
LOOPZ:為零是循環(huán)
LOOPNE:不相等時(shí)循環(huán)
LOOPPNZ:不為零是循環(huán)
LOOPPNEW:不相等時(shí)循環(huán)
LOOPNZW:不為零時(shí)循環(huán)
10.處理器控制
HLT:進(jìn)入暫停狀態(tài)
LOCK:封鎖總線
NOP:無操作
WAIT:置處理器于等待狀態(tài)
11.堆棧操作
ENTER:建立堆棧幀
LEAVE:結(jié)束堆棧幀
POP:字出棧
POPF:標(biāo)志出棧
POPA:所有通用寄存器出棧
PUSH:字進(jìn)棧
PUSHA:所有通用積存器進(jìn)棧
PUSHF:標(biāo)志進(jìn)棧
12.串操作
CMPS:串比較
LODS:從串取
MOVS:串傳送
REP:串重復(fù)
REPE:相等時(shí)重復(fù)
REPZ:為零時(shí)重復(fù)
REPNE:不相等時(shí)重復(fù)
REPNZ:不為零時(shí)重復(fù)
SCAS:串掃描
STDS:存入串
13.轉(zhuǎn)移(條件)
INT溢出中斷
JA:高于則轉(zhuǎn)移
JAE:高于或等于則轉(zhuǎn)移
JB:低于則轉(zhuǎn)移
JBE:低于或等于則轉(zhuǎn)移
JC:進(jìn)位為1則轉(zhuǎn)移
JCXZ:CX為零則轉(zhuǎn)移
JE:相等則轉(zhuǎn)移
JG:大于則轉(zhuǎn)移
JGE:大于或等于則轉(zhuǎn)移
JL:小于則轉(zhuǎn)移
JLE:小于或等于
JNC:進(jìn)位為零則轉(zhuǎn)移
JNE:不相等則轉(zhuǎn)移
JNG:不大于則轉(zhuǎn)移
JNGE:不大于或等于則轉(zhuǎn)移
JNL:不小于則轉(zhuǎn)移
JNLE:不小于或等于則轉(zhuǎn)移
JNA:不高于則轉(zhuǎn)移
JNB:不低于則轉(zhuǎn)移
JNBE:不低于或等于則轉(zhuǎn)移
JNAE:不高于或等于則轉(zhuǎn)移
JN不溢出則轉(zhuǎn)移
JNP:奇偶位為0則轉(zhuǎn)移
JNZ:結(jié)果不為零則轉(zhuǎn)移
JNS:結(jié)果為正則轉(zhuǎn)移
J若溢出則轉(zhuǎn)移
JP:奇偶位為1則轉(zhuǎn)移
JPE:奇偶性為偶則轉(zhuǎn)移
JP奇偶性為奇則轉(zhuǎn)移
JS:結(jié)果為負(fù)則轉(zhuǎn)移
JZ:結(jié)果為零則轉(zhuǎn)移
14.轉(zhuǎn)移(無條件)
CALL:調(diào)用過程
INT:中斷
IRET:中斷返回
JMP:無條件轉(zhuǎn)移
RET:返回
RETN/RETF:近返回/遠(yuǎn)返回
15.類型轉(zhuǎn)換
CBW:字節(jié)轉(zhuǎn)換為字
CDQ:雙字轉(zhuǎn)換為四字
CWD:字轉(zhuǎn)換為雙字
CWDE:字轉(zhuǎn)換為擴(kuò)展的雙字
(五)、免殺常用工具
OllyICE
LordPE
PEiD
MYCLL
Restorator 2007
multiCCL
(六)、研究新的免殺技術(shù)
1.掌握免殺的原理:
如今外面的教程大多只講方法,不講原理,導(dǎo)致不能靈活的運(yùn)用免殺技術(shù).從而缺乏新免殺技術(shù)的研究能力.
2.只講操作,不講免殺原理:使看教程的菜鳥朋友,只會(huì)照抄照搬,缺乏技術(shù)的研究能力.
3.技術(shù)含量低,方法簡(jiǎn)單,免殺效果差: 一般都以加密和加殼組合為主.
4.免殺時(shí)間短:公布的免殺方法,能活多久,相信大家都清楚.
5.一種免殺方法被公布,意味著,這種免殺方法的失效。
免殺道路路漫漫其修遠(yuǎn)兮...加油...
本文轉(zhuǎn)自成功不僅是個(gè)人榮譽(yù),更是對(duì)家人責(zé)任博客51CTO博客,原文鏈接http://blog.51cto.com/hukunlin/183327如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
kunlin_hu
總結(jié)
- 上一篇: Office资源汇 | Office 3
- 下一篇: 移动端input 无法获取焦点的问题