这段时间工作中由于需要测试竞品,因此使用到了砸壳方法,在此给大家分享一下,首先,需要给大家解释一下什么是“壳”,这里说到的“壳”并不是动物身上的那层硬甲,而是AppleStore上下载安装的App都默认被苹果加了一层“壳”,有了这层保护的存在,我们就无法使用dump导出头文件对其进行深入的研究。因此我们就需要借助大神们给我们提供的某些工具进行砸壳处理。
目前比较常见的工具有dumpdecrypted,clutch
在这里我们主要介绍clutch(dumpdecrypted这个工具的使用方法大家可以自行查找)
工具:
1. clutch
2.class-dump
3. 最必要的:一台越狱手机
步骤:
1. 首先我们先要下载clutch(https://github.com/KJCracks/Clutch/releases)
2. 将下载到的可执行文件通过pp助手等工具导入手机中(/usr/bin)
3. 通过ssh进入手机的命令行模式
4. 调用clutch命令
(这里如果发现刚刚导入的文件并不是可执行文件时,可以使用chomd a+x Clutch将其变为可执行文件,之后再调用即可)
砸壳时使用的参数不同,得到的结果也不同:
-i 表示需要查看应用数量
-b 表示只输出二进制文件
-d 表示输出整个ipa包
(其它就不进行详细介绍)
在上面我们选择好需要砸壳的应用就可以砸壳了
Clutch-2.0.4 –b 序号
我这里选择的是对QQ进行砸壳
上图中标红的部分即为输出的二进制文件目录,我们只需要将其从手机中取出即可(使用pp助手)。
我们将com.tencent.mqq中的二进制文件导出,此时使用class-dump进行分析即可导出头文件。(class-dump可以直接下载即可)
class-dump -H ~/Desktop/QQ -o QQ.h
此时已经达到我们的需求,我们按照自己的需求去相应的头文件中查找想要的方法,接下来我们就需要使用IDAQ工具去分析二进制文件中相应的方法,具体可以参考《iOS应用逆向工程》。