最新消息:本站技术交流 QQ 群:28124927

开始学习缓冲区溢出

缓冲区溢出 exchen 2546浏览 0评论

缓冲区溢出分为栈溢出,堆溢出。

首先从栈溢出开始学习吧!
关于缓冲区溢出需要对汇编方面的知识有一定的了解,有时间再复习一下汇编,今天先初探一下堆栈溢出的原理。

什么是栈呢?
1、栈是一种机制,计算机用它来将参数传递给函数,也可以用来放入函数的局部变量,函数返回地址。
2、在函数开始的时候就会产生栈,并在结束的时候释放它。
3、栈一般是静态的。一旦在函数的开始创建一个栈,那么栈底ebp就不可以改变,当然,栈所保存的数据是可以改变的。

认识三个重要的指针寄存器
EIP  指令寄存器,指向下一条执行的指令地址
ESP 堆栈寄存器,指向栈的当前位置,也就是栈的顶部
EBP 基址寄存器,指向栈的底部

当push一次,esp指向的值就会增加,当pop一次,esp指向的值就会减少
比如:
push 0x12121212   //esp减4
pop eax           //esp加4

转载请注明:exchen's blog » 开始学习缓冲区溢出

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址