x86 最简单溢出实践

来源:互联网 发布:手机淘宝一元秒杀 编辑:程序博客网 时间:2024/06/05 04:15

程序源码

文件类型


checksec


查看汇编代码


溢出


查看寄存器

查看栈,36代表覆盖到eip所用的输入字符串长度,iiii刚好覆盖eip,所以长度为4*9=36,所以buffer起始地址为0xffffd6dc


用gdb调试和程序实际运行,buffer地址会有变化,可以开启core dump,然后对dump下的内存进行调试


所以实际buffer起始地址为 0xffffd6fc,所以,payload为

ret = 0xffffd6fc

payload = shellcode + 'a' * (32 - len(shellcode)) + p32(ret)


原创粉丝点击