缓冲区溢出是什么意思?

如题所述

缓冲区溢出
缓冲区是内存中存放数据的地方。在程序试图将数据放到计算机内存中的某一位置,但没有足够空间时会发生缓冲区溢出。

缓冲区是程序运行时计算机内存中的一个连续的块,它保存了给定类型的数据。问题随着动态分配变量而出现。为了不用太多的内存,一个有动态分配变量的程序在程序运行时才决定给他们分配多少内存。如果程序在动态分配缓冲区放入太多的数据会有什么现象?它溢出了,漏到了别的地方。一个缓冲区溢出应用程序使用这个溢出的数据将汇编语言代码放到计算机的内存中,通常是产生root权限的地方。单单的缓冲区溢出,并不会产生安全问题。只有将溢出送到能够以root权限运行命令的区域才行。这样,一个缓冲区利用程序将能运行的指令放在了有root权限的内存中,从而一旦运行这些指令,就是以root权限控制了计算机。总结一下上面的描述。缓冲区溢出指的是一种系统攻击的手段,通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。据统计,通过缓冲区溢出进行的攻击占所有系统攻击总数的80%以上。
温馨提示:内容为网友见解,仅供参考
无其他回答

什么是缓冲区 溢出
而缓冲区溢出,简单的说就是计算机对接收的输入数据没有进行有效的检测(理想的情况是程序检查数据长度并不允许输入超过缓冲区长度的字符),向缓冲区内填充数据时超过了缓冲区本身的容量,而导致数据溢出到被分配空间之外的内存空间,使得溢出的数据覆盖了其他内存空间的数据。

缓冲区溢出的基本原理是什么
缓冲区溢出(buffer overflow),针对程序设计缺陷,向程序输入缓冲区写入使之溢出的内容(通常是超过缓冲区能保存的最大数据量的数据),从而破坏程序运行、趁著中断之际并获取程序乃至系统的控制权。原理:通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,造成程序崩溃或使程...

什么是缓冲区溢出堆栈
缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上。理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。但是绝大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区又被称为...

什么叫缓冲区溢出
缓冲区溢出ESP点 缓冲区溢出知乎 其他类似问题 2016-12-31 如何理解缓冲区溢出攻击?_百度派 2012-01-25 什么叫做缓冲区溢出 2013-04-30 缓冲区溢出的基本原理是什么 7 2016-05-28 缓冲区溢出的概念 2016-05-28 缓冲区溢出的介绍 2007-09-19 什么是缓冲区溢出 11 2013-04-12 什么是缓冲区溢出...

什么叫“缓冲区溢出”啊?谢谢
什么是缓冲区溢出 单的说就是程序对接受的输入数据没有进行有效的检测导致错误,后果可能造成程序崩溃或者执行攻击者的命令,详细的资料可以看unsecret.org的漏洞利用栏目 。缓冲区溢出的概念 缓冲区溢出好比是将十磅的糖放进一个只能装五磅的容器里……堆栈溢出(又称缓冲区溢出)攻击是最常用的黑客技术...

电脑的缓冲区是什么意思啊?它说有什么东西溢出.怎么解决?
缓冲区是解决数据延迟问题的,就是先读数据放在缓冲区,然后再写入磁盘等.溢出说明缓冲区过小,内存容量太小,或虚拟内存设置有问题,而且同时运行太多程序,系统资源耗尽 建议 1 加条内存 2 虚拟内存设置到物理内存的1.5倍,右键 我的电脑-》属性--》高级--》,在性能--设置中设置虚拟内存 3 ...

缓冲溢出是什么意思啊?
缓冲溢出是一种网络安全漏洞,它会导致攻击者能够执行恶意代码或者篡改系统数据。缓冲区溢出是指在向缓冲区中读入数据时,在数据长度超过了缓冲区的容量时,会使得溢出部分的数据被存储到相邻的内存单元上,这就会导致意外的行为,如果攻击者利用了这种情况,就有可能对系统进行攻击。由于缓冲区溢出是一种...

什么是缓冲区溢出
缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上,理想的情况是 程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间想匹配,这就为缓冲区溢出埋下隐患.操作系统所使用的缓冲区又被称为堆栈. 在...

缓冲区溢出概念
缓冲区溢出是一个计算机安全问题,它发生在程序试图将数据写入缓冲区时,超过了其预设的容量。正常情况下,程序应检查数据长度,并确保输入不超过分配的存储空间,但现实中,许多程序假设数据长度会与分配的存储空间一致,这就为这种漏洞创造了条件。这种溢出的数据可能会覆盖到合法数据上,对程序的正常运行...

什么叫做缓冲区溢出
缓冲区溢出的原理 通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,造成程序崩溃或使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。例如下面程序: void function(char *str) { char buffer[16]; strcpy(buffer,str)...

相似回答