- 定义
- 进程内存分配
应用程序运行时,操作系统为其分配连续的内存区域来存储数据,这片内存区域就叫做缓冲区。
缓冲区溢出是指用户向缓冲区中写入的数据超过了定义的内存边界,从而将数据写入其他区域的行为。
攻击者可以通过缓冲区溢出攻击来更改缓冲区的数据、注入恶意代码、改变程序的控制权等等。
进程内存分配C和C++的编译器强调程序的运行速率,而忽视内存的边界检查,这是导致缓冲区溢出的直接原因。
进程的内存分配在逻辑上分为三部分:代码区域、动态数据区域(如堆栈)、静态数据区域(存放全局变量和静态变量)。

应用程序运行时,操作系统为其分配连续的内存区域来存储数据,这片内存区域就叫做缓冲区。
缓冲区溢出是指用户向缓冲区中写入的数据超过了定义的内存边界,从而将数据写入其他区域的行为。
攻击者可以通过缓冲区溢出攻击来更改缓冲区的数据、注入恶意代码、改变程序的控制权等等。
进程内存分配C和C++的编译器强调程序的运行速率,而忽视内存的边界检查,这是导致缓冲区溢出的直接原因。
进程的内存分配在逻辑上分为三部分:代码区域、动态数据区域(如堆栈)、静态数据区域(存放全局变量和静态变量)。