殺毒與免殺技術詳解之二:特徵碼定位-工具及原理

    特徵碼引擎現在依然十分常見,家家戶戶都在用。
小紅傘
    打開360殺毒,下面顯示的4個引擎中,”系統修復引擎、小紅傘引擎”都是使用特徵碼進行病毒查殺的,其餘的也有用特徵碼進行輔助。可見,現在的殺軟中,特徵碼查殺的方法依然佔有不小的位置。
    但是,特徵碼引擎有非常大的缺陷——容易被逃避。因爲一般它只要見着特徵碼就報毒,如果我們把一份病毒分成很多份,就能根據報毒的文件,輕鬆定位出特徵碼的位置。那麼只要稍作修改,特徵碼引擎就失效了。這就是我們今天要討論的東西。
    現在就進入正題了,這次我們來看看特徵碼定位的原理和方法。實際操作的部分,以後會有實戰篇,我會錄製視頻進行操作,大家可以一起來實驗。

1.特徵碼定位工具

    定位特徵碼有三款非常不錯的工具:MyCCL、CCL、MultiCCL。
    (tips: CCL就是Characteristic code locator,特徵碼定位器)
    以下是三種工具的簡介:

工具名 功能說明
CCL 通過逐塊填充的方式,定位特徵碼
MyCCL 通過逐塊暴露的方式,定位特徵碼
MultiCCL 通過混合定位,先用二分法定位出特徵碼的粗略位置,再用逐位測試法測出具體位置

    我們先來看看MyCCL工具的使用介紹。
    (tips:實驗建議在虛擬機中做,畢竟網上的工具容易有毒。文章末尾有一個下載地址,測試可用。)
    先看到主界面:
MYCCL主界面
    功能區就在右下這一小塊,所以它並不難用。各參數說明:

  • 文件路徑(文件按鈕左邊的文本框): 要定位的文件路徑
  • 目錄路徑: 要存放MyCCL分塊文件的目錄
  • 目錄路徑框右鍵點擊: 可以選擇TK.LOADER,以後進行內存免殺再詳細講
  • 分塊個數: 分塊文件的個數
  • 單位長度: 每次填充的字符長度
  • 填充: 用某個十六進制字節數據填充,如:”00”、”FF”
  • 開始位置&結束位置: 從某個位置開始/結束填充
  • 分段長度: 填充字符的總長度
  • 正向: 選擇填充方向,從頭到尾填充或者從尾到頭填充
  • 複合定位: 一般都用這項,可以定位多處特徵碼
  • 單一定位: 只定位一個特徵碼

    至於實際操作的流程,現在以一個小例子說明一下。
    我現在這裏有一個病毒樣本,正好進行一個免殺實驗,大家只要瞭解大概操作流程即可,往後會有更詳細的講解
    先四步走:

  1. 點擊[文件]按鈕,選擇樣本文件
  2. 點擊[目錄]按鈕,選擇分塊文件存放目錄
  3. 填寫分塊個數,建議在10-30之間,我們刪除的時候方便,具體可以自己定
  4. 點擊<生成>按鈕,彈出的框都選’Yes’,生成第一批分塊文件

    效果如下圖所示:
第一批分塊文件生成實驗
    點擊OK,我們已經生成成功了,可以用WinHex觀察下各文件,原理在下一節有詳細講解
    我們再進行下一步——殺毒,就是用殺毒軟件先掃描分塊文件的目錄,然後將報毒文件刪除。
演示查毒1
    只要不是全部報毒,就說明可以定位。我們最好手動刪除掉對應的文件,因爲殺毒軟件有時候是”修復”而不是”刪除”
    (tips: 殺毒引擎最好設置成只有一個,多引擎查殺時不好定位)
    接下來收點擊”二次處理”,就能完成第一次粗略定位了:
二次處理演示
    然後我們點擊特徵區間,就能看到我們定位出來的特徵碼位置了。這時候我們應該再查毒,確定是否有第二個特徵碼的存在。如果再報毒,我們就再點擊二次處理,一直循環到不報毒爲止。
    總結下,MyCCL特徵碼定位,整個操作流程就是:

Created with Raphaël 2.1.0啓動MyCCL分塊數量設置生成分塊文件殺軟掃描, 是否有毒刪除報毒文件二次處理完成特徵碼定位yesno

2.特徵碼定位原理

    我們這裏也以MyCCL爲例講解下原理
    我們這裏做了一個模擬的”特徵碼文件”,用於演示”逐塊暴露”特徵碼定位原理,”1111……”代表常規數據,”FF”代表假定的特徵碼:
樣本
    將MyCCL的分塊個數設置爲3,MyCCL會將這個文件,用”00”(可以設置其它數值)填充,通過特定的辦法分成三個文件。
    第一批分塊文件:
分塊文件1
分塊文件2
分塊文件3
    由上圖可知,第一個文件暴露出前1/3的數據,其餘都用00填充;第二個暴露前2/3的數據;最後一個全部暴露。根據這三張圖可知,MyCCL是從頭到尾暴露的,這種方式稱爲”正向”;還有從尾到頭的方式,稱爲”反向”。
    但是我們發現,這三個都含有特徵碼,那它如何能知道特徵碼的位置呢? 其實還要看”二次處理”!
    將含有特徵碼的三個文件都刪除掉,點擊”二次處理”,生成第二批文件如下:
第二批分塊文件1
第二批分塊文件2
第二批分塊文件3
    從這次就可以看出來了,它其實已經定位了一個大概的位置——第一行。因爲第一批的三個文件都報毒,說明文件前1/3存在特徵碼。然後第二批的文件,就會把這部分填充掉,以定位其它特徵碼。
    看到這裏,已經能理解MyCCL的定位方法了。所謂的”逐塊暴露”,就是”從上到下(反向也可)逐漸暴露,遇到特徵碼就將其填充,直到覆蓋所有特徵碼”。

    這次我們已經講清楚了特徵碼定位的原理及操作流程(MyCCL爲例),下次會講如何修改特徵碼,並實戰免殺幾個引擎。建議大家在看的時候,自己認真理解、多實踐,才能真正掌握。
    學習特徵碼定位,可以讓我們瞭解這一傳統引擎是如何被擊潰的,瞭解軟件攻防的原理和技巧。看到這裏,相信大家已經學到了不少。
    讓我們一起學習吧,下篇見!

MYCCL下載地址:
http://www.3987.com/xiazai/2/43/7325.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章