读书笔记2:0day安全:软件漏洞分析技术

实验修改函数返回地址
经过上个笔记的学习,我们了解了调用verify_password(char * password)时栈的情况:(注不了解函数调用方式的建议先找文章了解关键字:call的调用方式)
在这里插入图片描述
我们都知道,执行完verify_password(char * password)是call指令调用是还会把它的下条指令地址入栈,用于调用完之后返回上层函数继续执行程序指令:
其实大致方法还是跟修改临近变量的方法一样的…就是把我们修改入栈时的返回地址,从而实现控制跳转…
源码还是同一份这里就不贴出来了
我们可以传入password为AAAAAAAA(这里覆改buffer)BBBB(这里覆盖authenticated)CCCC(这里覆盖入栈的EBP)(最后这里是我们的返回地址,注意小尾存放(高维数据存放再高位地址中))这里是我们的要修改的返回地址地址
实验开始:
我们记下跳出成功通过验证的指令的地址:0x00401106小威存放则需要我们放入:06114000
在这里插入图片描述
因此,我们可以构造password = AAAAAAAABBBBCCCC06114000
在这里插入图片描述
这里之所以跟我们预期不同,是因为我们输入的时候系统读取的转成ASCII码了该地址系统取指令出错了,因此发生了程序崩溃,我们需要的是十六进制的才能跳过去,怎么操作,我们下篇笔记见吧,哈哈

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值