缓冲区溢出攻击的原理是什么?

如题所述

因为调用函数的过程大致是
1:将参数从右到左压入堆栈
2:将下一条指令的地址压入堆栈
3:跳进函数出
4push ebp保存ebp的值
5:子函数开辟内存空间(如sub esp,1024)6mov ebp,esp由ebp操纵堆栈 。。。。
但是当你的临时变量的大小成功了5处开辟的内存 就会覆盖到后面的返回地址 当函数执行完后就会 跳转到 返回地址 处执行 而你可以将返回地址 覆盖成你的 代码(shellcode)处的地址
这样 返回时就会执行你的代码了

当然由于你的shellcode地址不固定 这么利用几乎是不可能的 你可以 jmp esp 或 利用seh链执行你的shellcode 这些你可以百度一下 或者到 看雪论坛 去看一下
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-27
持续访问

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网