IOS逆向--调试别人项目之准备debugserver

debugserver是运行在ios上,作为服务端,实际上执行LLDB(作为客户端)传过来的没命令,再把执行结果反馈给LLDB,显示给用户,即所谓的”远程调试”。在默认情况下,ios上并没有安装debugserver。需要设备连接Xcode,在window-->Devices菜单中增加此设备后,debugserver才会被Xcode安装到IOS设备的/Developer/usr/bin/目录下。注意:由于缺少task_for_pid权限,通过Xcode安装的debugserver只能调试自己的APP。为了逆向,我们需要对debugserver进行相关配置,使我们可以调试别人的APP

配置

在配置前,我们需要看一下各设备对应的ARM的类型
NameARM
iPhone 4sarmv7
iPhone 5armv7s
iPhone 5carmv7s
iPhone 5sarm64
iPhone 6 plusarm64
iPhone 6arm64
iPad 2armv7
iPad miniarmv7
The New iPadarmv7
iPad with Retina displayarmv7s
iPad Airarm64
iPad Air 2arm64
iPad mini with Retina displayarm64
iPad mini 3arm64
iPad touch 5armv7

将未经处理的debugserver从IOS拷贝到OSX中/Users/snkeninny目录下。

~ snakeninny$   scp root@iOSIO:/Developer/usr/bin/debugserver  ~/debugserver  

然后帮它瘦身,命令如下:

 ~ snkeninny$  lipo -thin armv7s ~/debugserver -output ~/debugserver

注意:这里的armv7s换成你设备对用的ARM

 给debugserver增加task_id_pid权限
  • 方案一

下载ent.xml到OSX的/Users/snkeninny/目录,然后运行如下命令:

~ snakeninny$ /opt/theos/bin/ldid  -Sent.xml debugserver

注意:"-S"选项与"ent.xml"之间没有空格。

  • 方案二

下载ent.plist/Users/snakeninny/,然后运行如下命令:

~ snakeninny$  codesign -s - --entitlements  ent.plist -f debugserver

将处理过的debugserver拷贝回ios

将经过处理的debugserver 拷贝回ios,并增加执行权限,命令如下:

~ snakeninny$  scp ~/debugserver  root@iOSIP:/usr/bin/debugserver
~ snakeninny$  ssh root@iOSIP
~ root# chmod +x /usr/bin/debugserver

这里之所以把处理过得debugserver存放到ios版的/usr/bin/下而没有覆盖/Developer/usr/bin/下的原版debugserver,一是因为原版debugserver是不可写的,无法覆盖,二是因为在/usr/bin/下无需输入全路径就可以执行。


用debugserver启动或附加进程

debugserver最常见的2中场景,就是启动和附加进程,它的命令都很简单,分别为:

debugserver -x backboard IP:port /path/to/executable

debugserver会启动executable,并开启port端口,等待来自IP的LLDB接入。

debugserver IP:port -a "ProcessName"

debugserver会附加ProcessName,并开启port端口,等待来自IP的LLDB接入。

例如:

debugserver -x backboard *:1234  /Applications/MobileSMS.app/MobileSMS

上面的命令行会启动mobileSMS,并开启1234端口,等待任意IP地址的LLDB接入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值