配置debugserver
来源:互联网 发布:商业游戏源码论坛 编辑:程序博客网 时间:2024/06/06 20:28
前言
在做iOS开发时,在Mac上输入LLDB的命令就可以控制iOS端的App,是因为在我们iOS客户端中有一个debugserver服务器。
debugserver专门用来连接Mac端的LLDB客户端,接收LLDB所提供的命令,并且进行相应的执行。
如果你的iOS设备进行过真机调试的话,设备中就会被安装上debugserver, 不过该debugserver只能用来调试你自己的相关应用。
如果想要调试从AppStore中获取的App的话,那么我们需要对iOS设备上的debugserver进行处理。该部分就是要处理我们的debugserver。
1.获取debugserver
iPhone:/Developer/usr/bin root# lsDTDeviceArbitration ScreenShotr XcodeDeviceMonitor debugserver iprofiler xctest
位于/Developer/usr/bin目录下的debugserver。此debugserver只支持调试我们自己的App, 如果需要调试其他人的App的话,需要对此debugserver进行处理
2.对debugserver进行瘦身
进入到到Mac中debugserver所在的目录下执行上述命令即可,-thin后方填写你的测试机相应的ARM架构即可,因为我的测试机是iPhone 6 Plus, 是arm64的架构,所以此处填的参数是arm64, 如果你的是iPhone5的设备,那么就是armv7s了。
devzkndeMacBook-Pro:Downloads devzkn$ scp iphone:/Developer/usr/bin/debugserver ./debugserver
lipo -thin arm64 debugserver -output debugserver
devzkndeMacBook-Pro:Downloads devzkn$ ls -l debugserver-rwxr-xr-x 1 devzkn staff 13801968 Oct 17 17:19 debugserverdevzkndeMacBook-Pro:Downloads devzkn$ lipo -thin armv7s debugserver -output debugserver
devzkndeMacBook-Pro:Downloads devzkn$ ls -l debugserver-rwxr-xr-x 1 devzkn staff 4582800 Oct 17 17:19 debugserver
3.给debugserver添加task_for_pid权限
给debugserver添加task_for_pid权限后,我们就可以使用LLDB调试其他App了。
此部分我们需要一个存储配置信息的xml文件,该文件的内容如下。你可以将下下方的文本进行拷贝,然后存储成ent.xml即可。
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>com.apple.springboard.debugapplications</key> <true/> <key>get-task-allow</key> <true/> <key>task_for_pid-allow</key> <true/> <key>run-unsigned-code</key> <true/></dict></plist>
在给debugserver符权限时,我们需要使用到ldid命令,如果你的Mac上没有安装ldid命令,那么请用brew进行install
执行下方的命令行就可以给我们的debugserver赋上task_for_pid权限。需要注意的是-S与ent.xml文件名中是没有空格的。
ldid -Sent.xml debugserver
4、将debugserver拷贝到iOS设备中
最后一步就是将处理好的debugserver拷贝到我们的越狱设备中,并且给debugserver赋上可执行的权限。
chmod +x debugserver
因为/Developer/usr/bin目录下的debugserver是只读的,所以你不能将处理好的debugserver拷贝到上述文件,
你要将处理好的debugserver拷贝到/usr/bin/目录下
devzkndeMacBook-Pro:Downloads devzkn$ scp ./debugserver iphone:/usr/bin/debugserver
Phone:/usr/bin root# ls -l debugserver-rwxr-xr-x 1 root wheel 4582512 Oct 17 17:31 debugserveriPhone:/usr/bin root# debugserverdebugserver-@(#)PROGRAM:debugserver PROJECT:debugserver-320.2.89 for armv7.Usage: debugserver host:port [program-name program-arg1 program-arg2 ...] debugserver /path/file [program-name program-arg1 program-arg2 ...] debugserver host:port --attach=<pid> debugserver /path/file --attach=<pid> debugserver host:port --attach=<process_name> debugserver /path/file --attach=<process_name>
- 配置debugserver
- LLDB+debugserver动态调试
- lldb+debugserver调试
- LLDB与debugserver
- lldb +debugserver调试环境部署
- iOS_逆向_使用debugserver
- 安装debugserver到iPhone上
- iOS 设备上的 debugserver 补丁
- iOS debugserver + lldb的安装调试
- iOS LLDB + debugserver 进行远程调试APP
- lldb +debugserver调试环境部署(一)
- 用debugserver + lldb代替gdb进行动态调试
- 用debugserver+lldb代替gdb进行iOS远程动态调试
- iOS Hacker LLDB 和 debugserver 实例调试
- IOS逆向--调试别人项目之准备debugserver
- 最新 RemObjects V6.0.39.777 套件 With FullSource 源码(包含 RemObjects DebugServer - 3.0.3.293.exe )
- 一步一步用debugserver + lldb代替gdb进行动态调试(整理与补充)
- iOS 菜鸟逆向学习 (二)----iOS debugserver + lldb的安装调试
- java 获取路径的各种方法
- GO语言实现selpg
- BZOJ 2821 作诗 (分块)
- 基于SpringMVC的文件下载实例
- Windows RabbitMQ 镜像队列 (高可用性、一台宕机自动切换另一台) 使用 RabbitMQ 自带的Web 管理工具
- 配置debugserver
- 剑指编程(9)
- JMeter 中Random 随机函数的使用
- Maven部署web应用war包到Tomcat 出现 I/O exception (java.net.SocketException) caught when processing request:
- java.util.concurrent.atomic.AtomicInteger使用整理与解析
- 学习阿里巴巴开发手册-5
- 新路程------bat脚本显示中文
- sql case when 的使用方法
- 1.Java教程概述