逆向工程核心原理学习笔记(二十二):栈帧9:调用printf()函数
来源:互联网 发布:如何更改mysql的密码 编辑:程序博客网 时间:2024/05/21 03:26
我们可以清楚的看到printf函数的调用。
然后我们转向汇编代码:
首先PUSH EAX,将add()函数的返回值放进EAX寄存器中,
然后将打印的内容压入410DC4地址
紧接着调用40107C地址的函数,这个地址的函数是C的标准函数——printf,我们不必跟进去。
最后,ADD ESP,8
为啥呢,因为printf的参数为%d\n,占用了8个字节,ESP加上8个字节就将参数从栈中删除了。
32位寄存器 + 32位常量 = 64位 = 8字节
0 0
- 逆向工程核心原理学习笔记(二十二):栈帧9:调用printf()函数
- 逆向工程核心原理学习笔记(十六):栈帧3:add()函数参数传递与调用
- 逆向工程核心原理学习笔记(二十):栈帧7:删除函数add()的栈帧&函数返回
- 逆向工程核心原理学习笔记(二):字符串检索法查找main函数
- 逆向工程核心原理学习笔记(二):字符串检索法查找main函数
- 逆向工程核心原理学习笔记(二十一):栈帧8:删除函数add()的参数(整理栈)
- 逆向工程核心原理学习笔记(十二):分析abex' crackme #1
- 逆向工程核心原理学习笔记(十二):分析abex' crackme #1
- 逆向工程核心原理学习笔记(十四):栈帧1
- 逆向工程核心原理学习笔记(十四):栈帧1
- 逆向工程核心原理学习笔记(二十三):栈帧10:设置返回值,删除栈帧&main()函数终止
- 《逆向工程核心原理》学习总结(二)
- 逆向工程核心原理学习笔记(二十四):abex'crackme #2 初探
- 逆向工程核心原理学习笔记(二十五):abex'crackme #2初步破解
- 逆向工程核心原理学习笔记(二十六):abex'crackme #2 name的存取
- 逆向工程核心原理学习笔记(二十七):abex'crackme #2 破解算法
- 逆向工程核心原理学习笔记(七):总结
- 逆向工程核心原理学习笔记(十一):栈
- Gradle for Android
- PHP Laravel (Homestead)开发环境搭建
- opendir打开后显示的不全
- ES性能调优
- JDBC连接MySql
- 逆向工程核心原理学习笔记(二十二):栈帧9:调用printf()函数
- Coprime Sequence
- c++实现冒泡排序和快速排序
- MEASURING COMPUTER PERFORMANCE
- 领域模型(概念模型) 、逻辑模型、物理模型、贫血模型、充血模型概念总结【待读与标记】
- linux shell 字符串操作(长度,查找,替换)详解
- 百度实习生面试题-按行读取文件
- 记一次 php nginx 502 504 大坑
- 位图