日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
惡意軟件反調(diào)試分析的對抗技術(shù)

 在本文中,我們會介紹惡意軟件如何利用一個打包的Exe原始入口點來欺騙結(jié)構(gòu)化異常處理程序(SEH)。

在此,我們會拿一個名為sample.exe的惡意軟件樣本進(jìn)行具體講解,首先將其加載到ExeInfo,進(jìn)行打包。

注意入口點是28E8,此外,我們開始調(diào)試它的時候,為了確保不被ASLR檢查到并避免稍后出現(xiàn)的動態(tài)加載,看看DLL的特點,就可以看到這個DLL不能移動。

現(xiàn)在將該sample.exe示例加載到OllyDBG中,它向我們提供了一個信號,即代碼可以被壓縮,以下是我們之前看到的。

一旦樣本加載到OllyDBG中,它將開始在Unpacker代碼中運行,由于手動逐步執(zhí)行此代碼將需要很多時間,所以我們會很可能錯過OEP,下面就分析一下我們已經(jīng)執(zhí)行的這幾行代碼。

有一些指向SHE結(jié)構(gòu)的FS寄存器,在進(jìn)一步了解之前,需要了解Windows是如何找到FS寄存器地址的。FS寄存器指向線程信息塊(TIB),其包含有關(guān)當(dāng)前正在運行的線程的信息,并且指向SHE鏈的起點的指針位于TIB的偏移量0x00處。

現(xiàn)在,我們來看看結(jié)構(gòu)異常處理程序。

單個SEH記錄由堆棧上的兩個元素組成,此過程稱為_Exception_Registration。構(gòu)成SEH記錄的兩個要素是:

1.SEH處理函數(shù);

2.PTR到下一個SEH記錄;

這樣才能形成SEH鏈結(jié)構(gòu)。

一旦代碼被加載,它將519870復(fù)制到EAX并將其推到堆棧的頂部。

我們可以看看堆棧的頂部這個推送的ESP指向14FF80。

根據(jù)SEH的上述說明,這是處理程序函數(shù)代碼,但仍然需要由下一行代碼PUSH DWORD PTR FS:[0]完成的FS來指出。把指針指向SEH鏈的堆棧頂部,將完成SEH記錄。此時寄存器的當(dāng)前狀態(tài)如下所示。

有了MOV DWORD PTR FS:[0], ESP的說明,代碼通過將ESP(指向記錄的頂部)移動到FS:[0]來將新創(chuàng)建的記錄指定到SEH鏈的頂端。執(zhí)行此語句后,我們可以看到堆棧狀態(tài)SEH記錄的兩個元素。

我們也可以在VEH/SEH鏈中創(chuàng)建新的記錄。

但是,自從下一行代碼XOR EAX,EAX將0放入EAX后,樣本代碼應(yīng)該執(zhí)行這個SEH處理程序代碼。

然后它試圖將它寫入一個只讀位置來導(dǎo)致異常,第一個處理程序會捕獲此異常,然后執(zhí)行解包程序代碼。

此外,在執(zhí)行最后一條語句時,將跳轉(zhuǎn)到519870(記住這是我們之前提交給EAX寄存器的地址,并且是SEH處理函數(shù)SEH記錄的一部分)。

這是隱藏打包程序代碼的一種智能技術(shù),但是我們的分析還沒有完成,因為我們?nèi)匀恍枰业絆EP,從二進(jìn)制文件中解壓縮代碼并重新構(gòu)建它是很困難的。

為此,我們將嘗試通過在打開代碼之前查找打包程序通常使用的一些常見模式:

  • 一個是在解碼器代碼中尋找EAX跳轉(zhuǎn)的模式,通常是跳轉(zhuǎn)到未打包的代碼;
  • 一個是打包機通常在打包代碼之前清理堆棧;

因此我們應(yīng)該按照這個順序查看:清理堆?!鶭MP EAX。

一旦進(jìn)入519870(SEH處理程序代碼)中,我們可以通過每個指令,也可以沿著創(chuàng)建SEH記錄設(shè)置一個斷點。

下面就讓我們采用沿著創(chuàng)建SEH記錄設(shè)置一個斷點的辦法。

由于SEH被創(chuàng)建到系統(tǒng)上,所以當(dāng)創(chuàng)建結(jié)構(gòu)時,我們將一個斷點放在堆棧的頂部。

然后運行樣本,它需要用到下面這部分代碼。

這與我們正在尋找的模式相匹配,讓我們來執(zhí)行JMP eax,然后看看這個代碼將會帶給我們的驚喜,如下圖所示。

由于代碼28E8看起來更簡潔,我們來轉(zhuǎn)一下這個代碼。

另外,我們還需要檢查這個轉(zhuǎn)儲代碼是否執(zhí)行,在執(zhí)行檢查之前,請先建立導(dǎo)入地址表。

現(xiàn)在,我們來分析Process Hacker中exe是否正在運行。一旦exe啟動,它會給出錯誤的警告。

有趣的是,這只是為了糾正錯誤信息,因為即使在點擊ok之后,我們也可以看到進(jìn)程中的黑客進(jìn)程正在運行并產(chǎn)生一個進(jìn)程。

通過本文的分析,你可以看到惡意軟件的開發(fā)者是如何包裝代碼并阻止分析的。


文章題目:惡意軟件反調(diào)試分析的對抗技術(shù)
文章URL:http://www.5511xx.com/article/dhhhoii.html