iOS逆向工程使用逆向工程使用LLDB的的USB连接调试第三方连接调试第三方App
主要介绍了iOS逆向工程使用LLDB的USB连接调试第三方App,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具。使用LLDB可以动态的调试你的应用程序,如果你
不做其他的额外处理,因为debugserver缺少task_for_pid权限,所以你只能使用LLDB来调试你自己的App。那么本篇博客中就要使用LLDB来调试从AppStore下载安装
的App,并且结合着Hopper来分析第三方App内部的结构。LLDB与Hopper的结合,会让你看到不一样的东西,本篇博客就会和你一起领略LLDB与Hopper的魅力。
一、一、SSH的的USB连接连接--usbmuxd
之前我们ssh连接iOS设备是通过局域网也就是WiFi来连接的,当网络环境不好的时候输入个命令行都卡,所以我们需要一种更快的访问iOS设备的方式,那就是使用
USB连接了。本篇博客中无论是SSH连接iOS设备还是LLDB连接iOS设备,我们都使用USB的方式进行设备的访问,这样速度就快的不行不行的了。本篇博客的第一
部分就是介绍如何使用USB进行设备的SSH连接,这部分也是本篇博客的基础,不过内容还算是简单。
1、获取、获取usbmuxd
usbmuxd虽然目前最新的版本是1.1.0,但是1.1.0版本和1.0.9版本仅支持Linux系统,也就是说我们的Mac还是得下载v1.0.8的版本,下载地址(usbmuxd-v1.0.8)。下
载完后,将下载的文件进行解压,内容如下所示:
2.使用使用usbmuxd连接连接iOS越狱设备越狱设备(1) 使用使用usbmuxd转发接口转发接口
切换到上述文件夹下的python-client目录下,执行下方的命令,将iOS上的22端口转发到当前设备的2221端口,如下所示。
./tcprelay.py -t 22:2221
下方是执行上述命令的结果:
(2) 使用ssh连接到越狱设备
ssh root@localhost -p 2222
上述命令就是ssh连接的命令 -p后边紧跟的是上述转发的端口,执行上述命令后,结果如下:
使用usbmuxd就可以通过USB来连接我们的iOS越狱设备了,下方的LLDB连接iOS设备也是通过USB连接的。具体请看下文。
二、配置二、配置debugserver
在做iOS开发时,在Mac上输入LLDB的命令就可以控制iOS端的App,是因为在我们iOS客户端中有一个debugserver服务器。debugserver专门用来连接Mac端的LLDB
客户端,接收LLDB所提供的命令,并且进行相应的执行。如果你的iOS设备进行过真机调试的话,设备中就会被安装上debugserver, 不过该debugserver只能用来调试
你自己的相关应用。如果想要调试从AppStore中获取的App的话,那么我们需要对iOS设备上的debugserver进行处理。该部分就是要处理我们的debugserver。
1.获取获取debugserver
首先我们得找到iOS设备中debugserver,并将其拷贝到Mac上进行处理,下方就是位于/Developer/usr/bin目录下的debugserver。此debugserver只支持调试我们自己
的App, 如果需要调试其他人的App的话,需要对此debugserver进行处理,处理过程见下文。
2.对对debugserver进行瘦身进行瘦身