标题:
请教!
[打印本页]
作者:
枯藤
时间:
2004-7-10 08:55
标题:
请教!
我在看缓区溢出的程序是首先压入堆栈的是参数。IP。BP。
在将SP赋给BP
为什么BP有什么用?
是不是有缓冲区就都有BP,而且 BP是动态的?
什么是缓冲区?
QQ:85208141
作者:
死神之眼
时间:
2004-7-10 14:43
标题:
请教!
(援引部分笔记和资料)缓冲区溢出又称作堆栈溢出.在某些情况下,如果用户输入的数据长度超过应用程序给定的缓冲区,就会覆盖其他数据区,这就称作“缓冲区溢出”。 一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误,但是,如果输入的数据是经过“黑客”精心设计的,覆盖缓冲区的数据恰恰是黑客的入侵程序代码,黑客就获取了程序的控制权。
缓冲区溢出分为两类,一类是写入缓冲区以外的内容,一类是读取缓冲区以外的内容。在使用汇编语言,或C语言编写程序时,很容易在无意中引入缓冲区溢出。然而并不是所有的语言都会引入缓冲区溢出问题,Java和C#,由于没有指针,并且缓冲区采取动态分配的方式,有效地消除了造成缓冲区溢出的土壤。
缓冲区指一个程序的记忆范围(领域),该领域是用来储存一些数据,如电脑程序信息,中间计算结果,或者输入参数。也可以把他理解为由于速度差别而不得不存在的一个区域(形容的够形象吗?)
你那个"为什么BP有什么用?"这句话 我没看明白是什么意思 等我醒醒酒再来看看
如果有程序范例最好
我不行了 得去醒醒酒了 先忽悠这些
欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/)
Powered by Discuz! 7.2