论坛首页 安全工具分享区 阅读主题

[原创]让 Xcode 支持使用 root 权限调试 iOS 设备上的任何应用或进程

423 浏览 6 回复
#1 楼主 2026-06-01 21:09:18
要想调试 iOS 设备上的任何程序,需要用到 debugserver + lldb 的方式,可以参考文章一步一步用debugserver + lldb代替gdb进行动态调试进行配置,不再赘述。使用 debugserver + lldb 调试有一个问题就是略麻烦。虽然有一些插件简化了调试的步骤,如:SpringBoard tweak 双击图标启动debugserver,但使用终端调试,脱离Xcode总有些不爽。macOS 上,Xcode 是可以直接使用 root 权限调试进程的,但是 iOS 上不支持。能不能让 Xcode 也支持使用 root 权限调试应用或者进程呢?如果可以,那么使用人人都熟悉的 Xcode 进行调试岂不是舒服?使用 Xcode 调试 iOS 上的程序时,是使用mobile用户启动/Developer/usr/bin/debugserver来对进程进行附加或者其他操作。如果能将/Developer/usr/bin/debugserver替换为修改过的debugserver就好了。可惜/Developer/usr/bin/debugserver是放在一个只读磁盘上的,无法对它进行任何操作。换个角度,如果知道是哪个进程启动了/Developer/usr/bin/debugserver,在它启动之前将debugserver的路径替换成修改过的debugserver路径也可以达到目的。在使用Xcode调试应用时可以看到新增一个debugserver进程,它的启动参数如下:可以看到 lockdown 字眼,谷歌了一下,找到一篇文章usbmux原理以及PeerTalk源码解析,里面有这么一段话:三方软件读取ios设备相册, iTunes备份iPhone,Xcode真机调试, Xcode若要执行真机调试,首先需要和lockdown服务通信,发出启动调试请求,lockdown收到请求以后,启动iOS端对应的调试服务(debugserver),然后Xcode便与debugserver之间建立了通信连接。于是基本确定启动debugserver的目标就在提供lockdown服务的lockdownd守护进程中。经过分析,发现在lockdownd中是使用SMJobSubmit函数来提交启动/Developer/usr/bin/debugserver进程的。启动参数如下:知道上面的信息后,事情就简单了,通过hookSMJobSubmit函数,在需要启动/Developer/usr/bin/debugserver时将其替换成自定义的debugserver路径,同时把UserName改成root,就可以达到让Xcode使用root权限调试任意进程的目的。最后根据上面的思路,写了一个Tweak,代码在 这里。Cydia 源:1f2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6J5k6i4m8G2i4K6u0W2j5Y4W2@1k6h3q4Y4k6g2)9J5k6h3y4G2L8b7`.`.。

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-273471.htm
#2 2026-06-01 21:09:18
不错 支持 省事了
#3 2026-06-01 21:09:18
mark 学习了
#4 2026-06-01 21:09:18
学习一下
#5 2026-06-01 21:09:18
已经支持 rootless
#6 2026-06-01 21:09:18
vsasm


已经支持 rootless

大佬 巨魔注入任意ipa 这种方式支持不
#7 2026-06-01 21:09:18
阿钟wilsion


大佬 巨魔注入任意ipa 这种方式支持不

巨魔没用过,如文章所说,原理是要 hook 系统进程 lockdownd,如果巨魔能实现,应该就可以用

请登录后参与讨论

立即登录 注册账号