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]


要是有工具就更好了

0 0