逆向工程核心原理学习笔记(十六):栈帧3:add()函数参数传递与调用
2017-05-06 20:08
531 查看
从源代码中我们可以看到调用了printf函数,里面调用了add函数,但是add函数有两个参数。
我们转向汇编代码,看一下是如何传参的。
从401034这个地址开始,就开始把参数压入栈中,直到40103B,把所有的参数都压入到了栈中,然后带哦用401000地址的函数,即add函数。
我们F7往下走,直到走到40103B的地址,观察一下栈中的情况,相对于EBP:
我们可以清楚的看到参数已经被压入到栈中了,我们继续F7跟进函数:
在这里,我们可以看到add函数的实现。
我们一直F8走,直到retn。
我们可以看到它返回的地址,该地址就被称为add函数的返回地址
相关文章推荐
- 逆向工程核心原理学习笔记(二十一):栈帧8:删除函数add()的参数(整理栈)
- 逆向工程核心原理学习笔记(二十):栈帧7:删除函数add()的栈帧&函数返回
- 逆向工程核心原理学习笔记(二十二):栈帧9:调用printf()函数
- 逆向工程核心原理学习笔记(十八):栈帧5:设置add()函数的局部变量(x,y)
- 逆向工程核心原理学习笔记(十九):栈帧6:ADD运算
- 逆向工程核心原理学习笔记(二十三):栈帧10:设置返回值,删除栈帧&main()函数终止
- 逆向工程核心原理学习笔记(十四):栈帧1
- 逆向工程核心原理学习笔记(十三):分析abex' crackme #1 的延伸:将参数压入栈
- 逆向工程核心原理学习笔记(十三):分析abex' crackme #1 的延伸:将参数压入栈
- 逆向工程核心原理学习笔记1-通过IAT手工定位notepad.exe中的导入函数
- 逆向工程核心原理学习笔记(十五):栈帧2:设置局部变量
- 逆向工程核心原理学习笔记(十):IA-32寄存器基本讲解
- 逆向工程核心原理学习笔记(二十七):abex'crackme #2 破解算法
- 逆向工程核心原理学习笔记(二):字符串检索法查找main函数
- 逆向工程核心原理学习笔记(五):实战“打补丁方法”修改字符串
- 逆向工程核心原理学习笔记(一):寻找程序的主函数(Main)
- 逆向工程核心原理学习笔记(八):小端序标记法1
- 逆向工程核心原理学习笔记(三):检索API方法
- 逆向工程核心原理学习笔记(六):实战开辟新内存区域写入缓冲区跳转修改字符串
- 逆向工程核心原理学习笔记2-基址重定位基本原理