码迷,mamicode.com
首页 > 其他好文 > 详细

虚函数突破GS

时间:2014-05-20 08:28:51      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:c   code   a   问题      div   

 

  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个都成功了)。

虚函数突破GS,布布扣,bubuko.com

虚函数突破GS

标签:c   code   a   问题      div   

原文地址:http://www.cnblogs.com/MeiJi/p/3737859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!