美文网首页iOS开发iOS需知道
iOS11.0~12.1.2系统砸壳探究

iOS11.0~12.1.2系统砸壳探究

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


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

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

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

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


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

    插件安装
  • 2.4 安装后我们用iFunBox可以查看到root权限已经获取,如下图: 获取root权限
3 OpenSSH连接手机
  • 3.1 通过wifi连接手机,即可以进入手机根目录,如下图: wifi访问手机

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

  • 3.2 通过USB连接,演示如下: usb连接手机

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

brew install libimobiledevice
4. Clutch砸壳
  • 4.1 下载Clutch发布版本,然后将Clutch包拷贝进手机/usr/bin目录下,演示如下:
    拷贝Clutch
  • 4.2 默认Clutch没有可执行权限,需要加上可执行权限
chmod +x Clutch
  • 4.3 通过Clutch -i即列出可以砸壳的应用,然后Clutch -d加上应用ID即可砸壳应用(完美越狱手机没问题)。接下来我们运行Clutch命令,演示如下: 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如下图: 安装frida
  • 6.2 依据frida官网步骤配置好脚本环境,然后进行砸壳,演示如下图:
    frida砸壳失败
  • 6.3 通过上图会发现不完美越狱的iOS12系统上,frida也无可奈何。
总结:以上步骤在完美越狱下均可正常砸壳,基于不完美越狱的手机,或多或少会有这样那样的问题,当然最重要的是我们要知道砸壳的原理和如何砸壳?另外要获取砸壳app也可通过第三方获取(如PP助手),当然更方便的是用完美越狱手机进行砸壳,完美砸壳请看这篇这样想怎么玩就怎么玩了。

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

相关文章

  • iOS11.0~12.1.2系统砸壳探究

    砸壳:顾名思义,就是对软件脱壳的逆操作。为什么要砸壳?因为我们要站在山上看风景。作为研究技术的方面来说,是为了学习...

  • frida实现一键砸壳

    上篇分析了iOS11.0~12.1.2系统砸壳,发现在不完美越狱的手机上砸壳有诸多限制。这篇文章基于5s系统的9....

  • dumpdecrypted 砸壳

    本次砸壳的系统依然是iOS10.3.x, 工具使用dumpdecrypted, 砸壳的对象是 WeChat 这个A...

  • 越狱调试

    从内存中dump出IPA包砸壳工具:Clutch砸壳工具:dumpdecrypted砸壳工具:frida-iOS-...

  • 砸壳简介

    为何砸壳 appstore 给应用加密了 砸壳:不知道解密的确切方法,调用苹果的解密程序 砸壳的方式 两种砸壳方式...

  • 应用砸壳

    砸壳 软件脱壳,顾明思义,就是对软件加壳的逆操作,把软件上存在的壳去掉(解密) 砸壳原理 应用加壳(加密) 应用砸...

  • iOS12+砸壳(脱壳)

    iOS12+最佳的砸壳插件 推荐使用 静态砸壳工具4 最方便 1. 静态砸壳工具flexdecrypt[https...

  • 砸壳

    前言 其中用到的砸壳工具就是dumpdecrypted,其原理是让app预先加载一个解密的dumpdecrypte...

  • 砸壳

    【找到Bundle路径】 1.终端执行 ssh root@192.168.xxx.xxx 2.输入ssh密码 默认...

  • 砸壳

    0. 扫盲 0.1 加壳 利用特殊的算法,对可执行文件的编码进行改变(比如压缩、加密),以达到保护程序代码的目的。...

网友评论

    本文标题:iOS11.0~12.1.2系统砸壳探究

    本文链接:https://www.haomeiwen.com/subject/blrrpqtx.html