标签: stack buffer-overflow
在向下增长的堆栈中,堆栈变量向上写入的理由是什么?例如,如果我有char buf [200],比如在内存地址0x400。当我写入这个数组时,我将从0x400写入0x600,这是前一个堆栈帧。这使得程序容易受到缓冲区溢出的影响,缓冲区溢出可以通过覆盖返回指针等来控制程序。那么为什么不将数组从0x600写入0x400呢?
答案 0 :(得分:2)
没关系;当你尝试写超过200个字节时,你仍然试图写入一个不属于数组的地址(越界),因此缓冲区溢出。