手動脫MoleBox殼實戰總結

來源:互聯網
上載者:User

手動脫MoleBox殼實戰總結

作者:Fly2015

這個程式是吾愛破解脫殼練習第8期的加殼程式,該程式的殼是MoleBox V2.6.5殼,這些都是廣告,可以直接無視了。前面的部落格手動脫Mole Box V2.6.5殼實戰中已經給出了一種比較笨的脫殼的方法,在進行脫殼程式的IAT表的修複的時,採用的是手動記錄系統API的地址然後手動的去恢複被加密的系統API的方法,很挫。下面就來講一講稍微好點的修複IAT表的方法。

 

回顧一下前面找加殼程式原OEP的步驟。

使用ESP定律進行該加殼程式的脫殼,在硬體寫入斷點斷下來以後,單步F7到地址0046997B3處,發現Call eax指令中的EAX儲存是加殼程式真實OEP的VA地址0045159C。

 

被加殼程式的真實OEP被找到了,但是使用OD的外掛程式OllyDump或者Load PE+ImportREC或者是Scylla_x86進行程式的脫殼,然後運行程式,發現脫殼後的程式運行出錯。

 

隨後找到原因,原來是有部分函數的API地址被加密處理了,具體的被加密的函數。很顯然,地址00455170處儲存的系統API的函數地址是第一個被加密處理(具體的怎麼找IAT表的方法,看前面的部落格)。


 

Ctrl+F2再次動態調試剖析器,為要找到IAT表中的函數是怎麼被加密處理的,需要在地址00455170處下Dword型的硬體寫入斷點,4次F9後地址00455170處被加密的系統API的函數的地址顯示出來了,。通過調用GetProcAddress函數擷取到的系統API函數的地址儲存到了ds:[ECX]中,值得注意。


 

F8單步偵錯工具走幾步,發現地址00470F42處調用的函數00471620使用來給IAT表中系統API進行加密處理的。


 

F7單步跟進函數00471620進行分析發現,通過置換的方式將ds:[ECX]處的函數地址給修改了。


 

OK,程式在調用被加密處理的IAT表中函數時,最終函數調用的還是系統的API也就是說只是給系統的API增加了調用的代理函數。既然是這樣,那就將修改IAT表中系統API函數的代碼給path掉也就是NOP掉。


 

將修改IAT表中函數調用地址的彙編代碼mov dword ptr ds:[ecx], eax修改為兩條nop指令,然後F8單步運行程式,沒什麼問題。


 

F9運行程式,由於根據ESP定律下的硬體寫入斷點還在,因此程式會斷在設定的硬體寫入斷點處,F8單步幾步即可找到程式真實OEP,。


 

很顯然,加殼程式的真實OEP的VA地址為0045159C,F7跟進到OEP處。工具搞起,使用Load PE結合ImportREC或者Scylla_x86(剪下掉無效的函數指標)對加殼程式進行完美的脫殼。


 

運行一下脫殼後的程式,驗證脫殼成功。


手動脫Mole Box殼總結文檔和脫殼程式的:http://download.csdn.net/detail/qq1084283172/8908073


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.