Cycript

Cycript

  • oc++,js,java的混合物.
  • 可以用来探索mac/ios app.

官网地址
文档地址

iPhone上先安装
adv-cmds
常用命令:
ps命令是process status的缩写,使用ps命令可以列出系统当前的进程

ps -A 
过滤
>ps -A | grep xx

Cycript 命令:
进入到该进程下:
cycript -p 进程ID/名称
退出环境:
ctrl+d

如进入wbApp的环境下,可以获取一些变量来进行操作
cy# UIApp
#""
cy# UIApp.keyWindow
#"; layer = >"
cy# #0x126fc7080
#"; layer = >"
cy# UIApp.keyWindow.rootViewController
#""
cy# var root = UIApp.keyWindow.rootViewController
#""
cy# root.view = nil

上面命令执行完后 wbapp就直接黑屏了.

变量定义:
var 变量名 = 变量值

ObjectiveC.classes
获取某个App用到的所有类

*对象 eg: *UIApp
查看对象所有成员变量

查看某个view所有子view
xcode LLDB做法
po [self.view.window recursiveDescription];
cycript
[UIApp.KeyWindow recursiveDescription]

加上toString排版一下
[UIApp.KeyWindow recursiveDescription].toString()

筛选对象
choose(UIViewController)

工具
https://github.com/CoderMJLee/mjcript
~ scp ~/Desktop/mjcript.cy [email protected]:/usr/lib/cycript0.9/MJTool.cy
复制到手机路径下面.

@import MJTool 导入

cy# MJFrontVc() //获取最前面的VC
#""
cy# MJInstanceMethodNames (#0x137976c00) ////获取某个对象的所有实例方法
cy# [#0x137976c00 onSignInClick:nil]

你可能感兴趣的:(Cycript)