殺毒軟件查殺原理
要進行免殺,首先要知道殺毒軟件是怎樣把你的程序鑑定爲病毒,才能夠找到正確的方法進行免殺工作。殺毒軟件一般根據下面幾種方法進行查殺:
1. 特徵碼:
殺毒軟件通過提取已有病毒中的一些特徵二進制碼,並將該特徵碼保存在病毒庫中,查殺時再將其與被查殺程序一一比較,如果找到這些特徵碼,被查殺程序將被鑑定爲病毒。殺軟保存的特徵碼一般包括兩部分:一段二進制碼和這段特徵碼所在偏移地址。
根據這種查殺原理,我們的免殺工作就很清晰了,只要將我們程序中被鑑定爲病毒的特徵碼部分找出來,修改其二進制碼或轉移位置就行了(前提是修改後的程序依然可運行且邏輯正確)。
2. 行爲監測:
殺毒軟件通過監控程序的API調用來解讀程序的行爲,並進行加權處理,當加權值達到一定數值後,被監測程序將被報爲病毒。比如一個下載程序,是不會被報爲病毒的,但是如果這個程序的行爲是下載另外一個程序並運行該程序,類似這樣的行爲組合,殺毒軟件就很有可能將其鑑定爲病毒了。加權值是指行爲及行爲組合的可疑指數。
根據這種查殺原理,我們的免殺工作就是如何去隱藏我們的行爲了。
3. 軟件模擬:
這種方法主要是利用虛擬技術,在虛擬機中模擬程序的運行並監控程序行爲,一旦發現可疑行爲,就將其報爲病毒。這種方法主要彌補行爲監控中對付隱蔽行爲的不足。(這種方法不是特別瞭解,不做過多論述)
免殺方法
1. 免殺分類:
1) 內部免殺和外部免殺。
內部免殺指,通過特徵碼定位後返回到原代碼上進行修改
外部免殺指,通過特徵碼對PE文件進行修改
2)文件免殺和內存免殺
文件免殺指,文件未被加載入內存運行的免殺
內存免殺指,文件被載入內存運行的免殺
文件免殺和內存免殺都是基於對PE文件的修改
2. 免殺方法
1) 添加數字簽名,發現這種方法的文件免殺對金山殺毒軟件特別有效
2) 添加殼,一般添加偏僻殼,因爲殺軟要知道所加是什麼殼才能夠解析壓縮過的代碼。而一般對殼的識別都是根據EP即入口處的一段特徵碼來辨別所加的殼類型,所以我們可以修改這段特徵碼,來讓殺軟不知道我們所加是什麼殼,也就無法解析我們的代碼來。通常採用加花或者是以後等簡單修改就行。
3) 等價替換
4) 顛倒代碼順序
5) 通用跳轉
6) 加空格免殺輸入表文件名
7) 移動ASCLL特徵碼,或修改其大小寫
8) 移動輸出表函數特徵碼
9) 利用異或加密或者重寫入
10) 移動PE文件頭
附加信息
1. 什麼是啓發式掃描:就是給各種威脅計算機安全的代碼進行加權,當殺毒軟件對某個文件的加權值達到60分後,就將該文件判定爲病毒文件。
2. 什麼是隱藏特徵碼(干擾碼):一般分成兩部分:一個是隱蔽的特徵碼,另外一個是顯式(普通)特徵碼。當殺軟檢測到有隱式特徵碼時,就會啓動對顯式特徵碼的掃面,如果還發現顯式特徵碼就報爲病毒。隱式特徵碼一般都是比較容易修改的地方,而顯式特徵碼一般都在難被修改或是不能被修改的地方,所以如果定位到難以修改的特徵碼,可以先保留該處特徵碼試試能否定位出隱式特徵碼。