免殺
免殺
徠免殺技術全稱為反殺毒技術Anti Anti- Virus簡稱“免殺”,它指的是一種能使病毒木馬免於被殺毒軟體查殺的技術。由於免殺技術的涉獵面非常廣,其中包含反彙編、逆向工程、系統漏洞等黑客技術,所以難度很高,一般人不會或沒能力接觸這技術的深層內容。其內容基本上都是修改病毒、木馬的內容改變特徵碼,從而躲避了殺毒軟體的查殺。
理論上講,免殺一定是出現在殺毒軟體之後的。而通過殺毒軟體的發展史不難知道,第一款殺毒軟體kill 1.0是Wish公司1987年推出的,也就是說免殺技術至少是在1989年以後才發展起來的。關於世界免殺技術的歷史信息已無從考證,但從國內來講,免殺技術的起步可以說是非常晚了。
1989年:第一款殺毒軟體Mcafee誕生,標誌著反病毒與反查殺時代的到來。
1997年:國內出現了第一個可以自動變異的千面人病毒(Polymorphic/Mutation Virus)。自動變異就是病毒針對殺毒軟體的免殺方法之一,但是與免殺手法的定義有出入。
2002年7月31日:國內第一個真正意義上的變種病毒“中國黑客II”出現,它除了具有新的特徵之外,還實現了“中國黑客”第一代所未實現的功能,可見這個變種也是病毒編寫者自己製造的。
2004年:在黑客圈子內部,免殺技術是由IT工程師之家團隊在這一年首先公開提出,由於當時還沒有CLL等專用免殺工具,所以一般都使用WinHEX逐位元組更改。
2005年1月:大名鼎鼎的免殺工具CCL的軟體作者tankaiha在雜誌上發表了一篇文章,藉此推廣了CCL,從此國內黑客界才有了自己第一個專門用於免殺的工具。
2005年2月-7月:通過各方面有意或無意的宣傳,黑客愛好者們開始逐漸重視免殺,在類似於華夏論壇等黑客站點的木馬專欄下,開始有越來越多的人討論免殺技術,這為以後木馬免殺的火爆埋下根基。
2005年08月:第一個可查的關於免殺的動畫由小野完成,為大量黑客愛好者提供了一個有效的參考,成功地對免殺技術進行了第一次科普。
2005年09月:免殺技術開始真正的火起來。
由上面的信息可見,國內在1997年出現了第一個可以自動變異的千面人病毒,雖然自動變異也可以看為是針對殺毒軟體的一種免殺方法,但是由於與免殺手法的定義有出入,所以如果將國內免殺技術起源定位1997年會顯得比較牽強。
一直等到2002年7月31日,國內第一個真正意義上的變種病毒“中國黑客II”才遲遲出現,因此我們暫且可以將國內免殺技術的起源定位在2002年7月。
您有沒有過心愛的工具被殺毒軟體KILL的經歷;您有沒有過辛辛苦苦整理出來的工具集被殺毒軟體搞成面目全非而“義憤填膺”的時候;您有沒有過好不容易拿到許可權,上傳的木馬卻被殺的痛心時刻?免殺,它能做的就是避免這些事情的發生!使殺毒軟體成為擺設!當然,除此之外免殺技術帶給我們更多的,將是思想的飛躍與技術的成長。
但是要想真正明白免殺能做什麼,就要先明白免殺會涉及到什麼。對於初學者來說,免殺只會涉及到一點基本的PE文件知識與一些免殺工具的使用,而對於高手來說,免殺甚至會涉及到Ring0(內核層)的程序編譯技巧。所以免殺這門課程涵蓋面還是相當寬泛的。
1、開源免殺:指在有病毒、木馬源代碼的前提下,通過修改源代碼進行免殺。
2、手工免殺:指在僅有病毒、木馬的可執行文件(.exe)(PE文件)的情況下進行免殺。
1.文件免殺和查殺:在不運行程序的前提下使用殺毒軟體進行對該程序的掃描,所得結果。
2.內存的免殺和查殺:判斷的方法1>運行后,用殺毒軟體的內存查殺功能。
2>用OD載入,用殺毒軟體的內存查殺功能。
1.含意:能識別一個程序是一個病毒的一段不大於64位元組的特徵串。
2.為了減少誤報率,一般殺毒軟體會提取多段特徵串,這時,我們往往改一處就可達到免殺效果,當然有些殺毒軟體要同時改幾處才能免殺。
1.特徵碼的查找方法:文件中的特徵碼被我們填入的數據(比如0)替換了,那殺毒軟體就不會報警,以此確定特徵碼的位置。
2.特徵碼定位器的工作原理:原文件中部分位元組替換為0,然後生成新文件,再根據殺毒軟體來檢測這些文件的結果判斷特徵碼的位置
1.CCL(特徵碼定位器,由於殺軟的升級,現已過時)
2.MYCCL(特徵碼定位器,由程序員Tanknight在CCL的基礎上改進)
3.OllyDbg (特徵碼的修改,可用於動態反彙編。注意:用它修改特徵碼時,要用OC轉換成內存地址)
4.C32ASM(特徵碼的修改,也可用於靜態反彙編)
5.OC(用於計算從文件偏移地址到內存地址的小工具)
6.UltaEdit-32(十六進位編輯器,用於特徵碼的手工準確定位或修改)
特徵碼修改包括文件特徵碼修改和內存特徵碼修改,因為這二種特徵碼的修改方法
是通用的。所以就對流行的特徵碼修改方法作個總節。
方法一:直接修改特徵碼的十六進位法
1.修改方法:把特徵碼所對應的十六進位改成數字差1或差不多的十六進位.
2.適用範圍:一定要精確定位特徵碼所對應的十六進位,修改後一定要測試一下文件能
否正常使用.
方法二:修改字元串大小寫法
1.修改方法:把特徵碼所對應的內容是字元串的,只要把大小字互換一下就可以了.
2.適用範圍:特徵碼所對應的內容必需是字元串,否則不能成功.
方法徠三:等價替換法
1.修改方法:把特徵碼所對應的彙編指令命令中替換成功能類擬的指令.
2.適用範圍:特徵碼中必需有可以替換的彙編指令。比如JE,JNE 換成JMP等.
如果對彙編不懂的偏移可以去查看8080彙編手冊.
方法四:指令順序調換法
1.修改方法:把具有特徵碼的代碼順序互換一下.
2.適用範圍:具有一定的局限性,代碼互換后必須不能影響程序的正常執行
方法五:通用跳轉法
1.修改方法:把特徵碼移到零區域(指代碼的空隙處)執行后,使用jmp指令無條件調回原代碼處繼續執行下一條指令
2.適用範圍:通用的改法,建議大家要掌握這種改法.
方法六:一鍵加殼法
1.修改方法:直接把文件拖入UPX加殼軟體內,據說這種方法是麥子在兄弟網路發布的
2.適用範圍:能夠有效的免殺exe文件,建議大家要掌握這種改法。
舉例來說,如果說程序是一張烙餅,那殼就是包裝袋,可以讓你發現不了包裝袋裡的東西是什麼。比較常見的殼一般容易被殺毒軟體識別,所以加殼有時候會使用到生僻殼,就是不常用的殼。去買口香糖你會發現至少有兩層包裝,所以殼也可以加多重殼,讓殺毒軟體看不懂。如果你看到一個袋子上面寫著乾燥劑、有毒之類的字你也許就不會對他感興趣了吧,這就是偽裝殼,把一種殼偽裝成其他殼,干擾殺毒軟體正常的檢測。
加殼改殼是病毒免殺常用的手段之一,加殼改殼原理是將一個木馬文件加上upx殼或者其它殼後用lordpe將文件入口點加1,然後將區段字元全部去掉,然後用od打開免殺的木馬在入口上下100字元內修改一些代碼讓殺毒軟體查不出來是什麼殼就不知道怎麼脫就可以實現免殺的目的,但這種技術只有熟悉彙編語言的人才會,這種免殺方法高效可以一口氣過眾多殺軟也是免殺愛好者應該學會的一種技術。
加花是病毒免殺常用的手段,加花的原理就是通過添加加花指令(一些垃圾指令,類型加1減1之類的無用語句)讓殺毒軟體檢測不到特徵碼,干擾殺毒軟體正常的檢測。加花以後,一些殺毒軟體就檢測不出來了,但是有些比較強的殺毒軟體,病毒還是會被殺的。這可以算是“免殺”技術中最初級的階段。
修改程序入口點
修改內存特徵碼:
1.直接修改特徵碼的十六進位法
2.修改字元串大小寫法
3.等價替換法
4.指令順序調換法
5.通用跳轉法·
小結:免殺在某種程度上可以說是殺毒軟體的對立面,這種技術隨著殺毒軟體的升級而升級,
從最初的表面查殺到的木馬行為防禦(瑞星),文件實時防毒(金山)等等,
免殺技術都將這些繞過,我們可以看到,殺軟每增加一個新功能,免殺新技術就應運而生
用一句古語說,免殺技術是與殺毒軟體相生相剋的。
學習免殺,你將領略到彙編與反彙編的快樂天堂!
4.最新的無特徵免殺法
何為無特徵免殺法?就是脫離傳統的定位方法,直接盲免,就對於整體區段進行異或加密,是整體代碼發生變換,從而逃脫殺毒軟體的查殺,是當今最流行的方法。