分类: |
  • 1

堆溢出

其实堆溢出与格式串溢出特像,就是“一个format strings“的bug可以使往任何数据写到任何地方
你的症状是因为你浏览的页面的脚本中的函数出现了过度的递归调用,比如递归了4096次,然后就溢出了


一、堆溢出后的后果;
现在的系统管理堆,为了查询的高效快速,一般都使用的双向链表结构。我们来看
双向链表管理的时候的删除操作。*a,*b,*p1,*p2,*c,*d都是指针,考虑双向链表,
a,b--->p1,p2--->c,d,其中由双向链表有*b=p1,*p1=a,*p2=c。如果是空闲内存链表,
那么申请使用p1、p2指向的内存,或者如果是使用内存链表,释放p1、p2指向的内存,
都会从这个链表中删除p1,p2。删除后的链表是a,b--->c,d,应该有内存改写操作:
*b=c,*c=a。这时代码是经过链表检索从a,b得到的p1,p2,一般为了高效等就不会记忆
a,b,因为双向链表就是为了从一个结点可以方便的得到上级和下级结点。所以那两条
内存操作都将会转换成p1、p2相关的操作。根据前面得到的信息,经过简单的代换就可
以得到我们需要的代码:


查看更多...

Tags: 溢出

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 9316

PEB获取GetProcAddrees函数地址

1.fs寄存器指向TEB结构
2.在TEB+0x30地方指向PEB结构
3.在PEB+0x0C地方指向PEB_LDR_DATA结构
4.在PEB_LDR_DATA+0x1C地方就是一些动态连接库地址了,如第一个指向ntdll.dll,第二个就是kernel32.dll的地址。
其结构示意图如图

查看更多...

Tags: 溢出 缓冲区

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 10974

Q版缓冲区溢出教程

不懂的可以留言提问,大家一起讨论讨论


http://www.yinghuochong.com/disk/516311.htm

查看更多...

Tags: 缓冲区 溢出 教程

分类:下载专区 | 固定链接 | 评论: 0 | 查看次数: 7852
  • 1