免开Xcode,手动开启LLDB调试手机

一、简介

我们Xcode中的lldb可以调试手机中的应用,是因为手机中的Debugsever开启的相关服务,越狱环境中,我们只需要开启Debugsever服务就可以利用lldb远程调试第三方应用了。

二、Debugsever文件在哪

我们第一次调试手机的时候,Xcode会把相关版本的Debugsever文件安装到手机上,并且开启Debugsever服务。

/APPlication/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/中可以看到对应不同iOS系统版本的镜像文件。

免开Xcode,手动开启LLDB调试手机_第1张图片
Debugsever镜像文件

打开dmg文件,进入usr/bin目录可以看到debugserver。这就是Xcode安装到真机中的文件。


免开Xcode,手动开启LLDB调试手机_第2张图片
debugserver文件

通过对比md5查看,会发现是相同的文件。

三、准备工作

  • 越狱手机
  • 手机安装openssh
  • usb连接手机

四、启动debugserver

1、iPhone中开启debugserver服务,并将debugserver依附到app中。

# 由于主机地址是当前手机,主机地址可以使用*代替
# 自定义端口号:启动server服务,开放端口,让远程的LLDB通过sever调试进程
# 应用进程:可以通过openssh连接手机后使用 'ps -a' 查看应用进程名称
$debugserver 主机地址:端口号 –a 应用进程

2、Mac上启动LLDB连接iPhone,在Mac电脑上新建一个terminal窗口,启动lldb。

# 这样就启动lldb了
$lldb

3、连接debugserver

# 'process ':进程的意思
# 'connect':链接的意思
# 'connect:手机IP:服务端口号' :lldb的链接手机协议写法
# '手机IP':可以是localhost
# '服务端口号':也即是上面刚刚设置的端口号
(lldb)process connect connect:手机IP:服务端口号

4、退出lldb

# 退出时会提示是否杀掉进程:输入Y后,lldb将关闭应用进程。
(lldb)exit

5、使用lldb调试手机,请翻页:iOS逆向之《LLDB》

五、注意:

  • 链接手机应用后可能会发现应用卡住了,是因为lldb打了断点,执行c指令就可以让手机活动了。
  • 如果需要执行Chisel、Cycript等lldb工具,需要在lldb模式下输入 process interrupt才能是其生效 ,如果集成了Chisel,可以试试pviews指令。

六、总结

简单介绍了手动lldb连接手机的连接方式,反手赞一个吧。

你可能感兴趣的:(免开Xcode,手动开启LLDB调试手机)