文章目录
缓冲区溢出(Buffer overflow)攻击 方法是很久之前就发表出来的技术,但是至今为止仍依然被广泛使用。这其中最大的原因就是目前还有很多程序很容易遭受buffer overflow(BOF)攻击。到目前为止,有许多相关对缓冲区溢出的解决方法的文档,但是大部分文档只针对技术性的方法进行说明,对于其原理和系统构造的说明非常少。但是理解BOF最不能缺少的就是对计算机在运行过程中的关于数据和结构的存储方法、函数调用和返回过程以及函数执行过程底层的准确信息。
本文章会铺垫以后学习BOF所需的前提知识8086系统内存和CPU寄存器的构造。
*本人是韩国计算机本科在读,平时只看韩语和英文的文档,第一次尝试用中文整理文章所以可能出现用词不当的情况(当我在中文描述不清楚的点会在旁边用英文描述),请各位大神到时候指点一下,谢谢!!!
*都是从谷歌和韩国黑客论坛进行整理翻译的,就是想巩固一下知识点。
一、8086 内存结构 (8086 Memory Architecture)
![](https://img-blog.csdnimg.cn/f1bf5a155ae84c6d9c9bef154a41b914.png)
8086 basic memory structure
8086系统的基本内存构造跟<图1>类似。系统在初始化开始的时候,系统将内核加载到内存中,并检查可用的内存区域。系统将运行过程中必要的命令在内核中调用,所以内核必须在低位地址中。在32bit系统中 CPU可以处理的数据由于以32bit为单位,所以可以处理的内存地址的范围从0~。 最近的PC设备的CPU是64bit的所以它能处理从0~
.
![](https://img-blog.csdnimg.cn/3d0b8873f95c4a2bb6556273233fdaef.png)
segmented memory model