栈溢出保护测试(非GS保护机制)

  今天做了一个栈溢出实验,主要目的是弹出一个对话框。还是用老办法,利用strcpy拷贝字符串时的漏洞,输入较长的字符串产生溢出,覆盖返回地址,从而劫持进程。

产生对话框部分字符串的是:33DB5368 7765737468 6661696C68 6661696C8BC453505053B8 71EAD677FFD0

对应汇编是:

33DB                 xor ebx,ebx
53                       push ebx
68 77657374      push 74736577
68 6661696C      push 6C696166
8BC4                   mov eax,esp
53                       push ebx
50                       push eax
50                       push eax
53                       push ebx
B8 71EAD677      mov eax,77D6EA71//自己机子的
FFD0                    call eax

我用的环境是Visual Stdio 2010,关闭GS栈溢出保护,DEP执行数据保和随机基址。但是运行时,进程还是检测到栈溢出,提示错误,结束进程。跟踪进程发现,进程还有一个检测栈溢出的机制。

当一个函数里面有调用strcpy函数时,在本函数准备返回时,在检测返回地址EBP-0x6处的数据dat与0xCCCCCCCC,进行比较,即cmp dat,CCCCCCCC,如果相等会ZF=0,溢出栈破坏了。

转载于:https://www.cnblogs.com/xts10/archive/2013/03/26/2983000.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值