*如何影响变量?

问题描述:

*如何影响变量?*如何影响变量?

+0

请更具体。影响什么变量?在什么情况下?发生了什么会导致上述堆栈溢出错误?什么堆栈被溢出? – BoltClock 2010-08-27 11:06:20

+1

...并且,你的意思是缓冲区溢出? – 2010-08-27 11:08:27

+0

什么??你可能会发现堆栈溢出是在这个论坛上的很多答案,但仍然是你的问题对我来说没有多大意义... – rabidmachine9 2010-08-27 11:10:43

堆栈溢出通常意味着您的应用程序将立即退出。因此,影响将是所有与流程相关的内存将被释放,包括您的变量。

+0

尽管最常见的情况当然是完全失败,然后退出,但在另一种情况下,这意味着您的应用程序可能被利用,从而使攻击者有一种(或各种)机会进入您的机器或提升特权。在一个更不常见的情况下,它可能表现不好,因为覆盖的缓冲区不会影响任何堆栈帧,或幸运地(或不)它在受影响的区域写入有效值。这可能会影响您的代码流,通过在通常不会执行的某些条件下评估真实值,从而导致意外的代码执行。 – jweyrich 2010-08-28 03:12:01

+0

@jweyrich:你似乎把堆栈溢出与缓冲区溢出混为一谈。 – 2010-08-28 03:42:41

+0

堆栈溢出可能是缓冲区溢出的一种形式,但是如果这里的堆栈溢出意味着分配超过堆栈限制的内存,则可以处理它(例如:超过堆栈空间的递归函数)。应用程序不一定会在失败时退出 – jweyrich 2010-08-28 04:43:08