实时调试(电脑一直跳出实时调试)
实时调试(电脑一直跳出实时调试)是由Cydia创始人Saurik推出的一款脚本语言,Cycript混合了OC、JavaScript语法的解释器,这意味着我们能够在一个命令中使用OC或者JavaScript,甚至两者并用。
它能够挂钩正在运行的进程,能够在运行时修改很多东西,关键,它还不会暂停我们的程序。
说白了,就是在运行时把程序弄得清清楚楚,然后好进行玩耍这个App。
Cycript 安装
官网:http://www.cycript.org/
下载SDK
在SDK中,你能找到一个可执行文件,没错,进去Terminal,执行命令 $./cycript就ok了
安装中的出错
如果报了这个错误,很明显需要Ruby 2.0。
1、查看当前Ruby版本$cd/System/Library/Frameworks/Ruby.framework/Versions/ $ls
2、创建一个符合目录的文件夹$sudomkdir-p/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/
3、copy 一个Ruby 2.0 进去,当然其中的2.3为你自己 ls 出来的Ruby版本sudoln-s/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.2.3.0.dylib/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
成功的标志:
配置zsh
当然,为了使用方便,我们需要将 Cycript 配置到 bash 当中去,这样就不用每次都去找这个可执行文件了。
找到你的 cycript 执行文件目录
在 .zshrc 文件中,配置 PATH
这就完成了,然后打开我们的 iterm2 ,直接输入$cycript
Cycript使用
说完了安装,接下来才是我们的重头戏,那就是使用了。我们来看看这个被我吹嘘的这么牛逼的东西到底有多么变态的好用。
前面说到,Cycript 可以勾住正在执行的进程,这是什么意思?
一、连接
我们的手机打开一个App的时候,就是开启了一个进程。没错,当App开启过后,Cycript 链接上我们的手机,就可以勾着这个App了。
当然勾住进程还是需要条件的
首先需要通过 ssh 连接手机
然后将 Cycript 中的 Cycript.framework 注入App当中
这两件事情,自己去做比较麻烦,这里介绍一个工具——MonkeyDev。它的使用的安装非常简单,可以去 git 上查看
https://github.com/AloneMonkey/MonkeyDev。
二、通过 MonkeyDev 创建一个工程,这里举例微信
打开iterm2,连接手机,输入:$cycript -r 192.168.0.0:6666(192.168.0.0为你手机WiFi的IP,可在设置中查看)
三、使用
因为 Cycript 兼容多种语法,所以OC也可以兼容,并且有tab可以提示。他的语法十分强大,这里举一些例子。
UIApp:打印出UIApplication对象
var keyWindow = UIWindow.keyWindow();:自定义变量,以后 keyWindow 就可以当做一个变量使用了
*#变量地址:打印出这个对象所有属性和相关信息
keyWindow.recursiveDescription().toString:查看层级关系,所有keyWindow上的层级就出来了,后面的toString()会格式化输出
choose(UIButton):打印所有UIButton类创建的对象脚本登录
整个 Cycript 的使用连接都已经介绍完了。为了养成一个使用脚本的习惯,还有方便记忆和使用,我们最好把登录连接写到脚本当中去。
1、在home目录专门创建一个文件夹,用来放自定义的脚本
2、创建一个 cylogin.sh 文件,在文件中写入登录命令
3、在 .zshrc 中配置环境变量
4、直接打开iterm2,执行脚本,完成
Cycript 带你装个B
1、微信转个账0.01元
2、Cycript 找到这个控件
3、直接搜索 "0.01",找到对象地址
4、拿到这个对象使用 #0x1264d5e0 ,修改text
Cycript 一些高级用法
一、演示
ObjectiveC.class:当前进程中所有的类
APPID:获取该应用的bundleID
pviews():当前所有的View
pvcs():当前所有的控制器,还有控制器的堆栈
pactions(#0x1382ffaa):对象的响应者,当然需要这个对象有响应者
rp(#0x1382ffaa):对象的响应者链条
有上面这些用法的原因是什么的,其实这些语法并不是 Cycript 提供的,只是 Monkey 帮我们进行的了封装。
可以看到我们刚才敲出来的语法,都是已经封装的命令。
二、自定义一个 .cy 文件封装
当然这些高级的语法,我们也是可以自定义的,自己做你想做的事儿。
1、Xcode中找到Empty,创建一个 .cy 文件,注意target
2、修改该文件的语法
3、copyfile中添加该文件,注意选中的target
4、书写你的自定义代码,这里是JavaScript//IIFE匿名函数自执行表达式 (function(exports){ JGAPPPATH=[NSBundlemainBundle].bundlePath; JGROOTVC=function(){ returnUIApp.keyWindow.rootViewController; } JGKEYWIND=function(){ returnUIApp.keyWindow; } JGGetCurrentVCFromRootVc=function(rootVC){ varcurrentVC; if([rootVCpresentedViewController]){ //视图被persent出来的 rootVC=[rootVCpresentedViewController]; } if([rootVCisKindOfClass:[UITabBarControllerclass]]){ //根视图如果是UITabBarController currentVC=JGGetCurrentVCFromRootVc(rootVC.selectedViewController); }elseif([rootVCisKindOfClass:[UINavigationControllerclass]]){ //根视图如果是UINavigationController currentVC=JGGetCurrentVCFromRootVc(rootVC.visibleViewController); }else{ //视为当前控制器 currentVC=rootVC; } returncurrentVC; }; JGCurrentVC=function(){ returnJGGetCurrentVCFromRootVc(JGROOTVC()); }; })(exports);
5、先@import,然后执行(直接执行会报错)
总结
Cycript 能在进程中调试程序,而且不需要暂停程序。
语法命令强大,基本集成了LLDB中的指令。
域名解析后多久生效(怎样查询域名解析是否正确)什么是域名解析,简单的说域名解析就是把域名和服务器IP地址绑定在一起。只有做了域名解析,浏览器输入你的域名才能访问到你的网站内容。可以说域名解析是网站建设过程中非常重要的一步,解析
艾滋病多久会传染(艾滋病身上会长什么)摘要一个窗口期的感染者一滴血中病毒含量平均是潜伏期感染者的100倍到1000倍,传染性就是潜伏期感染者的1001000倍。知道窗口期内的感染者传染性最强吗?一个窗口期的感染者一滴血
练哑铃多久(哑铃每天练30分钟多久出效果)关于健身时长的问题,我个人一般都是控制在3040分钟内(包括热身和简单的拉伸)。有些人说时间太短,三四十分钟还不够他洗个澡的时间久。还有的人年轻气盛(不气盛叫年轻人吗?),血气方刚
蛋糕的保质期是多久(生日蛋糕能存放多久)文咖啡小芝士先让大家思考个问题你觉得咖啡店卖的蛋糕保质期有几天?前阵子有消费者在上海浦东机场一家咖啡店买的蛋糕吃出了活蛆!会蠕动的那种!咱就不说这家店的品牌是Costa了。cost
全切双眼皮恢复多久(全切恢复时间多久)在双眼皮手术中,切开法是被大家公认的恢复比较慢的一种手术方式。相对于埋线和三点,切开法创伤较大,手术时间长,并且有瘢痕形成,因此消肿的时间相对较长,瘢痕也需要一段较长的时间恢复。但
打印机什么牌子好(最适合家用的打印机)在我们挑选打印机时,抛开性能参数,价格可以说是我们首先要考虑的因素。对于很多家庭用户来说不想花费过多的成本在购买打印机上,那么有没有一款打印机价格便宜且能满足家庭用户的打印需求呢?
普通百姓嫖娼怎么处罚(治安处罚)据平安北京朝阳消息,近日,朝阳公安分局接群众举报称,有人在朝阳某小区卖淫嫖娼。对此,警方依法开展调查,将卖淫违法人员陈某卉(女,29岁),嫖娼违法人员李某迪(男,39岁)查获。经审
电视机和投影仪哪个好用(目前最好的家用投影仪)那么,装修时,我们应该选电视机还是投影仪呢?下面小能手就从6个维度对比,看完不再纠结尺寸对比市面上彩电最大的尺寸大概在120英寸,想要追求家庭影院效果,那还差点意思。而且80120
怎么破解微信朋友圈半年(微信朋友圈限制怎么破解)那么接下来的这招可能会帮到你。3)内容分多次复制如果文字比较长,将大段文字分为多次复制,注意每次复制粘贴的字数不超过字数限制。保险起见,可以按照以下步骤操作第一步把大段文字复制粘贴
女装货源哪里好又便宜(女装批发网)产品是卡住新手卖家的第一关,选好了产品能助力你的店铺起步速度。而产品的品质又决定了你店铺能不能做得长久。不少想要开店的新手,都发愁去哪找到靠谱的货源。还是简单直接粗暴地开始吧。11
欧诗漫洗面奶适合年龄(50多岁用欧诗漫哪一款)说到洗面奶,其实现在外国的真的还没有国产的好用,因为洗面奶一种是皂基,就是和肥皂一样的性质的,现在用的少了。还有一种就是氨基酸的,洗的干净不油腻,温和不刺激,所以现在都是用氨基酸的
肾肿瘤切除(肾肿瘤切除后能活多久)肾肿瘤切除(肾肿瘤切除后能活多久)1岁多,体重还不到20斤的男孩,体内竟然长出了3斤多重的肿瘤。所幸经过儿童医院儿童实体肿瘤多学科诊治中心的治疗,并在肿瘤行将破裂的千钧一发之际,当
5寸照片是多少厘米(5寸照片打印机怎么选尺寸)5寸照片是多少厘米(5寸照片打印机怎么选尺寸)英寸为单位,1英寸2。54cm,通常X寸是指照片长的一边的英寸长度。有一部分朋友想了解5寸照片是多少厘米,下面是小编整理的相关资料,一
一寸照片的尺寸是多少(一寸照片的尺寸)一寸照片的尺寸是多少(一寸照片的尺寸)我们在上学还有工作的时候,经常需要填写一些资料,所以经常会需要使用到一寸照。大多数用户知道一寸照,也知道一寸照的大小。但是很多用户不清楚一寸照
1寸照片的尺寸是多少(一寸照片的尺寸)1寸照片的尺寸是多少(一寸照片的尺寸)我们在上学还有工作的时候,经常需要填写一些资料,所以经常会需要使用到一寸照。大多数用户知道一寸照,也知道一寸照的大小。但是很多用户不清楚一寸照
一寸照片尺寸(一寸照片的尺寸是多少)一寸照片尺寸(一寸照片的尺寸是多少)我们在上学还有工作的时候,经常需要填写一些资料,所以经常会需要使用到一寸照。大多数用户知道一寸照,也知道一寸照的大小。但是很多用户不清楚一寸照片
一寸照片的尺寸(一寸照片的尺寸像素)一寸照片的尺寸(一寸照片的尺寸像素)日常生活中很多场景我们都需要用到照片,比如身份证学生证准考证驾照居住证人们在去证的路上必须填写表格并张贴照片。如果照片不够怎么办?教你制作一寸二
5寸照片的尺寸(一寸照片的尺寸大小)5寸照片的尺寸(一寸照片的尺寸大小)片的尺寸是以英寸为单位,1英寸2。54cm,通常X寸是指照片长的一边的英寸长度。有一部分朋友想了解5寸照片是多少厘米,下面是小编整理的相关资料,
a4照片纸(电脑怎么打印图片到a4纸上)a4照片纸(电脑怎么打印图片到a4纸上)首先是a4纸这两张都是打印资料打出来的,纸张质量不同(一张是普通的a4,另一张略白一点的是得力牌的),不过打印出来的效果都一样。黑白打印,得
电烤箱什么牌子好(什么牌子烤箱最好)电烤箱什么牌子好(什么牌子烤箱最好)飞利浦这个品牌在市面上卖的基本打贴牌产品,打个比方就像南极人和恒源祥,人家老早就把品牌卖出去了,真正的飞利浦现在基本只做医疗器械等拳头产品,如果
烤箱什么牌子好(什么牌子烤箱最好)烤箱什么牌子好(什么牌子烤箱最好)本文为2021年家电爆款产品榜单系列文章之电烤箱篇。数据源自于京东天猫淘宝苏宁易购国美在线,2021年上半年电烤箱品类的合计销售数据。这可能是全网
喷墨打印机那个牌子好(图文店喷墨打印机哪种好)喷墨打印机那个牌子好(图文店喷墨打印机哪种好)封面图引言目前市面上的打印机种类繁多,定价也比较乱。很多消费者并不太清楚激光打印机喷墨打印机之间的区别,那么应该如何选择一台适合家用的