1.特徵碼免殺技術
這裡主要是用到分割法,就是將乙份病毒檔案分割成多份讓反病毒軟體掃瞄,然後再將掃瞄出有問題的那份檔案再次分割,直到分割到長度適合為止。如下圖所示:
若是獲得合適的檔案之後,再將這份檔案進行相應的處理,比如可以新增一些花指令等**混淆技術。因為許多防毒軟體進行查殺都是直接特徵碼或是校驗和,這樣一來就可以躲過查殺。
2.特徵碼定位原理
2.1特徵碼逐塊填充定位原理
逐塊填充定位法首先出現在ccl軟體上,它是一款單一特徵定位器。原理很簡單,將檔案按照一定的位元組數定位不同的區塊,比如下面例子中的8位元組一塊,然後分別將第1,2,3,4…個塊分別填充為空位元組或是其他沒用的位元組,然後用反病毒軟體檢測,最終獲得特徵碼位置,如下圖所示:
這裡將檔案分為16塊,每塊8位元組,可以檢測到檔案1將不會報毒,而其他檔案均會報毒,所以特徵碼所在的位置就是前8位元組。如果覺得這個範圍還是太大可以將每塊位元組減小到4位元組或更少。
2.2特徵碼逐塊暴露定位原理
這個其實是與上面的逐塊填充相反,myccl是這個技術的代表軟體,逐塊暴露可以定位復合特徵碼。下面是乙個例子,其中aa和cc是特徵碼:
首先是原檔案的二進位制:
利用逐塊暴露的myccl生成的第一批檔案:
通過第一批的檔案全被報毒可以很明顯看到第乙個塊上擁有特徵碼,下面再來看第二批檔案:
這是在上面的基礎上將擁有特徵碼的第一塊刪除,然後發現檔案3報毒,這樣就說明第二塊沒有特徵碼而第三塊有特徵碼。為了驗證,下面再生成第三批檔案:
這時發現所有的檔案都不會報毒,驗證了之前的設想。下面來總結一下這個技術的原理:
2.3特徵碼混合定位原理
混合定位一般是先用二分法(2.1)或逐塊暴露法(2.2)定位出具有較小的含有特徵碼的區域然後利用逐位替代法獲得特徵碼的具體長度和位置。應用這個技術比較成熟的是multiccl工具。
3.特徵碼修改方法
找到特徵碼之後還需要將特徵碼改變使得反病毒軟體無法掃瞄出來。
3.1簡單的特徵碼修改
(1)大小寫替換
有時可以將特徵碼的大小寫改變一下可能獲得效果。這裡主要就是利用了反病毒軟體和windows系統之間對於大小寫的敏感程度不同所致,反病毒軟體是利用編碼方式來識別特徵碼,而字母大小寫的編碼是不同,所以可能就會查不出。但是也不是每次碰到字母變換大小寫都有用,有時候是不能這樣用的(比如系統中的api)。
(2)用「00」位元組填充
如果將乙個位元組用00填充那就相當於刪除了這個位元組,所以若是填充的位置不好就有可能干擾到程式的正常執行。所以應盡量避免或是靈活使用00位元組進行填充,當然這個位元組不行可以換乙個位元組試試。
(3)加1減1
這是利用相近的部分彙編指令代表的意思相同或相近,如下圖的彙編**所示:
3.2特徵碼修改高階
(1)空白區域跳轉法
其實這個比較簡單,就是將原本在一處的指令一到另外一塊空白的地方,然後將程式調到那裡執行完成之後再跳回原指令下方繼續執行。下圖簡單演示了這個方法:
(2)上下互換
這個方法更加簡單,因為這裡只是將兩條執行順序無關的臨近**進行互換,對於程式執行來說沒有影響,但是反病毒軟體由於這裡十六進製制資訊已經改變所以很有可能不能識別特徵碼。
(3)等值替換
這裡就是利用了組合語言中許多指令經過相應的處理之後的意思是一樣的,比如add eax 5和sub eax -5,此時就可以進行改變使得整個特徵區不同。
《黑客免殺攻防》讀書筆記01
目標反病毒軟體強度如何?目標反病毒軟體有何弱點?目標反病毒軟體使用了什麼獨特的反病毒技術?要怎樣才能突破它?待處理的惡意程式是用什麼語言寫的?待處理的惡意程式的二進位制 是否已經被混淆或者加密過了?待處理的惡意程式的使用人群是否廣泛?ring0 底層,核心層,也是作業系統的底層,只供作業系統使用 r...
《黑客免殺攻防》第八章 PE檔案知識在免殺中的應用
1pe檔案與免殺思路 a移動pe檔案頭 判斷pe檔案有效性漏洞 一般會認為size of optional header的必定是0xe0 導致有人未必讀取它的值以確定實際的大小。我們通過將其移動到dos stub中,然後修改被忽略的size of optional header b匯入表移動免殺 通...
反彙編揭密黑客免殺變種技術(筆記)
一.免殺的方法 1.特徵碼法 2.校驗和法 3.行為監測法 4.軟體模擬法 二.目前主流防毒軟體以特徵碼法為主。常見防毒軟體 1.卡巴斯基 2.瑞星 3.江民防毒軟體 4.諾頓 5.金山毒霸 6.nod32 7.麥咖啡 8.小紅傘 9.f prot antivirus 10.微軟防毒 三.根據類別和...