广通程序网

初级黑客缓冲区溢出攻击

1.C++执行程序时栈剖析

  在网上有关C++执行程序时的栈分析稿子有许多,这里简易详细介绍一下下,便捷事件实际操作的了解与学习培训。

初级黑客缓冲区溢出攻击 第1张

  运作时栈

  从在网上盗了个图,画的还是挺栩栩如生的。。图中中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让它在方式撤出之后实行人们愿意做的事,这就是说缓冲区溢出的进攻基本原理

上一篇:没有了

下一篇:没有了

发表评论 (已有 条评论)

评论列表

    快来评论,快来抢沙发吧~