一、Cycript
Cycript是Objective-C++、ES6(JavaScript)、Java等语法的混合物
可以用来探索、修改、调试正在运行的Mac、iOS App。
其中文档可参考如下:
文档: http://www.cycript.org/manual/
二、软件
2.1 ps命令
ps命令是process status的缩写,使用ps命令可以列出系统当前的进程
1 | //列出所有的进程 |
2.2 Cycript
通过Cydia安装Cycript,即可在iPhone上调试运行中的APP
调试命令,通过上面ps命令,可以获取进程ID:
1 | $ cycript |
其他控制命令:
取消输入:Ctrl + C
退出:Ctrl + D
清屏:Command + R
三、调试
进入iPhone命令行,在手机上打开微信,输入
1 | $ ps -A | grep wechat |
3.1 常用语法
UIApp
[UIApplication sharedApplication]
定义变量
var 变量名 = 变量值
用内存地址获取对象
#内存地址
已加载的所有OC类
ObjectiveC.classes
查看对象的所有成员变量
*对象
递归打印view的所有子控件(跟LLDB一样的函数)
view.recursiveDescription().toString()
筛选出某种类型的对象
choose(UIViewController)
pchoose(UITableViewCell)
3.2 mjcript
cycript 脚本,李明杰老师之作:https://github.com/CoderMJLee/mjcript
下载后,导入/usr/lib/cycript0.9
1 | 5s:~ root# cycript -p 1916 |
3.3 其他指令
- 导入
1 | cy# @import mjcript |
- 常用属性
1 | // appid |
- 加载动态库
1 | cy# MJLoadFramework("UIKit") |
3.4 python 打印字符
1 | $ python |