在越狱的iPhone设置上使用lldb调试

4607次阅读  |  发布于5年以前

封面

1,配置debugserver

iOS手机调试后,debugserver会存在于/Developer/user/bin/目录下。配置debugserver是指:给debugserver重签名,然后将重签名的文件放在iOS的/usr/bin目录下。

整个过程如下:

iOS系统下,所有的程序都是需有正确的签名才能运行,签名保证文件的完整性,沙盒保证可执行文件不会越权访问未被授权的资源。上面的配置文件ent.xml则可以看成是沙盒的配置文件,即告诉沙盒,此可执行程序具有哪些权限,这样一个配置文件,在和签名计算绑定在一块的。从这个点上看,签名与沙盒一起构成了iOS系统的安全基础。更多签名机制,可以从这里了解更多

至此,debugserver准备完成,可以开始远程调试了。

2,在iOS上attach要被调试的程序。

在iOS上运行命令:debugserver *:1234 -a "SpringBoard"即可。正常情况下运行后结果如下所示: 此处输入图片的描述

lldb调试的整个结构是这样的:在iOS上使用debugserver程序attach本地(iOS)的进程,同时监听某一个端口,以便接受命令,执行并返回结果。而命令的发送者一般就是我们的Mac电脑上运行的lldb程序。

3,在OSX上运行lldb以进行调试

正如第二节所述,lldb的调试是OSX上的lldb做为一个客户端程序,通过网络向iOS上的程序发起Tcp连接(debugserver是Tcp服务的提供者)来完成的。理解了这些后,OSX端的操作就比较易懂了:

此处输入图片的描述

如上图所示,我用的是localhost,是因为我将所有本地的1234的请求,转发起iPhone手机的1234端口了。这种USB连接调试的方式会更快,如果没有进行这一操作,换成手机的IP地址也是一样的,只是稍慢。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8