當程序試圖寫入緩衝區並超出緩衝區邊界時,會發生緩衝區溢出,導致程序將可能屬於另一個程序的信息寫入內存。這違反了操作係統內存的完整性,導致正在執行的程序出現嚴重錯誤和潛在的崩潰。緩衝區溢出的主要危險來自兩個主...
當程序試圖寫入緩衝區並超出緩衝區邊界時,會發生緩衝區溢出,導致程序將可能屬於另一個程序的信息寫入內存。這違反了操作係統內存的完整性,導致正在執行的程序出現嚴重錯誤和潛在的崩潰。緩衝區溢出的主要危險來自兩個主要因素。第一,寫入緩衝區外的信息表麵上“丟失”,因為計算機的內存映射(其內存位置列表)無法解釋。第二,緩衝區溢出會意外地覆蓋存儲在內存中的另一個程序的信息,從而有效地幹擾另一個程序的執行“緩衝區”是指當計算機從一個點傳送信息到另一個點時用作臨時存儲位置的內存區域。緩衝區最常見的用途通常是在視頻或音頻播放中,計算機提示內存中額外的X秒的視頻或音頻,確保在係統出現臨時故障時不會中斷播放。緩衝區隻存在於計算機內存中的特定預定位置,就像一個國家隻存在於地圖上所畫的邊界線內一樣,踏入這些虛擬的“線”不僅會給程序運行帶來問題,也會給係統中的其他程序帶來問題從本質上講,這個程序已經超出了它所指定的權限範圍,並侵入了另一個工作程序的空間。一旦發生這種情況,在緩衝區外寫入的信息就會從計算機的地圖上消失;換句話說,係統不再有任何方法來檢索它。由於計算機隻“知道”在內存中分配的特定緩衝空間內搜索緩衝信息,它無法找出溢出信息的去向。除此之外,緩衝區溢出還有可能中斷計算機上運行的其他程序。想象一下,緩衝區兩邊的內存存儲空間已分配給其他正在運行的程序。一旦緩衝區中的信息流出其設計區域,它將覆蓋和損壞內存中已存儲的任何信息。因此,緩衝區溢出是一個問題,它可能會破壞相鄰程序的有效性,並破壞其自身的操作
-
發表於 2020-07-31 21:08
- 閱讀 ( 766 )
- 分類:電腦網絡