1. 程式人生 > >關於幾種常用的脫殼方法總結

關於幾種常用的脫殼方法總結

最近一直在學習殼的破解,和大家分享一下幾種常用的脫殼方法

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,這有事半功倍的效果。