AttackLab4

先把farm.c转换成汇编语言
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在写汇编代码lines.s
在这里插入图片描述
汇编与反汇编;
现在要找在farm.txt中找到58 c3和48 89 c7 c3
在这里插入图片描述
在这里插入图片描述
两者的地址分别为0xf和0x15
据此写出攻击代码的16进制表示
在这里插入图片描述
其中前10行为任意40字节
11~12行对应返回地址,这里设为了farm中对应pop %rax;ret 的地址
13~14行是曲奇饼的值,这样在执行pop的时候就会把曲奇饼的值赋给%rax
15~16行是执行11–12行ret时的返回地址,这里设为了farm中对应mov %rax,%rdi的地址
17~18行是执行15-16行ret时的返回地址,这里是touch2的地址

转换为字符串后gdb调试,发现无法辨认出0xf
在这里插入图片描述
以往gdb会偏移0x555555554000的,这次是不是也会偏移呢?
于是写了hextwo,把f和15都作了偏移
在这里插入图片描述

在这里插入图片描述
在gdb中查看对应函数的地址,发现并没有偏移
在这里插入图片描述
在这里插入图片描述
分割线----
经同学提醒这里的farm的两个地址要在rtarget中去找
在这里插入图片描述
在这里插入图片描述
因此两个地址应该为0x1d5b和0x1d61
于是写了第三个hex
在这里插入图片描述
在这里插入图片描述
成功调用touch2了,但是参数写反了!
重新改动了一下,就过关啦!
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值