Cycript

作者: comsubin | 来源:发表于2019-08-09 17:11 被阅读0次

    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
    #"<UIApplication: 0x126fc21e0>"
    cy# UIApp.keyWindow
    #"<WBAppWindow: 0x126fc7080; baseClass = UIWindow; frame = (0 0; 320 568); gestureRecognizers = <NSArray: 0x17444cc30>; layer = <UIWindowLayer: 0x174825100>>"
    cy# #0x126fc7080
    #"<WBAppWindow: 0x126fc7080; baseClass = UIWindow; frame = (0 0; 320 568); gestureRecognizers = <NSArray: 0x17444cc30>; layer = <UIWindowLayer: 0x174825100>>"
    cy# UIApp.keyWindow.rootViewController
    #"<TabBarRotateController: 0x126fc7850>"
    cy# var root = UIApp.keyWindow.rootViewController
    #"<TabBarRotateController: 0x126fc7850>"
    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 root@192.168.50.222:/usr/lib/cycript0.9/MJTool.cy
    复制到手机路径下面.

    @import MJTool 导入

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

    相关文章

      网友评论

        本文标题:Cycript

        本文链接:https://www.haomeiwen.com/subject/uvbvtctx.html