iOS11~11.1.2越狱初体验

iOS11.0 ~ 11.1.2的非完美越狱在 2017年圣诞节就可以了,现在网上也有几个越狱工具,比较有名的是 Jonathan Levin 写的LiberiOSCoolstar写的 Electra,其中 Jonathan Levin 也提供了 tvOS的越狱。

1、支持的版本

所有iOS系统版本在11.0~11.1.2之间,并且是arm64的机器,也就是说你的手机至少是 iPhone5s。

2、注意事项⚠️

  1. 备份!!!
  2. 备份!!!
  3. 备份!!!
  4. 官方渠道下载越狱APP!!!
  5. 手机重启后需要重新越狱
  6. 暂时不支持 Cydia
  7. 初次越狱后需改root用户密码(默认密码地球人都知道😜)

3、虽然都会但还是举个🌰

先关注到 LiberiOS 的,就拿它操作一下吧。

  • 下载 Cydia Impactor 工具(用来安装越狱APP用)
  • 下载官方越狱安装包LiberiOS,一定要是官方的
  1. 手机正常开机解锁,USB连接电脑,然后打开下载好的 Cydia Impactor
  2. 确定 Cydia Impactor 显示获取到了你的设备信息,将下载好的 LiberiOS 拖拽到 Cydia Impactor,或者点击 Device -> Install Package 选择下载好的 LiberiOS

    open_cydia_impactor.jpeg
  3. 点击开始
  4. 此时 Cydia Impactor要求你输入 AppleID账户和密码,如果 Apple ID开启了二次验证,需要去苹果用户中心 申请一下临时授权密码。

    generate_pass.png
  5. 账户、密码成功后要求你使用 签名账户 ,如果你用私人苹果开发者账户,选择它就好了,如果没有就只能使用自己的 Apple ID账户进行授权。

    select_team_id.jpeg
  6. 安装成功后手机上会多出来一个 LiberiOS 的APP

    install_app.jpeg
  7. 打开 LiberiOS APP, 点击最下面的彩色 Jailbreak 按钮,然后大约 30s 会看到越狱结果。

    liberiOS.PNG

4、修改 root 默认密码

越狱后第一件事情就是修改root密码,如果已经修改了root密码,就直接跳过吧。

1
2
3
4
5
Mac user# ssh root@your-device-ip
root@your-device-ip's password: alpine
iPhone root# passwd root
iPhone root# 输入新密码
iPhone root# 输入确认新密码

5、搞点事情

越狱就是为了搞点事情嘛,最想拿来开刀的当然是万人瞩目的微信了😜,被大家玩坏了的功能无非就是防止消息撤回、修改运动步数、自动抢红包等等。网上已经有很多优秀的文章和源代码了,所以就站在巨人的肩上

1、安装bfinject

因为目前的越狱还不支持Cydia,所以现在没有集中的插件管理,在网上发现了一个为此次 LiberiOSElectra 越狱版本提供的注入插件与砸壳的工具:猛戳此处,其中也内置了几个简单的动态库,具体安装过程:

  1. 下载代码到电脑,或者git clone到电脑
  2. 打开电脑的 Terminal 链接到越狱机器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    1. Mac user# ssh root@your-device-ip
    root@your-device-ip's password:
    (the default password is 'alpine')
    2. iPhone root# export PATH=$PATH:/jb/usr/bin:/jb/bin:/jb/sbin:/jb/usr/sbin:/jb/usr/local/bin:
    3. iPhone root# cd /jb
    4. iPhone root# mkdir bfinject
    5. iPhone root# cd bfinject
    6. cp /jb/usr/bin/scp /usr/bin (此命令第一次越狱之行就可以,开启scp命令)
  3. 新开一个 Terminal 输入:

    1
    Mac user# scp /path/to/bfinject.tar root@your-device-ip:/jb/bfinject
  4. 返回上一个 Terminal 输入:

    1
    6. iPhone root# tar xvf bfinject.tar

2、下载微信插件

一开始想直接使用前辈们的工作iOS 版微信小助手,结果编译好后,注入微信失败。索性就改造了一下代码,放在了我的GitHub,里面有编译好的动态库可以直接使用,如果想自己扩展内容,可以fork一份代码自己改造。

注意⚠️:本项目只是开发者研究娱乐使用,禁止非法他用。项目使用了 MonkeyDev ,详细请参考文章末尾链接

将下载或者编译好的插件拷贝到越狱机器:

1
2
3
4
Mac user# scp WeChatiOS_captain.dylib root@your-device-ip:/jb/bfinject/dylibs
root@192.168.37.192's password:
WeChatiOS_captain.dylib 100% 330KB 1.7MB/s 00:00

越狱手机打开微信,新开一个 Terminal 中输入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
iPhone root# bash bfinject -P WeChat -l dylibs/WeChatiOS_captain.dylib
[+] Electra detected.
[+] Injecting into '/var/containers/Bundle/Application/42C40B72-03F2-4A29-A811-D2AD491ABD10/WeChat.app/WeChat'
[+] Getting Team ID from target application...
[+] Thinning dylib into non-fat arm64 image
[+] Signing injectable .dylib with Team ID 88L2Q4487U and platform entitlements...
[bfinject4realz] Calling task_for_pid() for PID 3706.
[bfinject4realz] Calling thread_create() on PID 3706
[bfinject4realz] Looking for ROP gadget... found at 0x104924680
[bfinject4realz] Fake stack frame at 0x119e00000
[bfinject4realz] Calling _pthread_set_self() at 0x180d9b804...
[bfinject4realz] Returned from '_pthread_set_self'
[bfinject4realz] Calling dlopen() at 0x180b5b460...
[bfinject4realz] Returned from 'dlopen'
[bfinject4realz] Success! Library was loaded at 0x1c41cfc30
[+] So long and thanks for all the fish.

然后打开【设置】->【微信小助手】就可以邪恶的修改信息了:

wechat_assistant.PNG

6、小结

越狱有很大的风险,还需谨慎谨慎又谨慎。PS:本文章只是对此次越狱的初次体验,越狱后发挥你的想象就可以对手机为所欲为👿。

不知道是微信的安全机制还是其它原因,这个插件只要微信APP的进程被杀掉了,插件就需要重新注入,这一点有点坑了。如果有哪位大神知道劳烦告诉小弟。😳

7、参考&❤️

  1. 如何在逆向工程中 Hook 得更准 - 微信屏蔽好友&群消息实战
  2. iOS 版微信小助手
  3. iOSRE
  4. MonkeyDev