Cycript(无需越狱)的集成与踩坑

什么是Cycript

Cycript允许开发人员通过交互式控制台,使用Objective-C ++和JavaScript语法的混合,在iOS或Mac OS X上检测和修改正在运行的应用程序。

Cycript 目前的主要用途是在 iOS 上进行逆向工作,使用 Cydia Substrate 可以注入正在运行的进程(类似于调试器),这使它成为“探险”的理想工具。

Cycript还通过静态库的方式集成到自己的应用,这样做不要求越狱,当然也仅仅能在自己的应用内使用了。

安装Cycript

  • 通过官网:www.cycript.org/ 下载SDK,将SDK解压到本地,并通过在.bash_profile 文件中配置环境变量,让cycript脚本在任意目录中执行。
  • 打开终端执行ycript,出现如下错误
dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
  Referenced from: /Users/hejunbin/software/cycript_0.9.594/Cycript.lib/cycript-apl
  Reason: image not found
[1]    41778 abort      cycript
复制代码

解决方式一:

brew install [email protected]
把/usr/local/Cellar/[email protected]/2.0.0-p648_2/lib/libruby.2.0.0.dylib拷贝到Cycript.lib目录下
复制代码

解决方式二:

关闭SIP
当你在系统文件、文件夹下,创建新的文件添加新的文件夹时,有的时候会提示安全原因无法修改系统文件SO

电脑重启按住command+R,进入恢复模式
打开终端,输入csrutil disable,重启
想再次打开csrutil enable
微软不高兴了就打着安全的晃子搞了个SB,苹果不高兴了就打着安全的晃子搞了这个SIP,真会玩。

执行如下命令:
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

复制代码
  • 再次输入cycript,出现如下信息,表示成功
cy#
复制代码

在项目中集成Cycript

因为Cycript需要用到libstdc++.6.0.9.tbd,所以最好Xcode使用10以前的版本,iOS系统使用12以前的版本。

  • 将Cycript下Cycript.ios中的Cycript.framework添加到项目中,饭后再添加:JavaScriptCore.framework、libstdc++.6.0.9.tbd和libsqlite3.0.tbd。
  • 导入头文件<Cycript/Cycript.h>,在- (BOOL)application: didFinishLaunchingWithOptions:中加入监听:CYListenServer(8888);
#import <Cycript/Cycript.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    CYListenServer(8888);
    
    return YES;
}
复制代码
  • 在iOS 11.4模拟器下运行,报如下错误:
libc++abi.dylib: terminating with uncaught exception of type CYPoolError
复制代码

解决方式,使用老版本的Cycript.framework代替。

笔者使用 github.com/Naituw/IPAP… 中的Cycript.framework代替运行成功。

连接

cycript -r 127.0.0.1:8888
复制代码

转载于:https://juejin.im/post/5cf4cfb86fb9a07ec56e62ef

猜你喜欢

转载自blog.csdn.net/weixin_33953384/article/details/91429368