解决cycript /usr/bin/cynject: No such file or directory

cycript安装

Cycript是由saurik推出的一款脚本语言,是混合了objective-c与javascript语法的一个工具,让开发者在命令行下和应用交互,在运行时查看和修改应用。

可以在Cydia里搜索cycript来下载安装

出现问题:/usr/bin/cynject: No such file or directory

TiPhone6p:~ root# ps -A|grep  SpringBoard
 4898 ??         0:09.50 /System/Library/CoreServices/SpringBoard.app/SpringBoard
 4915 ttys000    0:00.00 grep SpringBoard
TiPhone6p:~ root# cycript -p 4898
sh: /usr/bin/cynject: No such file or directory
*** _assert(status == 0):../Inject.cpp(143):InjectLibrary

官网下载sdk:http://www.cycript.org/

在这里插入图片描述
从里面拷贝cynject到/usr/bin/cynject目录:

 scp -P 2222 -r ~/Desktop/git/unicorn/bindings/python/cycript_0.9.594/Cycript.lib/cynject   root@localhost:/usr/bin/cynject

再次运行就不会失败了

TiPhone6p:~ root# cycript -p 4898
cy# alertView2 = [[UIAlertView alloc] initWithTitle: @"You are handsome!" message: nildelegate: nil cancelButtonTitle: @"Yes, I am." otherButtonTitles: nil]
#"<UIAlertView: 0x11f13f230; frame = (0 0; 0 0); layer = <CALayer: 0x17063e1c0>>"
cy# [alertView2 show]
cy#

会出现弹窗

exit(0) 退出 SpringBoard重启了

cy# exit(0)
MS:Error: _krncall(mach_vm_read_overwrite(task, data, sizeof(*baton), reinterpret_cast<mach_vm_address_t>(baton), &error)) =4
*** _assert(status == 0):../Inject.cpp(143):InjectLibrary

正确退出:control+D,来退出cycript.

注入和hook的原理

按步骤拆分一下。我们所谓的hook其实可以拆分成两个步骤。代码注入和实际的Hook(内联汇编hook,利用ObjC API Hook等等)

代码注入
这部分是上面说的cynject/MSHookProcess素质两连来完成libcycript代码的注入
然后libcycript的初始化代码负责上面说的初始化解释器等等

实际的Hook
这部分无论cy还是tweak实质用的都是MS,不过cycript加了一套转义层来实现上面说的native代码和解释代码的桥接而已

http://drops.xmd5.com/static/drops/mobile-15794.html

源码https://git.saurik.com/cycript.git

进阶:修改微信钱包的数量

https://www.jianshu.com/p/4271bba925fb

参考:
https://www.jianshu.com/p/b6b28bd07e6e

http://drops.xmd5.com/static/drops/mobile-15794.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值