Cycript
越狱环境启动cy
-
解决无法输入中文问题
scp -P 12345 .inputrc root@localhost:~/
-
在手机上使用Vim指令,需安装Vi IMproved
-
在手机上敲终端指令adv-cmds
-
调起所有进程Cycript,iOS11不可用! iOS11上用它bfinject-master
/列出所有进程 $ ps -A //关键字搜索 $ ps -A | grep WeChat //cy连接 $ cycript -p WeChat $ cycript -p 进程名称/进程id //断开 control + d
-
cy内置语法
//遍历出整个app里面所有用到的类 $ ObjectiveC.classes //循环遍历子控件 $ UIApp.keyWindow.recursiveDescription().toString() //LLDB打印 $ [self.view.keyWindow recursiveDescrip]
//定义变量 $ var keyWindow = UIApp.keyWindow #"<iConsoleWindow: 0x1355ea840; baseClass = UIWindow; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x13570b970>; layer = <UIWindowLayer: 0x1355ea7e0>>" //定义方法 $ keyWindow #"<iConsoleWindow: 0x1355ea840; baseClass = UIWindow; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x13570b970>; layer = <UIWindowLayer: 0x1355ea7e0>>" $ function sum(a,b) {return a+b;} $ sum(1,2) 3
- 定义的方法和变量在进程内存中,退出后都不存在。把常用方法和常用变量封装到一个文件,import就可以
-
创建.cy文件,下载qlcript
-
拷贝到工具库下
$ scp -P 12345 qlcript.cy root@localhost:/usr/lib/cycript0.9 //使用 $ @import qlcript $ QLAppId @"com.tencent.xin"
-
-
直接附加。无需@import
$ cycript -p WeChat /usr/lib/cycript0.9/qlcript.cy //连接 $ cycript -p WeChat //直接敲 $ QLAppId //美滋滋~ //简洁版 $ cycript -p WeChat /usr/lib/cycript0.9/qlcript.cy ; cycript -p WeChat //IIFE 匿名函数自执行表达式 (function(exports){ function.... })(exports); //此时在执行直接附加指令,报错throw new ReferenceError("Can't find variable: exports")
非越狱环境载入cy文件
- MonkeyDev
- 项目下的TARGETS/Build Phasses/Copy Files/add你的cy文件
- 其他操作照旧。(@import….)