反汇编 函数的调用和实现_笔记
来源:互联网 发布:mysql入门教程 编辑:程序博客网 时间:2024/06/04 17:58
调用call时 会让栈push 返回地址 相对就的 esp +4
进入call 后 先保存 ebp
然后 把esp 给了ebp 当前函数堆栈从此开始
接下来 就是esp 减多少了. esp减多少就是这个函数的栈多大 从epb 开始加上这个值就是这个函数所用栈的范围.如果没变量 esp 不减, 如果有1个int esp-8 , 有2个int esp -c.
再下来就是保存环境了.
push ...
相对应函数结尾
pop ...
函数结尾时的ret 这个指令会让 esp +4. 如果有这样的表达式 ret 4 执行这个指令会让esp+4+后面的这个数.
断在函数入口时看栈:
1 返回地址
2 第一个参数
3 第二个参数
4 .....
ebp 记录了函数进来时 esp 的值
ebp+4 记录了栈返回的地址.
epb+8 第一个参数
epb+12 第一个参数
epb+C 第三个参数
epb-8 epb-C epb-14 //这类的东西就是它的局部变量
esp 上面的上变量, 下面的是参数
- 反汇编 函数的调用和实现_笔记
- 函数调用反汇编
- 函数调用反汇编
- 函数指针调用和直接函数调用的反汇编对比
- 反汇编之函数调用
- C++反汇编学习笔记3——函数的调用方式
- 【汇编】gcc反汇编 关于函数调用
- 跟据函数指针调用函数的反汇编
- C++代码反汇编后的函数调用过程,堆栈寄存器EBP和ESP
- gdb反汇编详解C函数底层实现笔记
- C++虚函数调用的反汇编解析
- C++虚函数调用的反汇编解析
- C++虚函数调用的反汇编解析
- C++虚函数调用的反汇编解析
- C++虚函数调用的反汇编解析
- C++虚函数调用的反汇编解析
- 高级语言函数调用的反汇编分析
- C++虚函数调用的反汇编解析
- 那个年代
- 解决PHP函数ip2long转换IP时数值太大而产生负数的办法
- Learn Python The Hard Way学习(9) - 打印,打印,打印
- 发邮件工具类(1)
- 【热门技术】Ad Hoc 点对点通信模式 -- 移动自组织网络
- 反汇编 函数的调用和实现_笔记
- Learn Python The Hard Way学习(10) - 那是什么?
- android获取当前运行的栈顶的应用包名
- IOS 运营,推广,排序,收入
- js闭包
- 如何把一个数据中的表中的数据,插入到另外一个数据库中
- Phonegap开发资源
- 软件公司如何接项目
- java发邮件工具类续