![](https://img.haomeiwen.com/i15969423/4c7de4561efc30fd.png)
目录
一,基本知识
二,常用语法
三,mjcript
四,实战练习
五,Reveal
一,基本知识
1,概念
-
它是
Objective-C
、C++
、JavaScript
、Java
等语言的混合物 -
它可以用来调试、修改
Mac
或iPhone
上正在运行的APP -
需要通过
Cydia
安装Cycript
工具,才能调试iPhone上的APP(软件源:http://apt.saurik.com)
![](https://img.haomeiwen.com/i15969423/6be0ed32c96823d0.png)
2,ps命令
-
process status
(进程状态)的缩写,可以列举出系统所有正在运行的进程 -
iPhone上需要通过
Cydia
安装adv-cmds
工具(软件源:http://apt.saurik.com)
![](https://img.haomeiwen.com/i15969423/53fadcc590651095.png)
- 所有进程:
ps –A
(打开喜马拉雅APP)
![](https://img.haomeiwen.com/i15969423/b805da0ee070f6ca.png)
![](https://img.haomeiwen.com/i15969423/674c399c637e36e5.png)
- 搜索进程:
ps –A | grep 关键词
![](https://img.haomeiwen.com/i15969423/9d8be9f98d4b0248.png)
3,启动和退出
- 启动:
cycript -p 进程名称
- 退出:
control + d
- 清屏:
command + r
![](https://img.haomeiwen.com/i15969423/d5851ab93ed67ee3.png)
二,常用语法
1,UIApp
= UIApplication.sharedApplication()
![](https://img.haomeiwen.com/i15969423/44703cfe29b1c5a4.png)
2,定义变量:var 变量名 = 变量值
![](https://img.haomeiwen.com/i15969423/e7b47a828fbf5ad9.png)
3,定义函数:function 函数名(...) { ... }
![](https://img.haomeiwen.com/i15969423/45bc02ac872b9582.png)
4,用内存地址获取对象:#内存地址
![](https://img.haomeiwen.com/i15969423/e5492dbd2da82314.png)
5,查看对象的所有成员变量:*对象
![](https://img.haomeiwen.com/i15969423/8a0b9504228fd9d4.png)
6,递归打印view的所有子控件:view.recursiveDescription().toString()
![](https://img.haomeiwen.com/i15969423/07988a27f3ca0c34.png)
7,筛选出某种类型的对象:choose(类型)
![](https://img.haomeiwen.com/i15969423/31a9537c8d3839ff.png)
三,mjcript
1,介绍
-
它是对
Cycript
的封装,提供了一些比较常用的函数
2,导入
- 将
mjcript.cy
文件拷贝到iPhone的/usr/lib/cycript0.9
目录下
![](https://img.haomeiwen.com/i15969423/35401e85204b6612.png)
![](https://img.haomeiwen.com/i15969423/99e9ec8ee4f18dcd.png)
- 进入
Cycript
环境,然后import
一下即可使用
![](https://img.haomeiwen.com/i15969423/78ffac602e1b4d08.png)
3,常用函数
- 获取bundleId:
MJAppId
![](https://img.haomeiwen.com/i15969423/ce66bfb81dfa139f.png)
- 获取documents路径:
MJDocPath
![](https://img.haomeiwen.com/i15969423/8e9eb4b4d0ffa7eb.png)
- 获取根控制器:
MJRootVc()
![](https://img.haomeiwen.com/i15969423/6a03aaf4221f8086.png)
- 获取当前显示的控制器:
MJFrontVc()
![](https://img.haomeiwen.com/i15969423/ea05a8bf190cbd15.png)
- 获取所有成员变量的名称:
MJIvarNames(...)
![](https://img.haomeiwen.com/i15969423/bc38b29bd4ac4c06.png)
- 获取所有实例方法的名称:
MJInstanceMethodNames(...)
![](https://img.haomeiwen.com/i15969423/c598d2f5d3abe450.png)
- 获取controller的层级结构:
MJChildVcs(...)
![](https://img.haomeiwen.com/i15969423/b938e08d6e984c77.png)
- 获取view的层级结构:
MJSubviews(...)
![](https://img.haomeiwen.com/i15969423/480a55ca3feb124e.png)
- 根据关键词进行筛选
![](https://img.haomeiwen.com/i15969423/a913f76155be940c.png)
- 添加动态库:
MJLoadFramework(...)
![](https://img.haomeiwen.com/i15969423/0d10908fee3aef15.png)
四,实战练习
1,利用python
打印字符
![](https://img.haomeiwen.com/i15969423/77f0fa05535e92f8.png)
2,修改“立即登录”
- 查找
![](https://img.haomeiwen.com/i15969423/1ba93baa536abf37.png)
![](https://img.haomeiwen.com/i15969423/ef5722c99d67a39c.png)
![](https://img.haomeiwen.com/i15969423/1c2c93c5e158edf3.png)
- 修改
![](https://img.haomeiwen.com/i15969423/ff5f1090c1edc33b.png)
- 效果
![](https://img.haomeiwen.com/i15969423/939ef89cd1d1d02a.png)
3,移除“VIP会员”
- 查找
![](https://img.haomeiwen.com/i15969423/9234dab5cd6fd21e.png)
- 移除
![](https://img.haomeiwen.com/i15969423/be3b9b85c1ed2c7d.png)
- 效果
![](https://img.haomeiwen.com/i15969423/f6dd94f99bdaf4ad.png)
4,添加“view”
- 添加
![](https://img.haomeiwen.com/i15969423/f2b93208eca27ba7.png)
- 效果
![](https://img.haomeiwen.com/i15969423/bed0c62f005c4067.png)
5,调用“设置按钮点击方法”
- 查找
![](https://img.haomeiwen.com/i15969423/6671e09d0f3c9694.png)
- 调用
![](https://img.haomeiwen.com/i15969423/2df7e9261aed6f70.png)
- 效果
![](https://img.haomeiwen.com/i15969423/fa0a2d57af9bdc31.png)
五,Reveal
1,介绍
-
它是一款调试UI界面的神器
2,配置
- 在iPhone上通过
Cydia
安装Reveal Loader
工具(软件源:http://apt.thebigboss.org)
![](https://img.haomeiwen.com/i15969423/4663491f6544ebc0.png)
- 在设置中打开需要调试的APP
![](https://img.haomeiwen.com/i15969423/df6b480e3f3c43e4.png)
- 将iPhone上的
/Library/MobileSubstrate/DynamicLibraries/RHRevealLoader.dylib
替换为Mac上的~/RevealServer.framework/RevealServer
![](https://img.haomeiwen.com/i15969423/aa8fbba7e9196792.png)
- 重启iPhone(命令:
reboot
)和Reveal
![](https://img.haomeiwen.com/i15969423/50456a156f2d0b5b.png)
![](https://img.haomeiwen.com/i15969423/1044ebe9d6f21195.png)
网友评论