iOS 越狱开发那些事儿之四
来源:互联网 发布:算法导论 原书第3版 编辑:程序博客网 时间:2024/05/16 06:06
debugserver + lldb环境搭建
1.首先导出debugserver,找到你Xcode的位置,右键打开包内容,然后按如下路径找到和你手机系统对应的DeveloperDiskImage.dmg.
2.打开DeveloperDiskImage.dmg,找到/usr/bin/debugserver
3.拷贝一份debugserver放在你喜欢的文件夹中(Desktop),之后我们就对桌面上的做操作
想让debugserver成功跑起来必须要做两件事
给debugserver瘦身
瘦身要把debugserver瘦成和我们设备相同arm指令集的对应类型,可参照下图
然后执行命令
lipo -thin armv7s ~/Desktop/debugserver -output ~/Desktop/debugserver
armv7s 这个要看自己的设备了。下面的文章可以了解了解
http://blog.csdn.net/think_ma/article/details/42044281主要是生成只包含armv7s指令的debugserver,不同的设备支持的包含的指令不一样。
给debugserver添加task_for_pid权限
只有打了task_for_pid权限我们才可以在后来以进程为单位调试我们要调试的App。
这里涉及签名工具ldid,如果你还没有安装过ldid工具,请下载.
我们可以先查看下,原始的debugserver的签名属性:ldid -e ~/Desktop/debugserver
如果你这要是有乱码什么的显示,就说明你的ldid有问题,这是原始debugserver的属性列表。
我们还要新建一个entitlement.plist文件,内容为以下内容:
<?xml version="1.0" encoding="UTF-8"?> <!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>run-unsigned-code</key> <true/> <key>get-task-allow</key> <true/> <key>task_for_pid-allow</key> <true/> </dict> </plist>
用这个来替换原始的属性列表,执行命令:
cd Desktop
codesign -s - –entitlements entitlement.plist -f debugserver
再查看一下:
ldid -e ~/Desktop/debugserver
把旧的属性列表替换掉了,说明OK了。
4.把重签名的debugserver放到手机上,执行命令:
scp -p 22 debugserver root@yourPhoneIp:/usr/bin/
之后就可以用ssh登录手机,直接使用debugserver命令了。
如果使用失败先看下debugserver有没有可执行权限,如果没有,则给予r权限:
chmod 777 /usr/bin/debugserver
chmod用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。 -x代表 可执行。
http://www.91tech.net/Article/SoftHardTech/EmbeddedSystem/200811/5405.html
远程调试
手机上你可以通过命令开启debugserver:
debugserver *:1212 -a
参数大概说一下,这里的 * 是指任何ip都可以连接这个debugserver,1212是指连接端口,你可以设置一个没有被占用的,-a 后可以跟进程id,或进程名字。debugserver的wiki。
成功的话会有类似的log:
debugserver-@(#)PROGRAM:debugserver PROJECT:debugserver-320.2.89 for arm64.
Attaching to process WeChat…
Listening to port 1212 for a connection from *…
如果出现:
error: failed to attach to process named: “” unable to start the exception thread
请查一下签名那块的步骤,或者重新拿一个原始的重新签一下,要是觉得是ldid的问题,就换ldid。
如果一切顺利,你手机端已经开启了debugserver。
重新打开一个你电脑的终端,执行命令:
imac3deiMac:Desktop hp$ lldb
(lldb) process connect connect://yourPhoneIp:1212
稍等一下,之后就会连接成功,然后就可以利用lldb的命令行,来调试连接的App了。
主要参考网站 : http://bbs.iosre.com/t/debugserver-lldb-gdb/65/7
参看地址:http://www.jianshu.com/p/7a8b3a21a17e
参考地址:http://blog.csdn.net/think_ma/article/details/42065197
- iOS 越狱开发那些事儿之四
- iOS 越狱开发那些事儿之二
- iOS 越狱开发那些事儿之三
- iOS 越狱开发那些事儿之五
- iOS 越狱开发那些事儿之六---Frida篇
- iOS越狱开发那些事儿之一
- IOS开发那些事儿
- 程序员那些事儿之初学IOS开发思路篇
- iOS开发之WWDC2016开发者需要知道的那些事儿
- 关于ios越狱开发的那些事
- 嵌入式开发的那些事儿(四)
- iOS越狱开发之--TheOS
- C语言的那些事儿之四
- iOS开发那些悲剧的事儿
- iOS越狱开发之MobileSubstrate介绍
- IOS越狱开发之开机启动APP
- iOS越狱开发之MobileSubstrate介绍
- iOS越狱开发之MobileSubstrate介绍
- 与百度应用商店的爱恨情仇
- php 自动加载机制
- Node.js 笔记三:了解npm
- [NOIP2008]笨小猴,火柴棒等式,传纸条,双栈排序
- Android Spinner在使用时的一个特性
- iOS 越狱开发那些事儿之四
- Git常用命令(一)
- Node.js 笔记四: 简单爬虫
- StackExchange.Redis 管道 批量 高性能插入数据
- 在Express的页面模板中的变量的定义与使用总结
- Hash表
- C#总结--骑士飞行棋
- struct inode
- Git客户端安装图文详解如何安装配置GitHub操作流程攻略