砸壳
提交给Appstore发布的App,都经过官方保护而加密,这样可以保证机器上跑的应用是苹果审核过的,也可以管理软件授权。经过App Store加密的应用,我们无法通过Hopper等反编译静态分析,也无法Class-Dump,在逆向分析过程中需要对加密的二进制文件进行解密才可以进行静态分析,这一过程就是大家熟知的砸壳(脱壳)。
应用砸壳(解密)分为:
1.静态砸壳
静态砸壳就是在已经掌握和了解到了壳应用的加密算法和逻辑后在不运行壳应用程序的前提下将壳应用程序进行解密处理。静态脱壳的方法难度大,而且加密方发现应用被破解后就可能会改用更加高级和复杂的加密技术。
2.动态砸壳
动态砸壳就是从运行在进程内存空间中的可执行程序映像(image)入手,来将内存中的内容进行转储(dump)处理来实现脱壳处理。这种方法实现起来相对简单,且不必关心使用的是何种加密技术。
砸壳原理
iOS应用运行原理
根据iOS应用运行原理,砸壳的原理其实就是将内存中解密后的MatchO拷贝出来。
砸壳工具Clutch的安装和使用
Clutch是由KJCracks开发的一款开源砸壳工具。工具支持iPhone、iPod Touch、iPad,该工具需要使用iOS8.0以上的越狱手机应用。
Clutch的安装
下载Clutch
下载Release下的2.0.4
Clutch的使用
一.映射端口OpenSSH相关知识
二.拷贝Clutch-2.0.4到手机,并重命名为Clutch
三.列出可砸壳应用列表Clutch -i
四.砸壳Clutch -d 应用ID
砸壳成功后会在这个目录下:
砸壳工具dumpdecrypted的使用
Github开源工具。 dumpdecrypted这个工具就是通过建立一个名为dumpdecrypted.dylib的动态库,插入目标应用实现脱壳
一、直接git clone
二、通过Make编译生成动态库就
三、拷贝到远程手机
四、通过DYLD_INSERT_LIBRARIES 环境变量插入动态库执行(DYLID_INSRT_LIBRARY 能让动态库临时依附到某个应用去执行)
砸壳工具frida-ios-dump的使用
该工具基于frida提供的强大功能通过注入js实现内存dump然后通过python自动拷贝到电脑生成ipa文件。
Mac安装:
1、查看python版本,Mac都是自带的(python -V)。
2、查看pip版本
安装pip sudo pip install frida-tools
关于安装中,可能会有报错,可以查看错误解决
越狱手机上安装:
在cydia里添加源:https://build.frida.re
然后直接安装frida
Mac配置ios-dump
1.下载脚本
$sudo git clone https://github.com/AloneMonkey/frida-ios-dump
(默认是2.x版本,如果是3.x版本的话,可以需要checkout 到3.x版本)
2.修改dump.py的User配置
3.进入目录安装依赖
$sudo pip install -r /opt/dump/frida-ios-dump/requirements.txt –upgrade
有可能报错会有如下错误:
解决方案:
降低 prompt-toolkit 版本
先卸载
sudo pip install prompt-toolkit==1.0.6
4.使用
frida-ps -U 列出Display name(应用名称)
./dump.py 微信 参数用Display name或者Bundle ID都行