近日在越狱iPhone上通过Cydia安装了Cycript脚本语言,新手上路,通过ssh完成了一个基于SpringBoard的弹框小恶作剧,写此文予以分享。
从0到1的准备工作
iPhone越狱:推荐盘古越狱,iOS 7到9全系列可越狱,尤其是最新推出的iOS 9.2-9.33越狱工具,可在越狱和非越狱状态任意切换,极为自由灵活。
越狱iPhone安装Cydia,一般越狱工具在越狱后会自动安装该软件。
在Cydia中搜索CydiaSubstrate、Cycript、OpenSSH这3个插件安装。其中CydiaSubstrate能够保证绝大部分越狱插件安全运行,避免个别劣质插件造成系统崩溃的现象;Cycript是由Cydia之父saurik推出的一款脚本语言,等下我们用它来实现恶作剧代码注入;OpenSSH能够帮助我们在终端通过ssh连接到iPhone手机,接着便可在iPhone终端执行Cycript。
代码与其它
将电脑和iPhone手机分别联网,在iPhone的网络设置中查看该机ip地址。
打开电脑终端,通过ssh连接到iPhone中,命令是ssh root@[iphone ip address],如下所示:
localhost:~ zklgame$ ssh root@192.168.1.100
root@192.168.1.100's password:
这里需要输入的密码是OpenSSH安装后的默认密码alpine,建议在OpenSSH安装后立刻更改此默认密码,以免在今后造成安全损失。
- 现在已经进入了目标iPhone的终端,首先寻找SpringBoard所在进程,好进行Cycript注入。如下所示:
Meow:~ root# ps -e | grep SpringBoard
286 ?? 0:54.51 /System/Library/CoreServices/SpringBoard.app/SpringBoard
980 ttys000 0:00.01 grep SpringBoard
Meow:~ root# cycript -p 286
cy#
可以看到,SpringBoard所在进程的PID是286,故对此进行注入。
- 构造一个UIAlertView:
cy# alertView = [[UIAlertView alloc] initWithTitle: @"You are a pig!" message: nil delegate: nil cancelButtonTitle: @"Yes, I am." otherButtonTitles: nil]
#"<UIAlertView: 0x13a93ddf0; frame = (0 0; 0 0); layer = <CALayer: 0x13cfc81d0>>"
将手机交给别人玩耍。。。
看准时机,show alertView:
cy# [alertView show]
- 可以在别人玩你手机的时候不断变着法子来弹出不同的窗口,或者在终端看看他正在玩什么app,适当杀一杀什么的啊。。。祝你好运。。。
结语
这是一篇不怎么正经的文章,希望对你有所帮助_。