[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
网友评论