无论是OD的提示,还是题目的提示,都表明这是个有壳的程序,同时可以知道,我们的任务就是找到OEP的地址。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190609230320833.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzM2MDE1Mg==,size_16,color_FFFFFF,t_70)
放入工具试一下,
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190609230332503.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzM2MDE1Mg==,size_16,color_FFFFFF,t_70)
确实有壳,但却不知道是什么壳。
下面,脱壳技巧上阵.
一,单步调试法
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190609230340913.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzM2MDE1Mg==,size_16,color_FFFFFF,t_70)
一步一步来,最终会看到熟悉的代码![在这里插入图片描述](https://img-blog.csdnimg.cn/20190609230351687.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzM2MDE1Mg==,size_16,color_FFFFFF,t_70)
这个地址就是最终的flag了。
flag:00401150
二,ESP定律
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190609230537975.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzM2MDE1Mg==,size_16,color_FFFFFF,t_70)
载入程序,F8一下,看见ESP,EIP同时是红的,在寄存器窗口的ESP处右键,选择‘在数据窗口中跟随’,
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019060923142222.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzM2MDE1Mg==,size_16,color_FFFFFF,t_70)
在左下角的数据窗口右键,断点->硬件写入->word![在这里插入图片描述](https://img-blog.csdnimg.cn/20190609231637145.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzM2MDE1Mg==,size_16,color_FFFFFF,t_70)
F9运行,会断到一处地方。这个程序不适合ESP定律,不太行。
之后单步调试法,找到OEP