【iOS逆向工程】用Cycript把代码注入App
2018-09-29 本文已影响49人
GeniusWong
介绍
-
Cycript
是Objective-C++
、ES6(JavaScript)
、Java
等语法的混合物 - 可以用来探索、修改、调试正在运行的Mac\iOSAPP
- 官网:http://www.cycript.org/
- 文档:http://www.cycript.org/manual/
- 通过
Cydia
安装Cycript
,即可在iPhone上调试运行中的APP
开启和关闭
先通过Cydia来安装它
然后安装下面这个工具:(下面要用到)
安装
adv-cmds
ps 命令是process status的缩写,可以列出系统当前的进程
ps -A
// 列出所有进程
ps -A | grep 关键词
// 搜索关键词
iPhone:~ root# cycript
cy#
上面这样看到 cy#
,就说明进入cycript成功
常用命令 | 命令作用 |
---|---|
control-D |
退出cycript
|
control-C |
取消输入 |
Command-R |
清屏 |
cycript -p |
进程名称 |
iPhone:/ root# cycript -p WeChat
cy#
现在就说明已经在监听微信了
var app = UIApp.keyWindow
-
UIApp
[UIApplication sharedApplication] -
定义变量
var 变量名 = 变量值 -
ObjectiveC.classes
已加载的所有OC类 -
查看对象的所有成员变量
*对象 -
递归打印view的所有子控件(跟LLDB一样的函数)
view.recursizeDescription().toString() -
筛选出某种类型的对象
choose(UIViewController)
choose(UITableViewCelll) -
获取上弹出的控制器
UIApp.keyWindow.rootViewController.presentedViewController
用以上东西调试非常麻烦,所以这里引用一下MJ大哥的工具文件(内部有写具体用法)
https://github.com/CoderMJLee/mjcript