
三、debugserver的开启与LLDB的连接
1.开启debugserver
在越狱设备中,我们就可以通过下方命令行来开启debugserver了,我们此处以调试微信App为例。下方的命令就是启动debugserver来监听来自任何IP地址的接入,iOS设备的接入端口是12345,所要调试的App为“WeChat”。命令如下:
debugserver *:12345 -a "WeChat"
在我们iOS设备上执行上述命令的效果如下所示,执行完上述命令后,我们的iOS设备就会等待Mac终端LLDB的接入。

2.LLDB连接debugserver
LLDB连接debugserver可以使用WIFI进行连接,可是WIFI是不稳定的,而且特别的慢,所以此处我们要使用usbmuxd进行LLDB和debugserver的连接。
(1)进行端口的转发
和第一部分中的内容相同,我们使用usbmuxd进行端口的转发,将上述的“12345”端口对接到Mac本地的某个端口,此处我们使用“12345”端口。进入到usbmuxd-1.0.8目录下的python-client下执行下方的命令。
./tcprelay.py -t 12345:12345
具体操作步骤如下所示:

(2)Mac端LLDB的接入
进行端口转发后,接下来我们就开始进入lldb模式,然后进行debugserver的连接了。首先在terminal上输入lldb命令,然后输入下方的地址进行连接。因为我们使用usbmuxd进行了端口的转发,因此可以使用本地的环回测试地址来进行debugserver的连接。
process connect connect://127.0.0.1:12345
下方是连接后的结果,LLDB与debugserver建立完成后,我们就可以使用lldb来调试微信这个应用了。

四、Hopper + LLDB
在上篇博客《iOS逆向工程之给WeChat脱壳》 我们已经给微信进行可脱壳处理,所以使用Hopper进行处理是没有问题的。此部分我们就要将Hopper与LLDB结合在一起发挥其双剑合璧的作用。该部分也算是本篇博客中实战的一部分。
1.查看线程中的WeChat
LLDB连接上debugserver后,我们首先使用下方的命令来查看当前进程中的所有模块。从这些输出信息中我们能找到“WeChat”这个进程在虚拟内存相对于模块基地址的偏移量。










