For Fun:使用 IDA 调试 iOS 程序的步骤
来源:互联网 发布:2015淘宝双十一销售额 编辑:程序博客网 时间:2024/06/14 14:47
前提要求
1、熟悉基本的 IDA 操作。
2、会对手机进行越狱。
3、从手机上拷贝文件到电脑,从电脑上拷贝文件到手机。
4、会使用 ldid 对 debugserver 签名,增加权限。
5、会使用工具(如:iproxy)映射手机端口。
6、了解如何使用 LLDB 调试应用,可以参考我 15 年写的文章:《在非越狱设备上使用LLDB 调试第三方 App》。
实验环境
64 位 iOS
映射端口
iproxy 11022 11022 DEVICE_UUID
附加、调试 iOS App
1、将 /Applications/Calculator.app/Calculator拷贝到电脑上。
2、使用 IDA 64 加载Calculator。
3、在手机上启动 Calculator。
4、找到 Calculator 的 PID:
ps aux |grep Calculator
假设 PID 为:692
5、确定 Calculator 的加载基址:
vmmap 692
如上图加载基址为:0x1000b0000
6、在 IDA 中将 Calculator 的基址改为:0x1000b0000
7、在手机上配置debugserver:
debugserver *:11022 --attach=692
执行结果如下图:
8、回到 IDA 中选择 Debugger:Remote GDBdebugger
--->
9、启动调试器:
10、配置调试器:
点击 OK。
点击 YES。
11、打开反汇编窗口,在-[Calculator.AppDelegateapplicationDidEnterBackground:] 函数上设置断点:
12、按 F9 继续执行:
13、在手机按 Home 键,将应用切后台,断点命中:
如上是调试iOS 应用的流程,调试 iOS 系统服务的流程也一样。
总结
IDA 调试 iOS 程序的主要问题:没有办法自动处理 ASLR,造成整个调试过程很不顺畅,还不如在 LLDB 中调试。
解决方法:
1、自己为 IDA 写一个调试增强插件,自动计算 ASLR,自动 Rebase。
2、将目标 MachO 的 PIE 属性去掉,不过印象中内核中有检查,在新系统中不一定可以去掉。
- For Fun:使用 IDA 调试 iOS 程序的步骤
- 使用IDA调试apk的so的步骤
- 使用IDA调试android下的linux程序
- 使用IDA调试android下的linux程序
- 使用IDA的调试器
- 使用IDA的调试器
- IDA破解Android程序的基本步骤
- IDA动态调试程序
- IDA调试原生程序
- 使用IDA调试Android原生程序中遇到的问题及解决方法
- windows下使用IDA远程调试linux(ubuntu)下编译的程序
- IDA反汇编/反编译静态分析iOS模拟器程序(八)IDA for Mac
- MAC使用IDA PRO远程调试LINUX程序
- ida配合windbg调试程序
- ida 6.95动态调试ios
- 使用IDA 进行远程调试
- 使用ida调试dex文件
- 使用IDA 进行远程调试
- 百分比布局
- JavaScript的NaN为什么不等于NaN
- python之if语句
- 多线程(三)--多线程间通信
- codevs 3732 NOIP2014 解方程 解题报告
- For Fun:使用 IDA 调试 iOS 程序的步骤
- MySql日期处理函数
- 基于TCP协议的Socket通信(文件传输且续传)
- Daily Meeting Principe
- oa项目心得
- Spring Boot 网易云课堂视频【第八章 Spring Boot 知识点1】
- Cocoapods安装详细流程
- Python os模块常用函数详解
- Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)