开始学习缓冲区溢出
緩沖區溢出分為棧溢出,堆溢出。
?
首先從棧溢出開始學習吧!
關于緩沖區溢出需要對匯編方面的知識有一定的了解,有時間再復習一下匯編,今天先初探一下堆棧溢出的原理。
?
什么是棧呢?
1、棧是一種機制,計算機用它來將參數傳遞給函數,也可以用來放入函數的局部變量,函數返回地址。
2、在函數開始的時候就會產生棧,并在結束的時候釋放它。
3、棧一般是靜態的。一旦在函數的開始創建一個棧,那么棧底ebp就不可以改變,當然,棧所保存的數據是可以改變的。
?
認識三個重要的指針寄存器
EIP? 指令寄存器,指向下一條執行的指令地址
ESP 堆棧寄存器,指向棧的當前位置,也就是棧的頂部
EBP 基址寄存器,指向棧的底部
?
當push一次,esp指向的值就會增加,當pop一次,esp指向的值就會減少
比如:
push 0x12121212?? //esp減4
pop eax??????????????????//esp加4
?
?
?
總結
- 上一篇: 编译错误 fatal error C10
- 下一篇: 认识PE文件