1.将手机上Developer/usr/bin/debugserver文件拷贝出来
增加task_for_pid权限
lipo -thin arm64 debugserver -output debugserver
codesign -s - --entitlements ent.plist -f debugserver
1.1 debugserver瘦身,首先根据你的iOS设备确定你的手机对应的ARM,4s是armv7,5,5c是armv7s,5s以上的机型都是arm64,我的手机是5s,所以对应的arm是arm64,所以只从debugserver保留arm64的架构即可。
1.2 ent.plist文件如果无法下载,按如下自己生成。
<?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>
补充:我手机是ios9.0,上述权限就够了,如果是ios10以上其它版本,或许还需要添加
platform-application权限。
2. 放到手机/user/bin/目录下。因为上面的目录权限是只读的
然后ssh到手机上
chmod +x /usr/bin/debugserver
增加可执行权限
开启debugserver服务监听
wangfeide-iPhone5s:~ root# debugserver *:1234 -a WeChat
备注 -a进程:输入APP的进程信息(进程ID或者进程名称)
补充:上面的操作是我用的越狱机ios9.0,如果是其它越狱和手机系统版本
如果是electra越狱的ios11,需要用
/electra/jailbreakd_client <the pid> 1
/Developer/usr/bin/debugserver localhost:1234 -a <the pid>
如果是unc0ver越狱的ios12,(越狱后usr/bin/就有debugserver)直接用下面命令
debugserver localhost:1234 -a WeChat
3.在mac电脑上终端
我这边先本地使用usb转发了端口
iproxy 1234 1234
然后直接
Last login: Tue Sep 11 20:56:53 on ttys002
wangfeidembp:~ wangfei$ lldb
(lldb) process connect connect://localhost:1234
默认微信应用是卡住的
输入c命令才可以继续运行
(lldb) c
Process 5053 resuming
(lldb)
备注,有时候 lldb连接失败,就 关掉 iproxy 1234 1234 的那个命令行窗口 和 lldb的命令行窗口,再重新开启命令行窗口。
或者重新连接手机尝试。