美文网首页
IOS逆向--debugserver

IOS逆向--debugserver

作者: dinglangping | 来源:发表于2019-02-16 17:38 被阅读0次

简介:

debugserver是运行在iOS程序中的,顾名思义,作为server端,它接受与来自服务端,也就是LLDB传送过来的命令,继而执行的操作。再把执行结果返回给LLDB,默认情况下, iOS并没有安装debugserver,只有在设备连接了一次xcode之后,并在window->device中添加此设备之后,debugservercai才会别安装到iOS中,默认位于Developer/usr/bin目录下。

但是默认的debugserver只用用户调试我们自己的app,如果想要调试iOS里面所有的app,还需要通过给debugserver赋予task_for_pid的权限。以下是配置task_for_pid的教程

1.debugserver瘦身,首先根据你的iOS设备确定你的手机对应的ARM

首先将未经处理的debugserver从iOS拷贝到OSX中,可以用scp命令,也可以用iFunBox。

然后利用命令 lipo -thin arm64(这里对应你的iOS设备的结构)(未经处理的debugServer的路径)-output(新的debugserver的保存路径)

取得 debugserver 有两种方式

第一种是在 Mac 电脑中拿到进入路径 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/8.3/DeveloperDiskImage.dmg(其中路径里 8.3,代表 iOS 系统版本,需与准备的越狱手机系统版本保持一致)。双击 DeveloperDiskImage.dmg,将目录里的 usr/bin/debugserver 复制到指定文件夹中。

第二种是在越狱手机里拿到

如果手机连接过手机并通过 XCode 调试过 app,会在手机里的 /Developer/usr/bin/ 目录下生成一个 debugserver 文件。通过 iFunbox 导出至 Mac 桌面。或使用 scp 命令 cpoy 出来

2.给debugServer添加task_for_pid权限,将以下xml保存为ent.xml。

运行以下命令:

或者 xcode自带

将添加权限后的debugserver放回去iOS复制到/usr/bin/debugserver,这样的好处是可以全局执行debugserver命令。另一个原因是因为在developer里面的是不可以写的,无法覆盖。

4.给新的debugserver添加可执行的权限

chmod +x /usr/bin/debugserver


Debugserver有两个命令:

1.启动进程,debugserver会启动进程,并且开启port端口,等待来自ip的LLDB接入。ip如果为*则代表任意ip

debugserver backend ip:port /path/to/excutable

附加进程 实在进程已经打开的情况下可以执行

debugserver ip:port -a "processname"

相关文章

网友评论

      本文标题:IOS逆向--debugserver

      本文链接:https://www.haomeiwen.com/subject/wonpeqtx.html