美文网首页ios专题iOS逆向
配置cycript环境变量及遇到的问题

配置cycript环境变量及遇到的问题

作者: 杂货铺学徒 | 来源:发表于2018-04-17 17:01 被阅读1193次

    包已经解压了,但是只能输入绝对路径或者相对路径才能执行,想要直接输入命令执行需要配置环境变量

    1. 启动终端Terminal
    2. 进入当前用户的home目录
    $ cd ~
    
    1. 创建.bash_profile(如果有该文件跳过此步骤)
    $ touch .bash_profile
    
    1. 编辑.bash_profile文件
    $ open -e .bash_profile
    或者喜欢vim的同学
    $ vim .bash_profile
    

    增加相对应的绝对路径,例如:(可能每个人电脑配置不一样)

    export cycript_src="你的cycript绝对路径"
    PATH=$PATH:$cycript_src
    
    1. 保存文件,关闭.bash_profile
    2. 更新刚配置的环境变量
    $ source .bash_profile
    
    1. 验证配置是否成功
    $ cycript
    

    8.因为是iterm2+oh my zsh组合,需要在.zshrc配置文件中导入

    $ open -e .zshrc
    或者
    $ vim .zshrc
    

    在里面加入source .bash_profile这行命令,这样每次打开就不用手动执行了

    搞定!


    执行后遇到了这个问题:

    dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
      Referenced from: /Users/devzkn/Downloads/cycript_0.9.594/Cycript.lib/cycript-apl
      Reason: image not found
    

    这个错误是因为电脑的ruby版本太高导致

    1.首先查看电脑ruby版本

    $ ruby -v
    

    我电脑上的版本是2.3

    感谢楼里的兄弟提醒,有可能你的电脑安装了rvm,用ruby -v命令查看的是指定的ruby版本,正确做法应该是cd到/System/Library/Frameworks/Ruby.framework/Versions/ 目录下查看具体版本

    具体命令:

    $ cd /System/Library/Frameworks/Ruby.framework/Versions/
    $ ls
    

    2.关闭系统的SIP

    在 OS X El Capitan 中有一个跟安全相关的模式叫 SIP(System Integrity Protection ),它禁止让软件以 root 身份来在 Mac 上运行,在升级到 OS X 10.11 中或许你就会看到部分应用程序被禁用了,这些或许是你通过终端或者第三方软件源安装。对于大多数用户来说,这种安全设置很方便,但是也有些开发者或者高级 Mac 用户不需要这样的设置。

    • 电脑重启按住command+R,进入恢复模式
    • 打开终端,输入csrutil disable,重启
    • 如果想打开SIP,重复上两步,命令改为csrutil enable

    3.直接把2.3的复制一份,改为2.0即可

    运行如下命令:

    sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/
    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
    

    注:根据每个人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运行起来。

    相关文章

      网友评论

      • 飞虎队132:按步骤操作了,最后输入cycript 报错:zsh:command not find: cycript 怎么解决
        飞虎队132:@杂货铺学徒 电脑没有连接手机的原因
        杂货铺学徒:@飞虎队132 应该是环境没有配好,看看./bash_profile里是否加入了cy环境
      • 请叫我大帅666:感谢, 安装成功!
      • 奋进的小时光_Joe:瞬间安装进度就上来了
        杂货铺学徒:@奋进的小时光 :smile:继续吧,少年!
      • PrinceMei:卧槽,终于解决了,终端查看的ruby版本2.4.1不靠谱,千万不要把2.3替换成2.4,啥也别改,直接执行下面的2行命令即可:
        sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/

        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
      • PrinceMei:难道没有人执行第二句拷贝低版本ruby2.0命令时,报错的吗?我的本机ruby版本是2.4.1,执行的命令是:
        sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/ 2.4/usr/lib/libruby. 2.4.1.dylib /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib

        请问博主这有什么问题?谢谢!
        21f9a5054d35:@杂货铺学徒 /System/Library/Frameworks/Ruby.framework/Versions  ls
        2.0 2.3 Current
        这样是当前是那个版本?
        PrinceMei:@杂货铺学徒 嗯,应该是,谢谢哈!:smile:
        杂货铺学徒:应该是你Mac上安装了rvm,一个ruby多版本管理工具,也就是你电脑上有多版本的ruby,你当前使用的是2.4.1,应该需要查看/System/Library/Frameworks/Ruby.framework/Versions/路径下的版本,谢谢提醒
      • 佚名_i:好用,可以建议读者根据实际ruby版本,将对应的`2.3`改为实际的版本号。👍
        杂货铺学徒:好的,谢谢提醒:smile:
      • 坚果:感谢解决了一大堆问题.
        杂货铺学徒:@W就是这么自信 ::smile:
      • Hanser0503:我快要成你的粉丝啦,湿兄!
        Hanser0503:@杂货铺学徒 :smile: 帮大忙了哈哈
        杂货铺学徒:@Hanser0503 我也就是把我遇到的问题整理一下,能帮到你们就好:smiley:

      本文标题:配置cycript环境变量及遇到的问题

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