iOS11.0~12.1.2系统砸壳探究

iOS11.0~12.1.2系统砸壳探究_第1张图片
Qinz
砸壳:顾名思义,就是对软件脱壳的逆操作。为什么要砸壳?因为我们要站在山上看风景。作为研究技术的方面来说,是为了学习某个APP的优点;而另一方面,就是破解APP正常流程,达到某种特定目的了。
1. 砸壳分静态和动态,静态是在了解应用的加密算法和逻辑后在不运行应用程序的情况下进行脱壳处理,此种方式难度极大,基本不会采用。而市面上第三方砸壳插件都是采用的动态脱壳,具体来说就是从运行在进程内存空间中的可执行程序镜像入手,来将内存中的内容进行dump出来。这种方式实现起来相对简单,且不必关心使用的是何种加密技术。
  • 1.1 为什么说不必关系的是采用了何种加密技术呢?这就要了解下iOS应用运行的原理,如下图:


    iOS11.0~12.1.2系统砸壳探究_第2张图片
    iOS运行原理
  • 1.2 如上图,在APP启动的时候操作系统会将应用进行脱壳,因为加壳的应用编译的机器码CPU是不认识的,所以在dyld加载MachO文件的时候,就可以将其从内存中脱壳出来,关于dyld加载MachO文件的分析可见这篇文章。

2.砸壳第一步,越狱手机。

注意:高系统手机越狱有风险,由于本教程导致成为白苹果本人概不负责,不建议用常用手机越狱。

  • 2.1 用Safari浏览器打开app.ignition.fun,找到Jailbreaks下的Unc0ver -new beta进行安装,启动unc0ver软件,界面如下:
    iOS11.0~12.1.2系统砸壳探究_第3张图片
    uo
  • 2.2 我这里是已经越狱,系统为12.1.2。没有越狱的这里会显示Jaikbreak,重启三次,每次重启点击Jaikbreak。此时桌面会出现Cydia,第一次打开需要VPN,否则后面就打开Cydia就会一直显示空白。最终Cydia如图:


    iOS11.0~12.1.2系统砸壳探究_第4张图片
    Cydia
  • 2.3 安装必备插件APP File Conduit (获取root权限)及APPSync Unified(免签名),这里APP File Conduit可以正常安装,APPSync Unified需要添https://cydia.angelxwind.net/源才能适配最新的12系统,安装完如下:

    iOS11.0~12.1.2系统砸壳探究_第5张图片
    插件安装

  • 2.4 安装后我们用iFunBox可以查看到root权限已经获取,如下图:
    iOS11.0~12.1.2系统砸壳探究_第6张图片
    获取root权限
3 OpenSSH连接手机
  • 3.1 通过wifi连接手机,即可以进入手机根目录,如下图:
    iOS11.0~12.1.2系统砸壳探究_第7张图片
    wifi访问手机

说明:前提是通过Cydia安装好OpenSSH插件,ssh root@手机wifi地址。

  • 3.2 通过USB连接,演示如下:
    iOS11.0~12.1.2系统砸壳探究_第8张图片
    usb连接手机

说明:这里采用了端口映射,可使用下面命令进行安装端口映射插件。然后执行iProxy 12345 22即可以将本地的12345端口号映射到USB的默认22号端口,127.0.0.1为本地默认网卡地址。

brew install libimobiledevice
4. Clutch砸壳
  • 4.1 下载Clutch发布版本,然后将Clutch包拷贝进手机/usr/bin目录下,演示如下:
    iOS11.0~12.1.2系统砸壳探究_第9张图片
    拷贝Clutch
  • 4.2 默认Clutch没有可执行权限,需要加上可执行权限
chmod +x Clutch
  • 4.3 通过Clutch -i即列出可以砸壳的应用,然后Clutch -d加上应用ID即可砸壳应用(完美越狱手机没问题)。接下来我们运行Clutch命令,演示如下:
    iOS11.0~12.1.2系统砸壳探究_第10张图片
    Clutch命令执行失败
  • 4.4 我们发现在不完美越狱的iOS12系统上,Clutch不可用了。

5 dumpdecrypted进行砸壳
  • 5.1 dumpdecrypted下载地址,下载后执行make命令生成动态库dumpdecrypted.dylib包,然后用scp拷贝进手机目录,操作和4.1步骤类似,只不过这里的路径放置不一样而已。
  • 5.2 执行"DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib可执行文件的路径",最终依然得到的是"Killed:9",我们发现在不完美越狱的iOS12系统上,dumpdecrypted也不好使了。
6 frida砸壳
  • 6.1 安装frida-tools
sudo -H pip install frida-tools
  • 6.2 Cydia添加源https://build.frida.re,安装frida如下图:
    iOS11.0~12.1.2系统砸壳探究_第11张图片
    安装frida
  • 6.2 依据frida官网步骤配置好脚本环境,然后进行砸壳,演示如下图:
    iOS11.0~12.1.2系统砸壳探究_第12张图片
    frida砸壳失败
  • 6.3 通过上图会发现不完美越狱的iOS12系统上,frida也无可奈何。
总结:以上步骤在完美越狱下均可正常砸壳,基于不完美越狱的手机,或多或少会有这样那样的问题,当然最重要的是我们要知道砸壳的原理和如何砸壳?另外要获取砸壳app也可通过第三方获取(如PP助手),当然更方便的是用完美越狱手机进行砸壳,完美砸壳请看这篇这样想怎么玩就怎么玩了。

我是Qinz,希望我的文章对你有帮助。

你可能感兴趣的:(iOS11.0~12.1.2系统砸壳探究)