虚函数突破GS

 

  1. 如何确定变量的内存布局
  2. 为什么不直接执行buff里面的shellcode,而要绕远
    • 因为虚表指针指向buff,buff的地址还要指向另一个地址,没有办法直接执行buff。这是由虚函数与虚表性质决定。
  3. 为什么执行完call还必须返回shellcode,call不就是call进shellcode吗?
    • call是必须的,见问题2.然后剩下的问题是怎么回到shellcode内,一是把shell地址作为call的地址,但是地址在不同电脑上加载的时候是不一样的(?),所以地址的方法不可行;二是通过跳板跳转实现。这样需要注意的是跳板在shellcode的一开头,当作为shell的时候要被执行到,需要尝试一个“poppopretn”的地址时不产生异常(乱指令比较容易产生异常,但是也会被编译器放过去,尝试的时候7c开头的5个不成,78开头的2个都成功了)。

转载于:https://www.cnblogs.com/MeiJi/p/3737859.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值