iOS11之后无法使用Cycript的解决办法

我使用的设备:iPhone6s,系统iOS11.1.2,越狱工具electra

问题:iOS11之后使用cycript会报killed 9 , 原因是iOS11之后,需要加上以下权限


    platform-application
    

了解到原因之后,我便使用ldid给cycript重新签名 , 又报以下错误:

dyld: Library not loaded: /usr/lib/libcycript.dylib
Referenced from: /usr/bin/cycript
Reason: no suitable image found. Did find:
/usr/lib/libcycript.dylib: code signing blocked mmap() of ‘/usr/lib/libcycript.dylib’
/usr/lib/libcycript.dylib: code signing blocked mmap() of ‘/usr/lib/libcycript.dylib’
Abort trap: 6

注:使用ldid时如果无权限修改系统文件,查看是否开启了SIP

  1. 查看SIP状态:
    终端输入:csrutil status ,查看是enabled还是disabled。
  2. 开启SIP:
    重启MAC, 按住cmd+R 进入Recovery模式,找到工具栏中的实用工具,打开终端,输入 csrutil enable 。
  3. 关闭SIP
    与开启方法一样,终端输入csrutil disable。

又用codesign重签了一次也依然报这个错。网上看到有人说给libcycript.dylib重签了下,也会报其他错误。

于是考虑动态注入cycript来使用,但是bfinject需要关闭tweaks,怕麻烦,便使用cyrun代替了
步骤如下:

  1. 依次安装下面三个deb , 可以使用dpkg安装,无法使用dpkg安装的话,可以借助iFunBox与Filza安装
    http://apt.saurik.com/debs/cycript_0.9.594_iphoneos-arm.deb
    http://www.tateu.net/repo/files/net.tateu.cycriptlistenertweak_1.0.0_iphoneos-arm.deb
    http://www.tateu.net/repo/files/net.tateu.cyrun_1.0.5_iphoneos-arm.deb

以下介绍两种安装方法:

  • 使用dpkg安装:
    通过cydia安装“New Curses”,“readline” , “adv-cmds”
    通过SSH登录:
    wget http://apt.saurik.com/debs/cycript_0.9.594_iphoneos-arm.deb
    wget http://www.tateu.net/repo/files/net.tateu.cycriptlistenertweak_1.0.0_iphoneos-arm.deb
    wget http://www.tateu.net/repo/files/net.tateu.cyrun_1.0.5_iphoneos-arm.deb
    dpkg -i cycript_0.9.594_iphoneos-arm.deb
    dpkg -i net.tateu.cycriptlistenertweak_1.0.0_iphoneos-arm.deb net.tateu.cyrun_1.0.5_iphoneos-arm.deb

  • 使用iFunBox和Filza安装
    通过上面三个链接下载deb安装包,打开iFunBox放到你能找到的目录下。
    打开Filza,找到你放入的deb安装包,点击安装,安装完重启springBoard。
    iOS11上没有AutoInstall文件夹,使用这种方法其实更为简单方便

  1. 运行命令,以neteasemusic为例:
    cyrun -n SpringBoard -e

重启SpringBoard

cyrun -s

执行重签名命令

cyrun -n neteasemusic -e

注入进程

  • 如果报以下错误的话
Cycript is active: com.apple.springboard

先杀死之前的进程,再重新注入,以neteasemusic为例

cyrun -n SpringBoard -d
cyrun -n neteasemusic -e

以下为成功显示:

miraclede:~ root# cyrun -n neteasemusic -e 
applicationName: neteasemusic is running (4014)
    executableName: neteasemusic
    bundleIdentifier: com.netease.cloudmusic
    Cycript is active: com.netease.cloudmusic
    Device is not passcode locked
    Tweak Mode
Success, Cycript was already active for the Process. You may now run
    cycript -r 127.0.0.1:8556
cy# 

作者简介

就职于甜橙金融 ( 翼支付 ) 信息技术部,负责iOS客户端开发

你可能感兴趣的:(iOS11之后无法使用Cycript的解决办法)