简单的栈溢出利用

[if !supportLists]1. [endif] 


查看hello函数


显然,strcpy函数存在栈溢出漏洞。下面进入gdb进行操作,输入pattern create 100,输出构造好的字符串,并复制。


输入r,并把刚才复制好的字符串输入

在0x41412941处发生了错误,输入pattern offset命令,查看与字符串初地址之间的相对位置(一步到位,直接求出偏移地址)


为了更加方便理解,下面对栈的具体变化情况进行分析。

b main 下断点。寄存器表,栈空间,具体执行到哪一个汇编代码都一览无余。


Si单步步过、


在call指令处单步步入,ni ,注意观察栈的变化(以上只是为了熟悉gdb的操作)。

在执行以下操作之前,先把放回地址压入栈中,参数的话从右往左入栈


旧的esp的位置变成新的ebp的位置,此时esp和ebp二者重合。之后扩展28H大小。



下面构造exp


你可能感兴趣的:(简单的栈溢出利用)