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

缓冲区溢出基础知识

时间:2014-12-18 00:06:14      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:http   sp   文件   数据   bs   代码   ad   ef   tt   

缓冲区理论学习
PE文件(进程)装入内存:
PE文件(进程)在内存中按照功能大致划分4个部分
(1)
代码区(程序段) .text 主要存储被装入执行的二进制代码,ALU会到这个取指令并执行,这个段通常是只读,对它的写操作是非法的。
(2)
数据区 .data 主要是存储的全局变量,主要存储静态数据。
(3)
堆区 程序在堆区可以动态的请求分配一定大小的内存,并在用完后归还给堆区,动态分配和回收是堆区的主要特点,主要存储动态数据。
(4)
栈区 用于动态的存储函数之间的调用关系,以保证被调用函数在返回时恢复到母函数中继续执行
缓冲区:缓冲区是程序运行时内存中的一个连续的块,随着程序动态分配变量而出现,用来保存数据。
缓冲区溢出:缓冲区溢出也就是堆栈溢出。C语言不检查缓冲区的边界,在某些情况下,如果用户输入的数据长度超过应用程序给定的缓冲区,就会覆盖其他数据区。一个程序在内存中通常分为程序段,数据端和堆栈三部分。程序段里放着程序的机器码和只读数据,这个段通常是只读,对它的写操作是非法的。数据段放的是程序中的静态数据。动态数据则通过堆栈来存放。缓冲区溢出是利用堆栈段的溢出的。一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误。但是如果是黑客精心构造的数据,用来覆盖堆栈来让程序执行黑客的攻击代码。

http://bbs.pediy.com/showthread.php?t=85449

缓冲区溢出基础知识

标签:http   sp   文件   数据   bs   代码   ad   ef   tt   

原文地址:http://www.cnblogs.com/exp-pekin/p/4170572.html

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