逆向 - 工具篇之 Cycript 配置

前言

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,其实我也在熟悉学习中,比较不太适应,据说用好了熟练了就会很省事行云流水,暂时还没感觉到,如果实在不适应的话其实也可以用其它的文本编辑器来编辑)`

查看配置的环境变量

echo $PATH

  • 退出, 然后重新 加载 .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

连接失败

有时可能会出现这种情况,连接失败,或者端口被占用,重新修改端口连接即可。

image.png

你可能感兴趣的:(逆向 - 工具篇之 Cycript 配置)