3

可能重复:
为什么堆栈通常会向下增长?

在大多数系统(linux、windows 等)中,堆栈从高内存地址开始并逐渐变低。

但是,大多数缓冲区从低地址增长到高地址。是否有一个原因?

因为我认为这是缓冲区溢出攻击的根本问题。

我看到在早些时候,由于某种原因,系统设计人员让堆栈向下增长......

但即使在今天,我也看到这种架构(堆栈和缓冲区的不同增长方向)似乎没有改变。

我知道有 NX 保护、ASLR、堆栈保护(金丝雀)等东西来保护缓冲区溢出攻击。但我不明白为什么他们不使缓冲区和堆栈的增长方向相同......

我错过了什么吗?

4

0 回答 0