免殺技術

免殺技術全稱為反殺毒技術Anti Anti- Virus簡稱「免殺」,它指的是一種能使病毒木馬免於被殺毒軟件查殺的技術。由於免殺技術的涉獵面非常廣,其中包含反匯編逆向工程系統漏洞等黑客技術,所以難度很高,一般人不會或沒能力接觸這技術的深層內容。其內容基本上都是修改病毒、木馬的內容改變特徵碼,從而躲避了殺毒軟件的查殺。[1]

分類

  • 開源免殺:指的是擁有病毒、木馬源代碼的前提下,通過修改源代碼進行免殺。
  • 手工免殺:指的是僅有病毒、木馬的可執行文件(PE文件)的情況下進行免殺。
  • 自動免殺:指的是病毒、木馬自身能自動變異,如:千面人病毒

技術概覽

加殼脫殼與加密解密

  • 參見加殼壓縮,在免殺技術里所謂的偽裝殼其實就是壓縮與外層數據偽裝,其實是利用特殊的算法,對可執行文件動態庫裡的資源進行壓縮與對文件的描述、版本號、創建日期、修改軟件、系統執行需求等外層數據進行偽裝
  • 脫殼就是把已壓縮與偽裝的文件完全或近似還原到未壓縮與偽裝的狀態。最常用的加殼軟件就是WinRAR
  • 加密是將明文信息隱匿起來,使之在缺少特殊信息時全部或部分數據不可讀,令殺毒軟件無從下手。
  • 而解密就是令在宿主電腦中的病毒得到密鑰,從而突然發作。

加花指令與程序入口點修改

  • 加花指令就是在程序開頭加入一段計算用的匯編指令和一些入口點內存地址的亂跳轉,或加上其他常用程序特有的入口指令來迷惑殺毒軟件。因為計算與跳轉的最後結果是沒有實質的意義的,所以這麼做並不影響程序的正常運行。但能使一些殺毒軟件無法正確識別木馬程序,從而達到免殺的效果。
  • 程序入口點修改就是改變入口點,通常用到的方法是在入口點的地址加1或把入口點地址拆開,也有加花指令之後把原入口點修改到花指令的入口點上令電腦先處理那段沒意義的指令,再在花指令後再加跳轉代碼,跳轉到程序執行數據的入口點上,令程序正常運行。

例: (匯編語言

mov ebp,esp
push ebp	;把基址指针寄存器压入堆栈
pop ebp	        ;把基址指针寄存器弹出堆栈
push eax        ;把数据寄存器压入堆栈
pop eax         ;把数据寄存器弹出堆栈
nop             ;不执行
add esp,1       ;指针寄存器加1
sub esp,1       ;指针寄存器减1
inc ecx         ;计数器加1
dec ecx         ;计数器减1
sub esp,1       ;指针寄存器加1
sub esp,-1      ;指针寄存器加-1
push 321BA      ;跳到内存入口地址321BA
retn            ;反回到入口地址
jb 456CD        ;跳到内存入口地址456CD
jnb 321BA       ;跳到内存入口地址321BA
mov eax,456CD   ;跳到内存入口地址456CD
jmp eax         ;跳到程序入口地址
jmp 321BA       ;跳到程序入口地址321BA
push 123AB      ;把入口地址123AB压入堆栈
mov eax,123AB   ;把入口地址123AB转送到数据寄存器中。
jmp 123AB       ;跳到入口地址123AB(程序执行数据的真正入口点)

內存、文件特徵碼的定位與修改

眾所周知大部分殺毒軟件查殺病毒的根據就是對比特徵碼,而這個過程一般發生在內存與硬盤中。對比硬盤中儲存着的文件的特徵碼,能全面地查殺計算機中的可疑文件;對比在內存中儲存着的文件的特徵碼,能快速地查殺正在運行的程序是否帶有病毒,另外病毒文件一旦進入內存即運行中,很可能會現出原形被殺毒軟件查殺。針對殺毒軟件這一特性,駭客們發明了內存、文件特徵碼修改免殺法。通常首先用特徵碼定位軟件定位文件特徵碼的所在之處,再用UltraEdit對被定位的特徵碼段進行修改。

一般修改方法有:

  • 十六進制的特徵碼直接修改法,就是把十六進制的特徵碼加1;
  • 字符串大小寫修改法,就是特徵碼所對應的內容是字符串的時候,把大小字互換;
  • 等價替換法,就是當特徵碼所對應的是匯編指令時,把指令替換成功能類擬的指令;
  • 指令順序調換法,把特徵碼對應的匯編指令的順序互換;
  • 通用跳轉法,用跳轉的方法把特徵碼對應的匯編指令跳轉走,猶如加花一樣。

修改特徵碼的方法針對性很強很有用,但一次修改只能對一款殺毒軟件免殺;要令另一款軟件免殺,就要重新針對該軟件修改特徵碼,因為各家殺毒軟件公司使用的特徵碼基本上都不相同。

文件植入與捆綁

免殺工具

常用工具有[2]

  • 加殼器:PEditor、MaskPE、UPX等
  • 脫殼與分析器:PEid、ResScope、RL!dePacker、Restorator等
  • 加花器:FakeNinja
  • 特徵碼定位與修改器:CCL、OllyDbg、UltraEdit
  • 調試器:SoftIce
  • 反匯編器:IDA、W32Dasm等
  • 十六進制編輯器:HIEW、UltraEdit等
  • 開發包:SDK與DDK
  • 編譯器:Microsoft Visual C++、Borland C++、Watcom C、GNU C以及Free Pascal等

注釋

  1. ^ >黑客炫耀“免杀”技术 专家称已有破解方法. news.xinhuanet.com. [2009-10-19]. (原始內容存檔於2015-04-25). 
  2. ^ >免杀技术之特征码修改常识. news.newhua.com. [2009-10-19]. (原始內容存檔於2012-08-08). 

外部連結