逆向工程核心原理学习笔记(十六):栈帧3:add()函数参数传递与调用
来源:互联网 发布:欧盟一般数据保护条例 编辑:程序博客网 时间:2024/05/20 11:24
从源代码中我们可以看到调用了printf函数,里面调用了add函数,但是add函数有两个参数。
我们转向汇编代码,看一下是如何传参的。
从401034这个地址开始,就开始把参数压入栈中,直到40103B,把所有的参数都压入到了栈中,然后带哦用401000地址的函数,即add函数。
我们F7往下走,直到走到40103B的地址,观察一下栈中的情况,相对于EBP:
我们可以清楚的看到参数已经被压入到栈中了,我们继续F7跟进函数:
在这里,我们可以看到add函数的实现。
我们一直F8走,直到retn。
我们可以看到它返回的地址,该地址就被称为add函数的返回地址
0 0
- 逆向工程核心原理学习笔记(十六):栈帧3:add()函数参数传递与调用
- 逆向工程核心原理学习笔记(二十一):栈帧8:删除函数add()的参数(整理栈)
- 逆向工程核心原理学习笔记(二十二):栈帧9:调用printf()函数
- 逆向工程核心原理学习笔记(二十):栈帧7:删除函数add()的栈帧&函数返回
- 逆向工程核心原理学习笔记(十七):栈帧4:开始执行add()函数&生成栈帧
- 逆向工程核心原理学习笔记(十八):栈帧5:设置add()函数的局部变量(x,y)
- 逆向工程核心原理学习笔记(十九):栈帧6:ADD运算
- 逆向工程核心原理学习笔记(二十六):abex'crackme #2 name的存取
- 逆向工程核心原理学习笔记(十四):栈帧1
- 逆向工程核心原理学习笔记(十四):栈帧1
- 逆向工程核心原理学习笔记(七):总结
- 逆向工程核心原理学习笔记(十一):栈
- 逆向工程核心原理学习笔记(七):总结
- 逆向工程核心原理学习笔记(十一):栈
- 逆向工程核心原理学习笔记(一):寻找程序的主函数(Main)
- 逆向工程核心原理学习笔记(一):寻找程序的主函数(Main)
- 逆向工程核心原理学习笔记(二):字符串检索法查找main函数
- 逆向工程核心原理学习笔记(二):字符串检索法查找main函数
- 四、Mapreduce简介
- Android广播机制概述(上)
- map的详细用法
- MySQL安装目录
- 应用统计学与R语言实现学习笔记(四)——抽样方法与抽样分布
- 逆向工程核心原理学习笔记(十六):栈帧3:add()函数参数传递与调用
- Intellij IDEA 快捷键整理
- Java设计模式
- 00-EM算法
- 关于shellll脚本的基本编译
- LVM:logcal volume manager逻辑卷管理器
- bzoj3039 玉蟾宫 (悬线法)
- ubuntu使用命令粉碎文件
- ROS系统架构