Cycript简介
Cycript是Objective-C++、ES6(JavaScript)、Java等语法的混合物。
可以用来探索、修改、调试正在运行的Mac\iOS APP。
官网: http://www.cycript.org/
文档: http://www.cycript.org/manual/
Cycript的开启和关闭
- 开启:
cycript
cycript -p 进程ID
cycript -p 进程名称
- 退出:
Ctrl + D
- 取消输入:
Ctrl + C
- 清屏:
Command + R
查看系统当前的进程
在cydia里安装adv-cmds
使用ps命令,ps命令是process status的缩写
- 列出所有的进程
ps –A
ps aux
- 搜索关键词、过滤
ps –A | grep 关键词
Cycript常用语法
- [UIApplication sharedApplication],简写UIApp
获取keyWindow的对象
cy# UIApp.keyWindow
#"<iConsoleWindow: 0x10756dbf0; baseClass = UIWindow; frame = (0 0; 320 568); gestureRecognizers = <NSArray: 0x17444d200>; layer = <UIWindowLayer: 0x170436480>>"
//获取APP所有的类
cy# ObjectiveC.classes
//获取对象的所有成员变量: *对象
//比如查看UIApp
cy# *UIApp
- 递归==打印==view的所有子控件。
//比如打印keyWindon 的所有子控件
UIApp.keyWindow.recursiveDescription()
//增加排版
UIApp.keyWindow.recursiveDescription().toString()
- ==筛选==当前界面的对象
//比如筛选出UIViewController
choose(UIViewController)
//比如筛选出UIView
choose(UIView)
Cycript的封装、存放、使用
可以将常用的Cycript代码封装在一个.cy文件中
存放
将.cy文件存放到手机的 /usr/lib/cycript0.9目录下
使用
在Cycript中引用.cy文件,并使用它提供的接口
内容有点少,需要在深度挖掘。