iOS开发

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

2019-10-25  本文已影响0人  miracle洛洛

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

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

<dict>
    <key>platform-application</key>
    <true/>
</dict>

了解到原因之后,我便使用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

以下介绍两种安装方法:

  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客户端开发

上一篇下一篇

猜你喜欢

热点阅读