![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
怎么解决缓冲区溢出的问题啊?``各位大侠请指点!谢了!!
每次打开IE都会提示!!烦啊!!~~IE也运行不了~~~上不了网啊``!!哪位大侠指点一下迷津!!!感激不尽!!...
每次打开IE都会提示!!烦啊!!~~IE也运行不了~~~上不了网啊``!!哪位大侠指点一下迷津!!!感激不尽!!
展开
2个回答
2013-11-16
展开全部
缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上。理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。但是绝大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。
当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区,其他缓冲区存放的可能是数据、下一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。可见一小部分数据或者一套指令的溢出就可能导致一个程序或者操作系统崩溃。
缓冲区溢出是由编程错误引起的。如果缓冲区被写满,而程序没有去检查缓冲区边界,也没有停止接收数据,这时缓冲区溢出就会发生。缓冲区边界检查被认为是不会有收益的管理支出,计算机资源不够或者内存不足是编程者不编写缓冲区边界检查语句的理由,然而摩尔定律已经使这一理由失去了存在的基础,但是多数用户仍然在主要应用中运行十年甚至二十年前的程序代码。
缓冲区溢出之所以泛滥,是由于开放源代码程序的本质决定的。一些编程语言对于缓冲区溢出是具有免疫力的,例如Perl能够自动调节字节排列的大小,Ada95能够检查和阻止缓冲区溢出。但是被广泛使用的C语言却没有建立检测机制。标准C语言具有许多复制和添加字符串的函数,这使得标准C语言很难进行边界检查。C++略微好一些,但是仍然存在缓冲区溢出。一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误,但是,如果输入的数据是经过“黑客”或者病毒精心设计的,覆盖缓冲区的数据恰恰是“黑客”或者病毒的入侵程序代码,一旦多余字节被编译执行,“黑客”或者病毒就有可能为所欲为,获取系统的控制权。
使用一组或多组附加驱动器存储数据的副本,这就叫数据冗余技术。比如镜像就是一种数据冗余技术。
当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区,其他缓冲区存放的可能是数据、下一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。可见一小部分数据或者一套指令的溢出就可能导致一个程序或者操作系统崩溃。
缓冲区溢出是由编程错误引起的。如果缓冲区被写满,而程序没有去检查缓冲区边界,也没有停止接收数据,这时缓冲区溢出就会发生。缓冲区边界检查被认为是不会有收益的管理支出,计算机资源不够或者内存不足是编程者不编写缓冲区边界检查语句的理由,然而摩尔定律已经使这一理由失去了存在的基础,但是多数用户仍然在主要应用中运行十年甚至二十年前的程序代码。
缓冲区溢出之所以泛滥,是由于开放源代码程序的本质决定的。一些编程语言对于缓冲区溢出是具有免疫力的,例如Perl能够自动调节字节排列的大小,Ada95能够检查和阻止缓冲区溢出。但是被广泛使用的C语言却没有建立检测机制。标准C语言具有许多复制和添加字符串的函数,这使得标准C语言很难进行边界检查。C++略微好一些,但是仍然存在缓冲区溢出。一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误,但是,如果输入的数据是经过“黑客”或者病毒精心设计的,覆盖缓冲区的数据恰恰是“黑客”或者病毒的入侵程序代码,一旦多余字节被编译执行,“黑客”或者病毒就有可能为所欲为,获取系统的控制权。
使用一组或多组附加驱动器存储数据的副本,这就叫数据冗余技术。比如镜像就是一种数据冗余技术。
2013-11-16
展开全部
这不是病毒,是应用软件与Mcafee的冲突
我的是金山词霸与Mcafee的"缓冲区溢出保护"的冲突.显示报告如下:
2007-3-30 13:13:45 被缓冲区溢出保护阻挡 WORKGROUP\Mr Shen C:\WINDOWS\explorer.exe::VirtualProtect bo:heap(stack 注:与heap的意思一样,也就是一回事)
"缓冲区溢出保护"中可以针对溢出问题进行预防。微软的很多安全漏洞都是由于缓冲区溢出功能所引起的。为了解决溢出问题,软件厂商们都采取了各种方法。例如在最新的Windows XP SP2中新增了一个数据执行保护功能,如果你的CPU支持该功能(例如AMD的Athlon 64处理器),那么缓冲区溢出问题得到了彻底的解决。不过目前并不是所有人都具有支持该功能的处理器,那么从软件上进行防御就是最主要的方法,McAfee VirusScan Enterprise已经支持该功能。该功能不需要太多设置,默认的选项就已经能很好的保护我们。不过该功能可能会和某些编写不规范的程序相冲突。例如金山词霸2006,该软件中有一个内存泄露的Bug,这导致在安装McAfee VirusScan Enterprise 的机器上运行金山词霸2006的时候McAfee VirusScan Enterprise的缓冲区溢出保护功能会报警,并影响金山词霸2006的正常使用。既然金山公司一直不发布解决该问题的补丁程序,那么我们只有对McAfee VirusScan Enterprise进行一些设置以解决该问题。
打开"VirusScan 控制台"→"缓冲区溢出保护"属性→"缓冲区溢出排除"→"添加"界面,在进程名一栏中输入"iexplore.exe",API名称一栏中输入"VirtualProtect,随后点击确定。经过这样的设置,金山词霸2006的运行就没有什么问题了。同样,如果你的其它软件因为McAfee VirusScan Enterprise的缓冲区溢出保护功能而无法正常运行,那也可以通过这样的方法解决
我的是金山词霸与Mcafee的"缓冲区溢出保护"的冲突.显示报告如下:
2007-3-30 13:13:45 被缓冲区溢出保护阻挡 WORKGROUP\Mr Shen C:\WINDOWS\explorer.exe::VirtualProtect bo:heap(stack 注:与heap的意思一样,也就是一回事)
"缓冲区溢出保护"中可以针对溢出问题进行预防。微软的很多安全漏洞都是由于缓冲区溢出功能所引起的。为了解决溢出问题,软件厂商们都采取了各种方法。例如在最新的Windows XP SP2中新增了一个数据执行保护功能,如果你的CPU支持该功能(例如AMD的Athlon 64处理器),那么缓冲区溢出问题得到了彻底的解决。不过目前并不是所有人都具有支持该功能的处理器,那么从软件上进行防御就是最主要的方法,McAfee VirusScan Enterprise已经支持该功能。该功能不需要太多设置,默认的选项就已经能很好的保护我们。不过该功能可能会和某些编写不规范的程序相冲突。例如金山词霸2006,该软件中有一个内存泄露的Bug,这导致在安装McAfee VirusScan Enterprise 的机器上运行金山词霸2006的时候McAfee VirusScan Enterprise的缓冲区溢出保护功能会报警,并影响金山词霸2006的正常使用。既然金山公司一直不发布解决该问题的补丁程序,那么我们只有对McAfee VirusScan Enterprise进行一些设置以解决该问题。
打开"VirusScan 控制台"→"缓冲区溢出保护"属性→"缓冲区溢出排除"→"添加"界面,在进程名一栏中输入"iexplore.exe",API名称一栏中输入"VirtualProtect,随后点击确定。经过这样的设置,金山词霸2006的运行就没有什么问题了。同样,如果你的其它软件因为McAfee VirusScan Enterprise的缓冲区溢出保护功能而无法正常运行,那也可以通过这样的方法解决
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询