駭客系列教程之脫殼的各種方法(轉)

BSDLite發表於2007-08-16
駭客系列教程之脫殼的各種方法(轉)[@more@]先介紹一下脫殼的基本知識吧!

常見脫殼知識:

1.PUSHAD (壓棧) 代表程式的入口點;

2.POPAD (出棧) 代表程式的出口點,與PUSHAD想對應,一般找到這個OEP就在附近拉;

3.OEP:程式的入口點,軟體加殼就是隱藏了OEP(或者用了假的OEP),只要我們找到程式真正的OEP,就可以立刻脫殼。

開始正式介紹方法!!

方法一:

1.用OD載入,不分析程式碼;

2.單步向下跟蹤F8,是向下跳的讓它實現;

3.遇到程式往回跳的(包括迴圈),我們在下一句程式碼處按F4(或者右健單擊程式碼,選擇斷點——執行到所選);

4.綠色線條表示跳轉沒實現,不用理會,紅色線條表示跳轉已經實現;

5.如果剛載入程式,在附近就有一個CALL的,我們就F7跟進去,這樣很快就能到程式的OEP;

6.在跟蹤的時候,如果執行到某個CALL程式就執行的,就在這個CALL中F7進入;

7.一般有很大的跳轉,比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETE的一般很快就會到程式的OEP。

方法二:

ESP定理脫殼(ESP在OD的暫存器中,我們只要在命令列下ESP的硬體訪問斷點,就會一下來到程式的OEP了!)

1.開始就點F8,注意觀察OD右上角的暫存器中ESP有沒出現;

2.在命令列下:dd 0012FFA4(指在當前程式碼中的ESP地址),按回車;

3.選種下斷的地址,下硬體訪問WORD斷點;

4.按一下F9執行程式,直接來到了跳轉處,按下F8,到達程式OEP,脫殼。

方法三:

記憶體跟蹤:

1:用OD開啟軟體;

2:點選選項——除錯選項——異常,把裡面的忽略全部√上!CTRL+F2過載下程式;

3:按ALT+M,DA開啟記憶體鏡象,找到第一個.rsrc.按F2下斷點。然後按SHIFT+F9執行到斷點,接著再按ALT+M,DA開啟記憶體鏡象,找到.RSRC上面的CODE,按F2下斷點。然後按SHIFT+F9,直接到達程式OEP,脫殼!

方法四:

一步到達OEP(前輩們總結的經驗)。

1.開始按Ctrl+F,輸入:popad(只適合少數殼,包括ASPACK殼),然後按下F2,F9執行到此處;

2.來到大跳轉處,點下F8,脫殼之!

方法五:

1:用OD開啟軟體;

2:點選選項——除錯選項——異常,把裡面的√全部去掉!CTRL+F2過載下程式;

3:一開是程式就是一個跳轉,在這裡我們按SHIFT+F9,直到程式執行,記下從開始按F9到程式執行的次數;

4:CTRL+F2過載程式,按SHIFT+F9(次數為程式執行的次數-1次);

5:在OD的右下角我們看見有一個SE 控制程式碼,這時我們按CTRL+G,輸入SE 控制程式碼前的地址;

6:按F2下斷點,然後按SHIFT+F9來到斷點處;

7:去掉斷點,按F8慢慢向下走;

8:到達程式的OEP,脫殼!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-962324/,如需轉載,請註明出處,否則將追究法律責任。

相關文章