初级黑客缓冲区溢出攻击
1.C++执行程序时栈剖析
在网上有关C++执行程序时的栈分析稿子有许多,这里简易详细介绍一下下,便捷事件实际操作的了解与学习培训。
运作时栈
从在网上盗了个图,画的还是挺栩栩如生的。。图中中EBP意味着栈底表针,ESP意味着栈顶表针,EIP意味着程序运行的下个部位,人们可以用1个事例来举个例子这好多个物品物品全是做什么的,例如程序流程
实例程序流程
最先运作程序流程,执行程序后,人们界定了2个自变量a和b,这时候a与b自变量的表针被压进栈,a和b自变量的句子界定完后,下边改启用方式fun()了,此刻必须把下这条命令的详细地址提早入栈,就是说上边说的EIP,换句话说这时的EIP 等价于照片中的"return 0"句子的详细地址,那样当方式fun实行完后,就可以再次运作了。
启用方式fun后,EBP从main方式的首详细地址变动为fun方式的首详细地址,ESP同样偏向EBP,然后打开了fun方式的新栈,fun方式实行完栈顶原素即是EIP,立即实行Eip地址的命令只能进行执行程序。
2.缓冲区溢出进攻基本原理
上边讲过一下下C++命令的实行栈,这和文中应说的溢出攻击有何关联呢?这时提示大伙儿应当需注意EIP,由于当方式实行完之后,弹出来的统计数据会交到EIP,也就是说下这条要实行的命令,假如EIP的值可以被改动成人们愿意实行的命令详细地址,例如愿意取得这台设备的ROOT管理权限,随后你懂得的。。
NO ONE IS SAFE
那么问题来了,如何遮盖EIP??
哦,一不小心说出来,对了,就是说遮盖EIP。如何遮盖?
Bug 程序流程案例
如圖如图,界定1个18字节数室内空间的buffer数组,那么入栈18字节数,strcpy就是说把str表针偏向的数组室内空间复制粘贴到buffer中,那假如str过多了呢?超出18字节数呢?那么还要复制粘贴回来(win32),那多了复制粘贴到哪儿?往高详细地址复制粘贴,以便超过人们的目地,始终他会复制粘贴到EIP那边就好啦,随后最终改动EIP让它在方式撤出之后实行人们愿意做的事,这就是说缓冲区溢出的进攻基本原理
相关文章
- 5条评论
- 孤央鸠魁2022-05-30 14:59:30
- 说出来,对了,就是说遮盖EIP。如何遮盖? Bug 程序流程案例 如圖如图,界定1个18字节数室内空间的buffer数组,那么入栈18字节数,strcpy就是说把str表针偏向的数组室内
- 元气小坏坏12022-05-30 22:52:08
- 1.C++执行程序时栈剖析 在网上有关C++执行程序时的栈分析稿子有许多,这里简易详细介绍一下下,便捷事件实际操作的了解与学习培训。 运作时栈 从在网上盗了个图,画的还是挺栩栩如生的。。图中中EBP意味着栈底表针,ESP意味着栈顶表针,EIP意味着程序运行的下个部位,人
- 瑰颈咽渡2022-05-30 20:49:59
- 数据会交到EIP,也就是说下这条要实行的命令,假如EIP的值可以被改动成人们愿意实行的命令详细地址,例如愿意取得这台设备的ROOT管理权限,随后你懂得的。。 NO ONE IS SAFE 那么问题来了,如何遮盖EI
- 礼忱孚鲸2022-05-30 17:27:27
- 。 2.缓冲区溢出进攻基本原理 上边讲过一下下C++命令的实行栈,这和文中应说的溢出攻击有何关联呢?这时提示大伙儿应当需注意EIP,由于当方式实行完之后,弹出来的统计数据会交到EI
- 馥妴乜一2022-05-30 16:54:37
- ,一不小心说出来,对了,就是说遮盖EIP。如何遮盖? Bug 程序流程案例 如圖如图,界定1个18字节数室内空间的buffer数组,那么入栈18字节数,strcpy就是说把str表针偏向的数组室内空间复制粘贴到buffer中,那假如str过多了呢?超出18字节