Cycript
- Cycript是Objective-C++、ES6(JavaScript)、Java等語法的混合物 n 可以用來探索、修改、調(diào)試正在運行的Mac\iOS APP
- 官網(wǎng): http://www.cycript.org/
- 文檔: http://www.cycript.org/manual/
- 通過Cydia安裝Cycript,即可在iPhone上調(diào)試運行中的APP

截屏2021-03-07 下午5.27.01.png

截屏2021-03-07 下午5.27.17.png
Cycript的開啟和關(guān)閉
開啟
- cycript
- cycript -p 進(jìn)程ID
- cycript -p 進(jìn)程名稱

截屏2021-03-07 下午5.28.30.png
- 取消輸入:
Ctrl + C - 退出:
Ctrl + D - 清屏:
Command + R
ps命令
安裝adv-cmds

截屏2021-03-07 下午5.30.02.png
- ps命令是process status的縮寫,使用ps命令可以列出系統(tǒng)當(dāng)前的進(jìn)程
- 列出所有的進(jìn)程
ps –A
ps aux - 搜索關(guān)鍵詞
ps –A|grep關(guān)鍵詞
常用語法1
UIApp
[UIApplication sharedApplication]
定義變量
var 變量名 = 變量值
用內(nèi)存地址獲取對象
#內(nèi)存地址
ObjectiveC.classes
已加載的所有OC類
查看對象的所有成員變量
*對象
常用語法2
#遞歸打印view的所有子控件(跟LLDB一樣的函數(shù))
view.recursiveDescription().toString()
#篩選出某種類型的對象
choose(UIViewController)
choose(UITableViewCell)
封裝Cycript - .cy文件編寫
- 我們可以將常用的Cycript代碼封裝在一個.cy文件中
- exports參數(shù)名固定,用于向外提供接口

截屏2021-03-07 下午5.37.58.png
封裝Cycript - 存放和使用.cy文件
- 將.cy文件存放到/usr/lib/cycript0.9目錄下

截屏2021-03-07 下午5.38.41.png
-
在Cycript中引用.cy文件,并使用它提供的接口
截屏2021-03-07 下午5.39.02.png
Cycript庫
- https://github.com/CoderMJLee/mjcript
- 具體用法參考mjcript.cy文件
利用python打印字符

截屏2021-03-07 下午5.40.04.png
