ios debug 线上app
来源:互联网 发布:php exec 后台执行 编辑:程序博客网 时间:2024/05/16 01:44
1、越狱
2、安装必备软件
openssl、Darwin CC Tools等
3、解密app
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Applications/XXXXXX/Victim.app/Victim #(要debug的应用二进制文件)
会在当前目录下生成一个.decrypted的文件。
4、分离(这个在电脑上执行)
lipo -remove 去掉设备不用的构架
5、签名(又好像不用)
忘了命令了
6、替换设备上原来的二进制代码包
7、ida分析
电脑上打开那个二进制包,分析很久
(据说ida有远程调试功能,我一直没成功)
8、寻找关键函数,(ida可以找出oc函数)
9、准备远程调试工具debugserver
用xcode调试过设备,设备上应该就有,在/Developer/usr/bin/下面,弄到电脑上来操作
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.springboard.debugapplications</key>
<true/>
<key>run-unsigned-code</key>
<true/>
<key>get-task-allow</key>
<true/>
<key>task_for_pid-allow</key>
<true/>
</dict>
</plist>
存为entitlements.plist
codesign -s - --entitlements entitlements.plist -f debugserver
传回设备,不要覆盖原版
10、设备端开启调试
debugserver *:1234-a"xxx"#(上面处理过的二进制包)
11、电脑端lldb连接
运行lldb,然后:
processconnectconnect://设备ip:1234
12、找偏移地址(可能要运行两下,刚开始二进制包没加载)
image list -o-f
记下开头的地址
13、打断点
br s-a'(上面的偏移地址) + (ida中找到的关键语句地址)'
运行到断点处
14、查看数据(目前只会查看寄存器)
re r 查看所有寄存器
然后po 地址,如果是oc对象,就直接把内容打印出来了,还可以执行oc语句,如:
po [[UIApplication sharedApplication] delegate]
要是有工具就更好了
- ios debug 线上app
- iOS 动态改变线上app JSPatch技术
- iOS动态修复App线上Bug 之 JSPatch
- iOS 使用JSPatch实现APP线上修复的热更新
- iOS app崩溃率,如何解决线上闪退
- iOS app开发之 debug release
- 线上app日志查询
- 线上Debug方法 & HTTPS基本原理
- iOS友盟崩溃地址解析 通过dSYM文件分析定位线上 APP crash问题
- iOS 【使用 dSYM 符号集对线上 App 进行崩溃修复】
- iOS app debug版本正常 发布版本运行异常
- ios 定位线上bug
- iOS线上修复bug
- 实时更新线上App:JSPatch
- iOS debug
- IOS debug
- iOS线上版本崩溃调试
- iOS 线上崩溃日志分析
- 那些年我们考过的图书馆测试
- LCS dp Batman lightoj 1159
- iOS8之UIPopoverPresentationController
- 欢迎使用CSDN-markdown编辑器
- 选择 GCD 还是 NSTimer ?
- ios debug 线上app
- host is not allowed to connect to this MySql server
- Android.text.TextUtils类
- Linux下暴力破解工具Hydra详解
- sicily 1119. Factstone Benchmark
- redis学习文章 http://blog.csdn.net/htofly/article/details/7683060
- 有15个数存放在一个数组中,输入一个数,要求用折半法找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。以15个数用赋初值的方法在程序中给出。要找的数用scanf函数输入。
- BEGIN_MESSAGE_MAP
- Andrew Ng机器学习(ML)入门学习笔记(三)