一、砸壳概述及其原理
APP上架会经历 APP->AppStore->源码
加密过程。
应用加密:开发者向AppStore
提交应用,都将由苹果官方进行加密处理,以确保用户使用的APP都是经过审核过的,加密后的APP
,开发人员无法通过Hopper
等反编译应用,也无法使用class-dump
。
iOS
应用运行原理:应用在磁盘中是加密状态,由于CPU
运行不会识别加密文件,因此在启动应用前需要在内核中对加密应用文件进行解密,提取可执行文件才可放入内存中运行。示意图如下:
逆向需要对加密的二进制文件进行解密才可以做静态分析,解密过程即为砸壳。砸壳有两种:
1、静态砸壳
在已经掌握和了解加密应用的加密算法和逻辑后在不运行加密应用程序的前提下将壳应用程序进行解密处理,静态砸壳方法难度大,并且加密方发现应用被破解后就可能会改用更高级的复杂加密算法。
2、动态砸壳
在运行进程内存中的可执行程序映像入手,将内存中的内容进行转储处理来实现砸壳。该方法相对简单,并且不用关心应用所使用的加密技术。
二、手机越狱
使用爱思助手或pp助手
均可以对手机越狱,注意越狱时对应的系统版本号,根据自己系统版本号选择。
越狱后手机上会安装Cydia
软件,在软件中选择搜索搜索OpenSSH
安装,安装完成后便可以与Mac
端通过ssh
建立连接。
1、通过工具越狱后会出现h3lix
应用:
2、点击运行h3lix
,再点击按钮运行,将会下载安装Cydia
应用:
3、点击Cydia
应用查看是否安装OpenSSL
,如未安装则搜索安装,如下:
通过以上1、2、3步骤之后Mac
终端就可以和越狱手机进行ssh
连接了。命令如下:
ssh root@192.168.1.168 -p 22
默认密码:alpine
修改密码执行passwd 输入新密码:yahibo
进入手机中操作与Linux命令相同
注意:手机重启后Cydia
应用会失效,需要重新执行第2步重新安装。
三、砸壳工具Clutch使用(动态砸壳)
注意:会遇到砸壳失败,要确定是否在App Store
下载,如果不是重新下载。
Clutch需要使用iOS8.0
以上的越狱手机应用。
下载链接:https://github.com/KJCracks/Clutch/releases
1、下载后将Clutch-2.0.4
放到越狱手机的usr/bin
目录下(密码默认为alphine
)
scp Clutch-2.0.4 root@192.168.1.168:/usr/bin/
2、ssh
连接苹果设备,命令如下:
ssh root@192.168.1.168
3、进入usr/bin
目给Clutch-2.0.4
赋予可执行权限:
chmod +x Clutch-2.0.4
4、执行Chmod
命令查看命令参数:
Clutch-2.0.4
-b 只转储二进制文件
-d 转储应用的.ipa文件即砸壳,砸壳后获取.ipa文件的路径,将.ipa拉到本地即可
-i 获取安装的应用
5、列举安装的应用:
Clutch-2.0.4 -i
6、开始砸壳,选择编号2对微信进行砸壳:
Clutch-2.0.4 -d 2
运行如下:
最后生成一个砸壳后的包路径:
/private/var/mobile/Documents/Dumped/com.tencent.xin-iOS9.0-(Clutch-2.0.4).ipa
将Dumped文件下载到Mac中:
scp -r root@192.168.1.168:/private/var/mobile/Documents/Dumped ipas/
7、将获取到的.ipa
修改为wxtest.zip
并解压,进入wxtest
文件中的Payload
中,执行命令:
class-dump -H WeChat.app -o apph
结束后apph
中为微信对应的所有头文件信息。如图:
apph
中为微信对应的所有头文件信息。如图: