ESP定律学习

ESP = 堆栈平衡

 

ESP定理脱壳

1)开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)(这只是一  般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)

2)在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),  按回车

3)选中下断的地址,断点--->硬件访--->WORD断点

4)按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP

ESPOD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)

实验程序:UnPackMe.exe

用exeinfo查壳,为UPX壳,如图:

 

程序用OD打开,停在这里。

 

 

 

按F8,ESP变红,说明可以用ESP定律。

ESP定律脱壳法 :

先用dd命令转到堆栈刚才esp中的内容指的位置,即dd 0060ff64。随即在该处下硬件断点,如图:

按F9运行,看到popad,oep到了,在此处dump出来,完成脱壳。

向下法(暂时就叫它一路向下法吧 (-_- 吧。):

原理:遇到向上的跳转都按F4到一条指令,不管它,直到遇到第一个大跳转,调后即是OEP。

在该处实现一个大跳转,到达oep,perfect!

 

posted @ 2018-05-03 20:45  An2i  阅读(2296)  评论(0编辑  收藏  举报