【iOS逆向工程】用Cycript把代码注入App

介绍

  • CycriptObjective-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

你可能感兴趣的:(【iOS逆向工程】用Cycript把代码注入App)