开始学习缓冲区溢出

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

 

首先从栈溢出开始学习吧!

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

 

什么是栈呢?

1、栈是一种机制,计算机用它来将参数传递给函数,也可以用来放入函数的局部变量,函数返回地址。

2、在函数开始的时候就会产生栈,并在结束的时候释放它。

3、栈一般是静态的。一旦在函数的开始创建一个栈,那么栈底ebp就不可以改变,当然,栈所保存的数据是可以改变的。

 

认识三个重要的指针寄存器

EIP  指令寄存器,指向下一条执行的指令地址

ESP 堆栈寄存器,指向栈的当前位置,也就是栈的顶部

EBP 基址寄存器,指向栈的底部

 

当push一次,esp指向的值就会增加,当pop一次,esp指向的值就会减少

比如:

push 0x12121212   //esp减4

pop eax                  //esp加4

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值