pwn学习笔记(1)函数调用栈相关知识及常用攻击手段(更新中)

注:

  1. 少部分图片是自己绘制,大部分图片来自学习资料或网络和其他大师傅,且含有个人修改批注,仅用于个人记录和学习使用
  2. 主体以x86架构进行记录,AMD64的不同之处特殊说明
  3. 如有谬误烦请师傅指正,感激之至


函数调用栈是怎样一种结构

  1. 函数调用栈是指程序运行时内存一段连续的区域,用来保存函数运行时的状态信息,包括函数参数与局部变量等
  2. 称之为“栈”是因为发生函数调用时,调用函数(亦称为父函数、caller)的状态被保存在栈内,被调用函数(亦称为子函数、callee)的状态被压入调用栈的栈顶
  3. 在函数调用结束时,栈顶的函数(子函数)状态被弹出,栈顶恢复到父函数的状态
  4. 函数调用栈在内存中从高地址向低地址生长,所以栈顶对应的内存地址在压栈时变小,退栈时变大
    在这里插入图片描述

函数调用栈结构的具体细节

虚拟内存中所处位置

由于函数调用栈由高地址向低地址生长,故其在虚拟内存中所处地址较高,与堆共享同一块内存区域,增长方向相反。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值