ESP = 堆棧平衡
ESP定理脫殼:
(1)開始就點F8,注意觀察OD右上角的寄存器中ESP有沒突現(變成紅色)(這只是一 般情況下,更確切的說我們選擇的ESP值是關鍵句之后的第一個ESP值)
(2)在命令行下:dd XXXXXXXX(指在當前代碼中的ESP地址,或者是hr XXXXXXXX), 按回車
(3)選中下斷的地址,斷點--->硬件訪--->WORD斷點
(4)按一下F9運行程序,直接來到了跳轉處,按下F8,到達程序OEP
(ESP在OD的寄存器中,我們只要在命令行下ESP的硬件訪問斷點,就會一下來到程序的OEP了!)
實驗程序:UnPackMe.exe
用exeinfo查殼,為UPX殼,如圖:
程序用OD打開,停在這里。
按F8,ESP變紅,說明可以用ESP定律。
ESP定律脫殼法 :
先用dd命令轉到堆棧剛才esp中的內容指的位置,即dd 0060ff64。隨即在該處下硬件斷點,如圖:
按F9運行,看到popad,oep到了,在此處dump出來,完成脫殼。
向下法(暫時就叫它一路向下法吧 (-_- 吧。):
原理:遇到向上的跳轉都按F4到一條指令,不管它,直到遇到第一個大跳轉,調后即是OEP。
在該處實現一個大跳轉,到達oep,perfect!