美文网首页
iOS逆向-Cycript

iOS逆向-Cycript

作者: linleiqin | 来源:发表于2019-06-28 11:09 被阅读0次

    Cycript简介

    Cycript是Objective-C++、ES6(JavaScript)、Java等语法的混合物
    可以用来探索、修改、调试正在运行的Mac\iOS APP
    通过Cydia安装Cycript,即可在iPhone上调试运行中的APP

    官网: http://www.cycript.org/
    文档: http://www.cycript.org/manual/
    Tricks:http://iphonedevwiki.net/index.php/Cycript_Tricks

    Github工具

    https://github.com/CoderMJLee/mjcript
    https://github.com/Tyilo/cycript-utils
    https://github.com/limneos/weak_classdump


    辅助工具

    1、ps命令

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

    通过ps命令获取正在运行的进程ID和进程名称

    • 列出所有的进程
      ps –Aps aux
    • 搜索关键词
      ps –A | grep 关键词

    2、利用python打印字符

    cy# python
    Python 2.7.16 (default, May  8 2019, 10:58:04)
    [GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.46.4)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> unicode('中文','UTF-8')
    u'\u4e2d\u6587'
    >>> print u'\u4e2d\u6587'
    中文
    

    Cycript语法

    • 进入Cycript环境
      cycript -p 进程IDcycript -p 进程名称

    常用语法

    cy# UIApp
    
    cy# [UIApplication sharedApplication]
    
    定义变量 var 变量名 = 变量值
    cy# var shareApp = [UIApplication sharedApplication]
    
    用内存地址获取对象 #内存地址
    cy# 0x123456789
    
    查看已加载的所有OC类
    cy# ObjectiveC.classes
    
    查看对象的所有成员变量 *对象
    cy# *UIApp
    
    递归打印view的所有子控件(跟LLDB一样的函数)
    cy# view.recursiveDescription().toString()
    
    筛选出某种类型的对象
    cy# choose(UIViewController)
    cy# choose(UITableViewCell)
    

    封装Cycript脚本

    我们可以将常用的Cycript代码封装在一个.cy文件中
    exports参数名固定,用于向外提供接口

    1、新建一个myCript.cy文件,命名随意

    用编辑器比如Sublime Text进行编辑,然后保存

    (function(exports) {
        AppPath = [NSBundle mainBundle].bundlePath;
        keyWin = function() {
           return UIApp.keyWindow;
        };
    })(exports);
    
    2、将myCript.cy文件拖到iphone/Device/usr/lib/cycript9.0/,可使用iFunBox
    3、SSH连接iOS设备
    4、使用Cycript监听APP,通过@import导入mjcript
    cy# @import cycripttest
    {}
    cy# AppPath
    cy# keyWin()
    

    相关文章

      网友评论

          本文标题:iOS逆向-Cycript

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