返回列表 发帖

请教!

我在看缓区溢出的程序是首先压入堆栈的是参数。IP。BP。
在将SP赋给BP
为什么BP有什么用?
是不是有缓冲区就都有BP,而且 BP是动态的?
什么是缓冲区?
QQ:85208141

请教!

  (援引部分笔记和资料)缓冲区溢出又称作堆栈溢出.在某些情况下,如果用户输入的数据长度超过应用程序给定的缓冲区,就会覆盖其他数据区,这就称作“缓冲区溢出”。 一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误,但是,如果输入的数据是经过“黑客”精心设计的,覆盖缓冲区的数据恰恰是黑客的入侵程序代码,黑客就获取了程序的控制权。
  缓冲区溢出分为两类,一类是写入缓冲区以外的内容,一类是读取缓冲区以外的内容。在使用汇编语言,或C语言编写程序时,很容易在无意中引入缓冲区溢出。然而并不是所有的语言都会引入缓冲区溢出问题,Java和C#,由于没有指针,并且缓冲区采取动态分配的方式,有效地消除了造成缓冲区溢出的土壤。
  缓冲区指一个程序的记忆范围(领域),该领域是用来储存一些数据,如电脑程序信息,中间计算结果,或者输入参数。也可以把他理解为由于速度差别而不得不存在的一个区域(形容的够形象吗?)
  你那个"为什么BP有什么用?"这句话 我没看明白是什么意思 等我醒醒酒再来看看
  如果有程序范例最好
  我不行了 得去醒醒酒了 先忽悠这些

TOP

返回列表 回复 发帖