Cycript简单介绍
Cycript是Objective-C++、ES6(JavaScript)、Java等语法的混合物,可以用来探索、修改、调试正在运行的Mac\iOS APP。
- 通过Cydia安装Cycript,即可在iPhone上调试运行中的APP
Cycript使用
- 开启
cycript
cycript -p 进程ID
cycript -p 进程名称
- 退出
Ctrl + D
- 清屏
Command + R
ps 命令
ps命令是process status的缩写,使用ps命令可以列出系统当前的进程
在越狱手机上安卓安装 adv-cmds
- 列出所有进程
ps –A
ps aux
- 搜索关键词
ps –A | grep 关键词
常用语法
UIApp
:[UIApplication sharedApplication]
定义变量名
var 变量名 = 变量值
用内存地址获取对象
#内存地址
已加载的所有OC类
ObjectiveC.classes
查看对象的所有成员变量
*对象
递归打印view的所有子控件(跟LLDB一样的函数)
view.recursiveDescription().toString()
筛选出某种类型的对象
choose(UIViewController)
choose(UITableViewCell)
封装Cycript
我们可以将常用的Cycript代码封装在一个.cy文件中
将
.cy
文件存放到/usr/lib/cycript0.9
目录下在
Cycript
中引用.cy
文件,并使用它提供的接口Cycript
库 https://github.com/CoderMJLee/mjcript里面有常使用的方法
mjcript使用介绍
mjcript
是基于Cycript
实现的一些实用函数
- 下载
mjcript
库 - 将
mjcript.cy
文件拖到/usr/lib/cycript0.9
- SSH连接iOS设备
- 使用
Cycript
监听APP,通过@import
导入mjcript
mjcript
常用命令
- 拿到显示在最前面的控制器
MJFrontVc()
- 根控制器
MJRootVc()
- app id
MJAppId
- document path
MJDocPath
- caches path
MJCachesPath
- key window
MJKeyWin()
- 更多命令参考源码