iOS 逆向: 砸壳
最近在看人工智能相关的知识,无意中发现了一个巨牛的 人工智能教程,分享一下给大家。
教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点 这里 可以直接看教程。
简介
所谓的砸壳, 指的是将从 App Store 上面下载的 App 进行破解的过程. 从 App Store 上下载的 ipa 中的二进制文件是经过加密(加壳)的,需要通过破解才能让我们对其 为所欲为
, 这里的破解就是通常所说的砸壳.
类似的, Android 应用(apk 文件)也有加壳操作, 如果想破解别人的 apk, 首先要进行砸壳操作.
准备工具
[1]. Clutch
[2]. iFunBox 或者 pp 助手
[3]. 越狱手机一台(本人iPhone6sPlus iOS10.3.x 系统).
[4]. 可以正常使用 SSH 功能.
如果你还没有安装上面提到的除 Clutch
之外的工具, 请先阅读 iOS 逆向: 查看系统文件目录和结构 这篇文章, 并安装对应的工具.
安装 Clutch
可以在 Github 获取 Clutch 源码, 然后自己在 MacOS 上面编译得到二进制文件.
也可以去直接下载已经编译好的 二进制包, 直接使用, 我是直接下载了已经编译好的二进制包的, 截止到写这篇文章为止, Clutch
版本为 2.0.4
.
下载完成后, 我将其放到 ~/Downloads
目录下面了.
准备好越狱设备, 保证可以正常连接 wifi, 使用 scp 命令将 Clutch
二进制文件复制到设备的系统目录中, 命令如下:
1 | scp ~/Downloads/Clutch root@192.168.91.126:/usr/bin |
其中, 192.168.91.126
是我设备连接 wifi 后的 IP 地址.
复制成功后, 使用 iFunBox 可以看到 Clutch
静静地躺在那里.
你可以使用 iFunBox 或者 pp 助手
, 直接将 ~/Downloads/Clutch
拖拽到 /usr/bin
目录.
Clutch 的基本使用
SSH 连接越狱设备, 开始使用 Clutch
. 关于使用 SSH, 可以阅读一下 iOS 逆向: 越狱使用 SSH 这篇文章.
如果你发现直接执行 Clutch
说没有权限之类的提示, 可以先将其授予可执行的权限.
1 | chmod +x /usr/bin/Clutch |
Clutch 命令选项如下:
1 | -b --binary-dump Only dump binary files from specified bundleID |
-b
选项表示产出一个二进制文件, -d
选项表示产出一个 ipa 文件, -i
表示列出手机上面已经安装的 APP.
我们先看一下手机上已经安装的 App, 命令如下:
1 | Clutch -i |
这些 APP 前面的数字表示指定的 id. -d
和 -b
选项都需要指定这些 id.
砸吧, 骚年
我们现在开始使用 Clutch
来对 APP 进行砸壳操作, 这里以已经安装的 App 序号为 8 的为例子.
使用下面的命令开始砸壳:
1 | Clutch -d 8 |
效果如下图所示:
砸壳成功后会在 /private/var/mobile/Documents/Dumped
这个目录生成对应的 *.ipa
文件.
砸壳后的 ipa 文件, 可以从 iFunBox 中复制到 MacOS 的目录中, 然后你就可以对该 ipa 进行下一步操作了, 比如获取图片/音频/视频等资源和对应的头文件. 关于这些后续的越狱工作, 我会在下几篇博客中分享给大家.
也许有人会说了, 我自己从 pp 助手
中备份指定的 App 就可以获取资源了, 不需要使用 Clutch
这么麻烦了. 高系统版本, pp 助手
是无法直接获取 ipa 文件的, 况且我们也不仅仅是想获取别人 APP 的资源文件.
当然了, 你可以从越狱 APP 市场直接下载已经被砸壳的 App 进行玩耍, 不需要自己千辛万苦的去砸壳了.
Clutch 并不是万能的
上面大家可以看出, Clutch
是可以进行砸壳的并且也挺方便, 但 Clutch
并不是万能的, 也就是说, Clutch
不能将任意一个 App Store 下载 APP 进行砸壳.
拿上面序号为4 的微信来说, 执行下面命令报错:
1 | Clutch -d 4 |
砸壳执行过程如下:
1 | Writing new checksum |
还有一些 APP, 再被砸壳的时候会报如下的错误:
1 | could not obtain mach port either the process is dead |
虽然最新版本(2.0.4)说解决了该问题, 但是实际操作过程中, 还是会出现这个问题, 无法进行砸壳.
越狱系列文章
基于 iOS10.3.1 进行的实践。
特别喜欢上善如水这句话,你呢?