简介
Cycript
是由saurik
推出的一款脚本语言,是混合了objective-c
与javascript
语法的一个工具,让开发者在命令行下和应用交互,在运行时查看和修改应用。
基本使用
安装:可以在Cydia
里搜索cycript
来下载安装,可以配合MTerminal
使用。
使用:可以通过MTerminal
,后者ssh
到iOS
中执行。
ssh到笔者的iPad:
输入
cycript
,出现 cy#
提示符,说明已经成功启动Cycript
。control+D
,来退出Cydia
.
下面以SpringBoard为例
找到SpringBoard进程
获取到进程的id是 1181 ,然后用
cycript - p
或cycript -p
命令注入这个进程想要在SpringBoard界面弹出一个提示框,用cycript的话,只要两句代码就可以了,而且是实时注入的。
cy# alertView = [[UIAlertView alloc] initWithTitle:@"test" message:@"Cyrill" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]
#"<UIAlertView: 0x156f9f0a0; frame = (0 0; 0 0); layer = <CALayer: 0x156f96fc0>>"
cy# [alertView show]
知道内存地址,获取对象,比如刚刚生成的UIAlertView对象的内存地址是 0x156f9f0a0
cy# [#0x156f9f0a0 show]
一样可以弹出提示框.
问题
笔者在使用Cycript
的过程中发现了个问题,似乎是在iOS9.3.3以后才存在。下面是问题:
从AppStore中下载的App,无法被注入,进入
cy#
,从越狱市场下载的App和系统自带的都可以被注入。
最近这个问题又不见了,原因还不清楚