開始學習緩衝區溢位

2021-05-22 19:02:39 字數 466 閱讀 4137

緩衝區溢位分為棧溢位,堆溢位。

首先從棧溢位開始學習吧!

關於緩衝區溢位需要對彙編方面的知識有一定的了解,有時間再複習一下彙編,今天先初探一下堆疊溢位的原理。

什麼是棧呢?

1、棧是一種機制,計算機用它來將引數傳遞給函式,也可以用來放入函式的區域性變數,函式返回位址。

2、在函式開始的時候就會產生棧,並在結束的時候釋放它。

3、棧一般是靜態的。一旦在函式的開始建立乙個棧,那麼棧底ebp就不可以改變,當然,棧所儲存的資料是可以改變的。

認識三個重要的指標暫存器

esp 堆疊暫存器,指向棧的當前位置,也就是棧的頂部

ebp 基址暫存器,指向棧的底部

當push一次,esp指向的值就會增加,當pop一次,esp指向的值就會減少

比如:push 0x12121212   //esp減4

pop eax                  //esp加4

緩衝區溢位

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

緩衝區溢位

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

緩衝區溢位 棧溢位

1 緩衝區概念 緩衝區 buffer 又稱為快取,它是記憶體空間的一部分。也就是說,在記憶體空間中預留了一定的儲存空間,這些儲存空間用來緩衝輸入或輸出的資料,這部分預留的空間就叫做緩衝區。使用緩衝區有兩個好處 1 減少實際物理讀寫次數 2 緩衝區在建立時就被分配記憶體,這塊記憶體區域一直被重用,可以...