当程序试图写入缓冲区并超出缓冲区边界时,会发生缓冲区溢出,导致程序将可能属于另一个程序的信息写入内存。这违反了操作系统内存的完整性,导致正在执行的程序出现严重错误和潜在的崩溃。缓冲区溢出的主要危险来自两个主...
当程序试图写入缓冲区并超出缓冲区边界时,会发生缓冲区溢出,导致程序将可能属于另一个程序的信息写入内存。这违反了操作系统内存的完整性,导致正在执行的程序出现严重错误和潜在的崩溃。缓冲区溢出的主要危险来自两个主要因素。第一,写入缓冲区外的信息表面上“丢失”,因为计算机的内存映射(其内存位置列表)无法解释。第二,缓冲区溢出会意外地覆盖存储在内存中的另一个程序的信息,从而有效地干扰另一个程序的执行“缓冲区”是指当计算机从一个点传送信息到另一个点时用作临时存储位置的内存区域。缓冲区最常见的用途通常是在视频或音频播放中,计算机提示内存中额外的X秒的视频或音频,确保在系统出现临时故障时不会中断播放。缓冲区只存在于计算机内存中的特定预定位置,就像一个国家只存在于地图上所画的边界线内一样,踏入这些虚拟的“线”不仅会给程序运行带来问题,也会给系统中的其他程序带来问题从本质上讲,这个程序已经超出了它所指定的权限范围,并侵入了另一个工作程序的空间。一旦发生这种情况,在缓冲区外写入的信息就会从计算机的地图上消失;换句话说,系统不再有任何方法来检索它。由于计算机只“知道”在内存中分配的特定缓冲空间内搜索缓冲信息,它无法找出溢出信息的去向。除此之外,缓冲区溢出还有可能中断计算机上运行的其他程序。想象一下,缓冲区两边的内存存储空间已分配给其他正在运行的程序。一旦缓冲区中的信息流出其设计区域,它将覆盖和损坏内存中已存储的任何信息。因此,缓冲区溢出是一个问题,它可能会破坏相邻程序的有效性,并破坏其自身的操作
-
发表于 2020-07-31 21:08
- 阅读 ( 1619 )
- 分类:电脑网络