美文网首页iOS--逆向
逆向 - 工具篇之 Cycript 配置

逆向 - 工具篇之 Cycript 配置

作者: Superman168 | 来源:发表于2018-06-04 16:31 被阅读8次

    前言

    Cycript是一个集成了Objective-C、JavaScript、Java等多种语法的调试工具,可以用来调试正在运行的 APP。


    image.png

    越狱手机通过Cydia安装Cycript,可以在iPhone上调试运行中的APP,是不是很牛X ?

    官网地址:http://www.cycript.org/

    image.png

    下载SDK,还有说明文档。

    Cycript 安装

    下载SDK ,拖入opt目录下,我的是没有这个目录,新建的。(如果安装过 MonkeyDev 的话是自动生成的)

    • 配置默认的 .bash_profile
    image.png

    编辑完成,保存退出。
    (注意:路径加上 "",PATH 后多个环境变量$开头,用:隔开. 另外,Vim 命令不熟悉可以参考一下 https://www.jianshu.com/p/5f39f5fb944d,其实我也在熟悉学习中,比较不太适应,据说用好了熟练了就会很省事行云流水,暂时还没感觉到,如果实在不适应的话其实也可以用其它的文本编辑器来编辑)

    • 退出, 然后重新 加载 .bash_profile

    $ source .bash_profile

    因为之前安装好之后,把 Zsh 设置为当前用户的默认 Shell(这样新建标签的时候才会使用 Zsh):

    $ chsh -s /bin/zsh

    (注:所以现在加载的是 .zshrc-> 需要重新加载默认的 .bash_profile->source .bash_profile,但是又一个问题是:环境变量是配置在 .bash_profile 中的,下次打开ITem2 的时候需要重新加载,省事方便的办法是在 .zshrc 的末尾加上 source .bash_profile 就不用手动加载了)

    • 顺便提一下,加载脚本的几种方式:
    1. sh + 脚本名称 (sh是zsh的缩写)
    2. bash 脚本名称
    3. source 脚本名称 或者 . 脚本名称
    • 输入 $ cycript ,看是否成功。
      如果终端输出 cy# 就代表成功了,可惜我的并没有成功,报错如下:
      dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib Referenced from: /opt/cycript_0//Cycript.lib/cycript-apl Reason: image not found [1] 1897 abort cycript

    原来是 Ruby 的版本过高导致的,输入 Ruby -v 查看版本号,我的是:

    ruby -v
    ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]

    这时,我们需要给 Ruby 降版本,

    • 关闭 SIP

    System Integrity Protection: 系统完整性保护机制;苹果从 OS 10.11 开始引入了一项保护机制 System Integrity Protection,目的是帮助普通用户避免恶意 app 通过用户授权的方式获得所有系统权限。

    1. 电脑重启按住Command+R,进入恢复模式
    2. 菜单“实用工具” ==>> "终端" ==>> 输入 csrutil disable 回车
      执行成功后,返回信息如下:
      Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
    3. 这样,更改的配置保存到NVRAM中,对整台机器生效,重新启动即可

    如果想打开SIP,重复上两步,命令改为csrutil enable

    如何查看SIP系统完整性保护机制?
    命令行终端
    $ csrutil status
    System Integrity Protection status: enabled.
    $ csrutil clear / enable / disable 只能在 恢复模式下使用
    在禁用掉SIP后,查看状态信息如下
    $ csrutil status
    System Integrity Protection status: disabled.

    • 替换低版本 Ruby

      1. sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/
      2. sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.2.3.0.dylib /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
    配置成功实例.png

    终于大功告成,作为一个逆向的小菜,安装历程,颇具艰辛,着实不太容易啊!坚持不易

    注:根据每个人ruby版本不同,将上面第二条命令的/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.2.3.0.dylib中的2.3改成本机的ruby版本。
    这里不是降级ruby,只是复制一份2.0的ruby的dylib,让cycript运行起来。

    可以参考这篇文章:https://www.cnblogs.com/WinJayQ/p/8886978.html#undefined

    相关文章

      网友评论

        本文标题:逆向 - 工具篇之 Cycript 配置

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