什麼是緩衝區溢位 C

2021-08-21 03:14:21 字數 615 閱讀 3667

緩衝區定義

緩衝區是程式執行的時候機器記憶體中的乙個連續塊,它儲存了給定型別的資料。

緩衝區溢位定義

溢位原因

由於大多數程式都會假設資料長度總是與所分配的儲存資料相當,進而存在緩衝區溢位安全隱患,最好的情況是程式不允許輸入超過緩衝區長度的字元並檢查資料長度。

攻擊方式

人為的緩衝區溢位一般是由於攻擊者寫乙個超過緩衝區長度的字串植入緩衝區,然後再向乙個有限空間的緩衝區中植入超長的字串。

造成結果

過長的字串覆蓋了相鄰的儲存單元,引起程式執行失敗,嚴重的可導致系統崩潰

利用這個漏洞可以執行任意指令,甚至可以取得系統root特級許可權,進而危害系統安全

現有例子

緩衝區溢位是目前導致「黑客」型病毒橫行的主要原因。紅色**、slammer、「衝擊波」都是利用緩衝區溢位漏洞的典型。

防禦措施

防止利用緩衝區溢位發起的攻擊,關鍵在於程式開發者在開發程式時仔細檢查溢位情況,不允許資料溢位緩衝區。

什麼是緩衝區溢位 (二)

要知道什麼是緩衝區溢位,首先要知道什麼是緩衝區,緩衝區,簡單說來是一塊連續的計算機記憶體區域,可以儲存相同資料型別的多個例項。你一定用strcpy拷貝過字串吧?那,如果拷貝時目的字串的緩衝區的長度小於源字串的長度,會發生什麼呢?對,源字串中多餘的字元會覆蓋掉程序的其它資料。這種現象就叫緩衝區溢位。根...

緩衝區溢位

緩衝區溢位是指當電腦程式向緩衝區內填充的資料位數超過了緩衝區本身的容量。溢位的資料覆蓋在合法資料上。理想情況是,程式檢查資料長度並且不允許輸入超過緩衝區長度的字串。但是絕大多數程式都會假設資料長度總是與所分配的儲存空間相匹配,這就為緩衝區溢位埋下隱患。作業系統所使用的緩衝區又被稱為堆疊,在各個操作程...

緩衝區溢位

緩衝區溢位,簡單的說就是計算機對接收的輸入資料沒有進行有效的檢測 理想的情況是程式檢查資料長度並不允許輸入超過緩衝區長度的字元 向緩衝區內填充資料時超過了緩衝區本身的容量,而導致資料溢位到被分配空間之外的記憶體空間,使得溢位的資料覆蓋了其他記憶體空間的資料。通過往程式的緩衝區寫超出其長度的內容,造成...