关于几种常用的脱壳方法总结
最近一直在學習殼的破解,和大家分享一下幾種常用的脫殼方法
1.esp定律
使用PEID查殼,了解殼的屬性
載入OD,F8單步運行,注意寄存器的窗口
這個時候會發現只有ESP后面對應得數據為紅色,我們就應該知道,可以使用ESP定律了,單擊紅色的ESP右鍵會出現HW break esp的選項
然后重載運行,單擊F8,到達OEP,然后使用OD自帶的脫殼插件
(oep的標志)you
2.單步跟蹤
同樣的殼,不用ESP,F8單步步過,這時會遇到跑飛的情況,單步跟蹤注意call和向上的跳轉,遇到跑飛的call就重載F7進入,F8不斷的向下運行,這時會遇到向上的跳轉,在向上跳轉的下面一行代碼出右鍵 選擇斷點運行到選定位置(F4),注意紅線(跳轉實現)的要在底下設置,灰色的不用管。一直F8繼續向下走
走到最后會出現殼的OEP,同第一種方法的最后(強烈推薦)
3.SFX
這種方法是一種自動脫殼的方法,很簡單步驟為 OD載入————>找到選項 調試設置中的SFX————>選擇 按字節方式跟蹤真正入口處 重載等待
不建議用這種方法,有時會很長時間,還是鍛煉技術為好
4.模擬跟蹤
ALT+M,在.rsrc處下斷點,SHIFT+F9返回,然后在.text處在下一斷點,同樣的辦法處理, 在底下的命令行輸入tc eip<01013000回車
這種方法用在不知道OEP是什么樣子的時候可以試試
5.出口標志
開始按Ctrl+F,輸入:popad(只適合少數殼,包括UPX,ASPACK殼),然后按下F2,F9運行到此處。來到大跳轉處,點下F8,到達OEP!
6.方法五:最后一次異常法
點擊選項——調試選項——異常,把里面的對號全部去掉!CTRL+F2重載下程序,如果一開始程序就是一個跑飛,在這里我們按SHIFT+F9,直到程序運行,記下從開始按SHIFT+F9到程序運行的次數m!CTRL+F2重載程序,按SHIFT+F9(這次按的次數為程序運行的次數m-1次)在OD的右下角我們看見有一個"SE 句柄",這時我們按CTRL+G,輸入SE 句柄前的地址!按F2下斷點!然后按SHIFT+F9來到斷點處!去掉斷點,按F8慢慢向下走!到達程序的OEP!
7.秒到OEP
運行,觀察右下角的棧窗口,翻到最底下順著邊框找到第一個
然后 反匯編窗口中跟隨,然后在反匯編窗口中不斷的向上走,走到INT3斷點處就會發現,下面就是OEP的標志,在標志處(push xxxx)右鍵選擇在數據窗口中跟隨,這時左下角的數據窗口出現
在灰色區點擊右鍵下硬件執行斷點,重載直接秒到OEP并脫殼
我所說得辦法對一個殼不可能通用,大家要多嘗試,脫殼需要的是耐心和經驗,另外大家還要熟悉各種語言編寫殼的OEP,這有事半功倍的效果。
總結
以上是生活随笔為你收集整理的关于几种常用的脱壳方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OCCT教程二:在visual stud
- 下一篇: 卓一笔记---局部描述符表(LDT寻址表