xcode反汇编调试iOS模拟器程序(六)函数出入口处的处理与局部变量

简介: 引用第二节的例子: 函数的入口处,通常都是把esp的值传给ebp保存,然后下面的操作以ebp为基准做偏移量引用。因为esp作为栈指针,push和pop都会自动修改其值,所以用ebp可以不受影响。

引用第二节的例子:


函数的入口处,通常都是把esp的值传给ebp保存,然后下面的操作以ebp为基准做偏移量引用。因为esp作为栈指针,push和pop都会自动修改其值,所以用ebp可以不受影响。

还有的常见情形是开头和结尾对应着

subl $8, %esp
addl $8, %esp
这里体现着所谓的“局部变量在栈上分配”原则,说明本函数需要用8字节作为局部变量的保存空间。同时因为ebp已指向未subl前的esp地址,所以往下的操作中,-x($ebp)这样的地方是在操作局部变量,其中x为非负整数。不过需要明确的是,未必x字节是被用完作为局部变量的,编译器出于字节对齐的考虑,如果只用了7字节,那么也会分配到8字节。


嗯,这节很短,但对于理解代码很重要。

目录
相关文章
|
2月前
|
存储 运维 安全
iOS加固原理与常见措施:保护移动应用程序安全的利器
iOS加固原理与常见措施:保护移动应用程序安全的利器
31 0
|
3月前
|
Linux 数据安全/隐私保护 iOS开发
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
如何使用 Xcode 打包导出 IPA 文件并进行 iOS 应用内测,无需支付苹果开发者账号费用?
|
2天前
|
前端开发 rax Linux
汇编语言与x64函数参数传递
汇编语言与x64函数参数传递
6 0
|
2天前
|
编译器 API C语言
在x86架构汇编语言中函数参数传递的三种约定
在x86架构汇编语言中函数参数传递的三种约定
10 2
|
2月前
|
iOS开发 开发者
iOS移动应用程序的备案与SHA-1值查看
iOS移动应用程序的备案与SHA-1值查看
41 2
|
3月前
|
iOS开发 开发者 索引
批量上传 iOS 应用程序截图的实用技巧
批量上传 iOS 应用程序截图的实用技巧
|
4月前
|
JSON JavaScript 安全
iOS 应用程序数据保护:如何保护 iOS 应用程序中的图片、资源和敏感数据
iOS 应用程序数据保护:如何保护 iOS 应用程序中的图片、资源和敏感数据
|
测试技术 开发工具 iOS开发
Xcode 4.1~4.6 + iOS 5、iOS 6免证书(iDP)开发+真机调试+生成IPA全攻略
原创文章,欢迎分享;未经许可,不得转载;版权所有,侵权必究 开发环境使用的是目前为止最新的稳定版软件:Mac OS X Lion 10.7 + Xcode 4.1 目前Xcode 4.2 Preview版也已经发布,据说其修改方法跟4.1非常类似,只改动了一行代码,请参看参考文章的第二篇。
1412 0
|
9月前
|
iOS开发
iOS Xcode 意外退出 打不开工程
iOS Xcode 意外退出 打不开工程
110 0
|
7月前
|
iOS开发 芯片 MacOS
[Xcode 12, building for iOS Simulator, but linking in object file built for iOS, for architecture...
[Xcode 12, building for iOS Simulator, but linking in object file built for iOS, for architecture...
142 0