【逆向工程核心原理】笔记——栈帧

00401020:main函数的入口点
在这里插入图片描述
把ESP的值传给EBP,将EBPB变成mian函数的EBP, ESP,EBP都指向同一指令
在这里插入图片描述
目的:将旧的EBP保存起来
请添加图片描述

00401023:ESP-8
在这里插入图片描述
00401026:将数据1放入EBP-4
00401026: 将数据1放入EBP-8
00401034:将参数b入栈,将EBP-8传入EAX
00401038:将参数a入栈,将EBP-4传入EAX
在这里插入图片描述
请添加图片描述请添加图片描述
0040103C: 将00401000地址入栈
请添加图片描述

add函数的EBP生成,进行备份请添加图片描述
00401001:ESP指向main函数的栈底指针
00401006-00401009:指向a=1的指针指向EBP-8
0040100C-0040100F:指向b=1的指针指向EBP-4
请添加图片描述
00401015:将EBP-8和ESP-4相加,再放入EBP-8 1+2=3
00401018-0040101B:回收空间,分配给加法的栈帧回收,再恢复main函数的栈帧
00401018: MOV ESP,EBP。 ESP的指针指向EBP
0040101A:POP EBP出栈,将栈顶数据给EBP(栈顶数据:main函数的栈底EBP)

在这里插入图片描述
0040101B: RETN,箭头指回00401041,ESP+8,mian函数的ESP恢复出来

在这里插入图片描述
00401044-0040104A: printf语句

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值