堆喷涂,堆溢出,堆溢出有什么区别?

时间:2009-03-26 16:00:35

标签: stack heap buffer

堆喷涂,堆溢出,堆溢出有什么区别?

这些术语可以用缓冲喷涂,缓冲区溢出,缓冲区溢出来代替吗?

他们也有相同的定义吗?

2 个答案:

答案 0 :(得分:8)

  • Spraying正在将命令写入指定空间中的随机(或至少任意)地址,从而破坏空间中的任意事物
  • 溢出在空间中放置的数据多于它将容纳的数据,从而破坏相邻的空间
  • Overrun将更多数据放在空间的子集中(例如,在该空间中分配的对象),而不是为该子集分配的数据,从而破坏了相邻的对象。

答案 1 :(得分:0)

“堆”通常是指动态分配的内存。 “缓冲区”可能位于堆上,但也可能是静态的或驻留在堆栈上。