手動脫PeCompact 2.20殼實戰-吾愛破解培訓第一課選修作業四

來源:互聯網
上載者:User

標籤:殼   脫殼   pecompact 2.20殼   pecompact   手動脫殼   

Fly2015

PeCompact殼又是一個沒有聽說過的殼,需要脫殼的程式是吾愛破解培訓的第一課的選修作業四。最近對脫殼有點上癮了,當然也遭受了脫殼受挫的無奈,但是比較幸運還是把這個殼給搞了。

 

對加殼程式進行查殼。

工具DIE顯示程式加的是PeCompact殼,並且原來沒加殼的程式使用Microsoft Visual C/C++(2008)編寫的,這一點對於尋找原程式的真實OEP非常有協助。



OD載入加殼的程式進行分析,加殼程式的進入點的彙編代碼。


F8走了幾步,坑啊,寫殼的作者在代碼中設定了異常,例如中標識的指令就會導致F8單步的時候觸發向地址0賦值的異常,即使將這兩條指令Nop掉,後面的指令中F8單步跟蹤也會觸發異常。


要對這個加殼程式進行脫殼,就必須規避觸發指令中異常的問題。是不是不能處理呢?還是有辦法規避異常問題的,還好加殼的作者比較善良。

既然F8單步的方法不能處理,那就想另外的辦法對加殼程式進行脫殼。Ctrl+F2再次載入該加殼程式進行調試分析,並在函數VirtualProtectA和VirtualProtectExA上設定斷點(直接使用OD提供的API設定斷點外掛程式在API函數的上設定斷點),。


F9運行4次,此時OD中的程式的狀態。坑啊,這個殼的IAT表在不經意中就被暴漏了,IAT表的起始地址VA為432000。


Alt+F9讓程式從系統臨空回到使用者程式的臨空,停在使用者程式的指令代碼中。


Ctrl+F9執行完所在的函數到Retn指令處,F8單步回到上一層的調用方函數中。


Ctrl+F9再次執行完所在的函數到Retn指令處,F8單步回到上一層的調用方函數中。

離脫殼已經很近了,直覺告訴地址00455D8E  jmp eax中EAX儲存的值就是原程式真實OEP的地址。 


在地址00455D8E處F2斷點,F4/F9運行到此處,得到EAX=0041DDAC即為原程式真實的OEP的VA地址。


F7單步跟進到地址0041DDAC處,選中部分記憶體資料,Ctrl+A分析記憶體資料,終於見到了光明。


OK,原程式的OEP找到了,使用Load PE和RECImport 工具或者Scylla工具進行程式的完美脫殼,IAT表的修複也比較順利。


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


手動脫PeCompact 2.20殼的文件剖析和脫殼後程式的:http://download.csdn.net/detail/qq1084283172/8900459


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

手動脫PeCompact 2.20殼實戰-吾愛破解培訓第一課選修作業四

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.