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