iOS砸壳

注意:

从App Store下载的app,砸壳重签名后安装到其他手机上会出现The application is not build for this device.安装不了
解决方案1 :用电脑PC端的itunes下载对应的app,再安装到手机里,再进行砸壳重签名就没问题了。
解决方案2 :由于砸壳后ipa做了瘦身,一些UI支持的设备在info.plist里显示不全,只需要修改info.plist的UISupportedDevices项,把自己的设备添加上去即可。

image.png

image.png

1.砸壳原理

提交给Appstore发布的App,都经过官方保护而加密,这样可以保证机器上跑的应用是苹果审核过的,也可以管理软件授权。经过App Store加密的应用,我们无法通过Hopper等反编译静态分析,也无法Class-Dump,在逆向分析过程中需要对加密的二进制文件进行解密才可以进行静态分析。
iOS常用的是动态砸壳,动态砸壳就是从运行在进程内存空间中的可执行程序映像(image)入手,来将内存中的内容进行转储(dump)处理来实现脱壳处理。这种方法实现起来相对简单,且不必关心使用的是何种加密技术。


image.png

2.iOS常用的砸壳工具

越狱机器

2.1.Clutch

Clutch通过调用posix_spawnp生成一个进程,然后暂停进程,dump内存

下载最新的Release版
去掉版本号,改名为Clutch

2.1.1 开启端口映射

python ~/GGShell/usbmuxd-1.0.8/tcprelay.py -t 22:10010

image.png

2.1.2 将Clutch文件拷贝到iPhone的/usr/bin目录

scp -P 10010 ~/GGShell/Clutch root@localhost:/usr/bin

image.png

2.1.3 将Clutch文件拷贝到iPhone的/usr/bin目录

登录到手机
ssh -p 10010 root@localhost

image.png

下面的情况是权限不够
image.png

赋予可执行的权限
chmod +x /usr/bin/Clutch
查看可砸壳的应用
image.png

2.1.4 开始砸壳
image.png

砸壳成功


image.png

拷贝出来的时候,找不到这个文件可能是名字的问题


image.png

在iFunBox里面重命名一下成功了
image.png

2.2. dumpdecrypted

dumpdecrypted动态注入后,dump内存中解密的代码部分

dumpdecrypted下载

2.2.1 在源代码目录执行make指令进行编译,获得dylib动态库文件
image.png
2.2.2 将dumpdecrypted.dylib拷贝到根目录/var/root

scp -P 10010 dumpdecrypted.dylib root@localhost:~/

image.png

2.2.3 登录手机查看微信的可执行文件路径

image.png

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/2B6D4F9E-1960-4733-9C14-D686D3976879/WeChat.app/WeChat
会出现失败,需要重签名
image.png

1.终端执行下 :security find-identity -v -p codesigning
看看 你电脑 当前有哪些可用的签名证书
2.然后重新签下名:codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)" dumpdecrypted.dylib
然后重新拷贝进手机,重新执行下,砸壳出来的是可执行文件
image.png

拷贝出来
image.png

otool -l一下,cryptid 0代码已砸壳
image.png

2.3 frida-iOS-dump

该工具基于frida提供的强大功能通过注入js实现内存dump然后通过python自动拷贝到电脑生成ipa文件

2.3.1 安装pip $sudo easy_install pip
2.3.2 安装frida $sudo -H pip install frida-tools

sudo -H == set-home 将 HOME 变量设为目标用户的主目录

2.3.3 安装 frida-ios-dump 进入目录安装依赖 sudo pip install -r requirements.txt --upgrade
2.3.4 手机Cydia添加源https://build.frida.re,安装Frida
2.3.5 ./dump.py 微信 手机需要运行微信,./dump.py -l查看应用名字bundleid
image.png

image.png

以后只需要一行代码就可以砸壳了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 技 术 文 章 / 超 人 App Store上的应用都使用了FairPlay DRM数字版权加密保护技术Fair...
    树下敲代码的超人阅读 20,829评论 21 55
  • 说明: 本文所有iPhone:~ root#为前缀的命令指的是SSH远程登录手机后执行的命令 SSH远程登录iPh...
    烟影很美阅读 2,547评论 3 4
  • 一、概述 从App Store下载的应用是加过壳的,加壳的应用是不能直接执行的,手机之所以能够使用下载的app,是...
    heart_领阅读 1,257评论 0 2
  • 1.环境准备 a.越狱设备一台,我这手上的是iPhone 5s,系统版本是8.4 b.Cycript Cycrip...
    涵元阅读 7,364评论 5 12
  • 1、工具 mac(10.12) , 越狱手机 iphone5(iOS7) 2、手机用Cydia安装 openSSH...
    蓝色天空524阅读 1,623评论 0 1