首页 > 其他 > 详细

虚函数突破GS

时间:2014-05-20 08:29:36      阅读:361      评论:0      收藏:0      [点我收藏+]

 

  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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!