美文网首页
iOS逆向之Cycript的使用

iOS逆向之Cycript的使用

作者: 张聪_2048 | 来源:发表于2021-03-08 19:52 被阅读0次

    一、Cycript简介

    Cycript允许开发者在iOS或Mac OS X上使用objective - c++和JavaScript语法的混合,通过具有语法高亮和tab补全功能的交互式控制台来探索和修改正在运行的应用程序。(它也可以在Android和Linux上独立运行,并提供对Java的访问,但不需要注入。) 更多官网介绍:http://www.cycript.org

    图1:Cycript简介.png

    通过Cydia安装Cycript,即可在iPhone上调试运行中的APP。同时也需要安装adv-cmds,ps命名有用到。

    图2:安装Cycript.png

    二、Cycript使用

    以在“豆瓣”app上添加一个红色view为例

    图5:添加红色视图.PNG

    1、Mac连接手机

    可参考文章:iOS逆向之SSH:Mac远程登录iPhone

    2、查看进程

    • 首先确保已在Cydia安装了adv-cmds
    • ps命令是process status的缩写,使用ps命令可以列出系统当前的进程
    • 列出所有的进程 ps –Aps aux
    • 搜索关键词 ps –A | grep 关键词ps aux | grep 关键词
    图3:查看进程.png

    其中“Frodo”是豆瓣app的进程名

    3、Cycript的开启和关闭

    • 开启:cycript -p 进程IDcycript -p 进程名称
    • 取消输入:Ctrl + C
    • 退出:Ctrl + D
    • 清屏:Command + R
    图4:Cycript的开启和关闭.png

    其中显示cy# 说明已经进入该运行的程序了

    4、常用语法

    • 获取根控制器[UIApplication sharedApplication].keyWindow.rootViewController
    • 创建view,并赋值给变量redView var redView = [[UIView alloc] init];
    • 设置redViewd的背景色为红色 #0x130c11920.backgroundColor = [UIColor redColor],其中0x130c11920 为redview的内存地址
    • 设置redViewd的frame #0x130c11920.frame = (100,100,150,200),其中0x130c11920 为redview的内存地址
    • 根控制添加红色视图,[#0x130a2cea0.view addSubview:#0x130c11920],其中0x130a2cea0是根控制器的地址
    图6:常用语法.png

    执行后的效果,如上图图5所示。

    三、Cycript文件库

    我们可以将常用的Cycript代码封装在一个.cy文件中,如封装好的mjcript.cy文件,下载地址:https://github.com/CoderMJLee/mjcript

    • 下载mjcript.cy文件,或者自己编写.cy文件
    • .cy文件存放到/usr/lib/cycript0.9目录下
    • Cycript中引用.cy文件,并使用它提供的接口
    • 引用命令@import mjcript,如获取当前控制器接口MJFrontVc()
    图7:Cycript文件库.png

    四、实战小练习

    • 进入“豆瓣”app,导入mjcript.cy文件,`@import mjcript
    • 查看当前控制器,MJFrontVc()
    • 递归打印view的层级结构,MJSubviews()
    • 通过python中,print指令,翻译UTF-8各式文本
    • 找到对应的按钮,修改其文案
    图8:实战小练习.png 图9:修改文案实例.png

    相关文章

      网友评论

          本文标题:iOS逆向之Cycript的使用

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