苹果为了应用安装包的安全,在打包之后,会对应用包进行一个对称加密。而在逆向中,我们需要使用未加密的安装包来进行解析,这时候就需要将应用进行砸壳。
砸壳方案有几种,但其核心原理都一样,因为iOSAPP在运行到内存中操作系统会对其进行解密,所以砸壳的时候就是把内存中的代码dump出来。
查看Mach-O是否进行加密可以用命令查看:
以微信为例:
otool - l WeChat | grey cryptid
最终看到的cryptid字段1表示了加密,0表示了解密。命令中的WeChat字段是ipa包里的二进制文件名。
1.Clutch
Clutch是由KJCracks开发的一款开源砸壳工具。工具支持iPhone、iPod Touch、iPad,该工具需要使用iOS8.0以上的越狱手机应用。
使用方法
- 先把clutch文件拷贝到越狱手机里,
scp Colutch-2.0.4 root@192.168.0.1:/usr/bin
- 查看可以砸壳的应用列表
clutch -i
- 开始砸壳,选中列表中的序号,终端砸完壳会返回砸壳后的文件路径,拷贝出来即可。
Clutch -d 2
2. dumpdecrypted
Github开源工具。 dumpdecrypted这个工具就是通过建立一个名为dumpdecrypted.dylib的动态库,插入目标应用实现脱壳。
使用方法
- 先把dumpdecrypted从github下载下来,然后make编译生成dumpdecrypted.dylib文件
- 将dylib文件拷贝到手机里
scp dumpdecrypted.dylib root@192.168.0.1:~/
- 通过DYLD_INSERT_LIBRARIES 环境变量插入动态库执行
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib xxx/WeChat
DYLD的命令,可以将动态库插入到APP的可执行文件中,后边跟上app的路径
可以通过ps -A | grep WeChat查看路径
- 最后会生成WeChat.dycrepted就是砸过壳后的mach-o文件
3. frida-ios-dump
该工具基于frida提供的强大功能通过注入js实现内存dump然后通过python自动拷贝到电脑生成ipa文件。
目前该工具是使用最多了,可以为非完美越狱下进行操作,也比较简单
在 mac安装
- 安装pip $sudo easy_install pip
-
安装frida $sudo pip install frida-tools
有可能会出现目录安装错误。目录不归当前用户所有。请检查该目录的权限和所有者.需要sudo的-H标志。将 HOME 变量设为目标用户的主目录
这时候使用另一个命令:
- $sudo-H pip install frida-tools
在手机上安装
- 在cydia里搜索frida,然后安装
使用
- 修改frida-ios-dump文件夹里的dump.py里的目标手机的账号密码。
User = 'root'
Password = 'alpine'
Host = 'localhost'
Port = 12345
- 然后直接./dymp.py 微信 就能砸壳了,最后生成IPA在你的当前文件夹里。
砸壳就先介绍到这里,有问题给我留言。