vs调用堆栈窗口怎么弄出来_从零开始(1)栈帧、调用约定

逆向学习从零开始(1)栈帧、调用约定 明白函数和寄存器、栈的关系

PE程序拖入OD有四个基础窗口:代码执行窗口、寄存器窗口、数据窗口、栈窗口,帮助我们对程序进行逆向分析,运行程序,处理器执行的是汇编代码,代码执行时临时保存数据的地方在寄存器和栈。

20286aab69016a0c2a147ee5f2794ca7.png

栈帧

栈的改变是临时的,比如我们调用一个函数,就会生成一个栈空间,调用函数执行结束,根据前面保存在栈里的值,会恢复调用函数之前寄存器的值和汇编代码执行到哪里的地址。

栈帧( stack frame )和栈有关,栈帧是在程序的运行时栈中分配的内存块,专门用于特定的函数调用。程序员通常会将可执行语句分组,划分成叫做函数(也称过程、子例程或方法)的单元。有时候,这样做是遵照所使用的语言的要求。多数情况下,以这些函数单元为基础构建程序是一种编程思维。

如果一个函数并未执行,通常它并不需要内存。但是,当函数被调用时,它就可能因为某种原因需要用到内存。这源于几方面的原因。其一,函数的调用方可能希望以参数(实参)的方式,向该函数传递信息,这些参数需要存储到函数能够找到它们的位置。其二,在执行任务的过程中,函数可能需要临时的存储空间。程序员通常会通过声明局部变量来分配这类临时空间,这些变量将在函

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值