您的位置:首页 > 其它

逆向工程核心原理学习笔记(十四):栈帧1

2017-05-06 17:06 274 查看
栈帧的话,直接截了一些图,大家看一下就好了,理解起来很简单,就是简单的参数转存。








看完之后,我们需要用一个小程序来进一步学习我们的栈帧了。

下载地址:http://t.cn/RaUSglI


代码写法:






取消优化,编译发布版本,代码生成格式为MT。

载入OD查看:

我们直接跳转到0x401000地址处







由代码可知道:0x401020是main函数开始的地方






我们在这里F2设置一个断点:






然后F9执行程序。






此时ESP的值为0019FF3C




此时EBP的值为0019FF80




然后我们继续看图:




401229这个地址存放在地址19FF3C中,19FF3C就是我们的ESP栈顶指针

401229这个地址是main函数执行完毕返回的地址。

然后我们看一下栈帧的形成是怎样的:






由图可知,401020和401021的代码:

push ebp

mov ebp,esp

其实就是做了一个简单的参数的替换,这样之后栈帧就形成了

然后我们回到栈窗口,鼠标右键:






让它显示为相对于EBP,这样可以更加直观的观察栈内的情况。






此时EBP指向了19FF80,与寄存器中吻合。

19FF80中存着19FF94,19FF94是main函数执行完成后要返回的地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐