iOS应用砸壳
设备:iOS10.3.2的5s
一:设备越狱
1.使用g0blin 进入官网下载ipa
2.然后使用Impactor 安装到手机
3.打开应用进行越狱。
4.越狱安装OpenSSL和Openssh发现电脑链接不上,网上有个大神已经提出解决方案。
a->首先卸载OpenSSL和Openssh
b->在手机cydia添加源http://cydia.ichitaso.com/test
c->安装dropbear
d->ssh root@手机IP (相同网段wifi)
e->默认用户root 默认密码alpine (修改默认密码命令 passwd)
二:砸壳
1.首先在cydia安装 cycript源
2.用电脑终端ssh链接到手机设备,查看当前运行到app进程
ps -e | grep var
在进程列表找到要砸壳的应用,以微信6.6.6版本为例。
3.挂钩到对应进程的,就会进入cycript的命令界面
cycript -p 1056
4.查看应用沙盒目录路径
[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
4.记录应用进程的路径和沙盒的路径,留着后面使用,退出cycript
ctrl+d
5.下载砸壳工具包
decript_wechat.dylib 或者dumpdecrypted.dylib
6.进入到应用沙盒目录下
8.新开一个终端,将下载的decript_wechat.dylib拷贝到设备到沙盒文件夹下
scp ./decript_wechat.dylib root@手机设备ip:/var/mobile/Containers/Data/Application/22C48D74-5528-4EDB-A398-DADFDB26E40A/Documents/
8.执行砸壳命令
DYLD_INSERT_LIBRARIES=decript_wechat.dylib /var/containers/Bundle/Application/4C3D3D6D-7318-44C6-85B8-1F35B6EBCAAF/WeChat.app/WeChat
9.将文件拷贝回电脑,我这里就直接放桌面。因为WeChat.app是目录,所以拷贝目录scp添加-r
scp -r root@192.168.1.107:/var/containers/Bundle/Application/4C3D3D6D-7318-44C6-85B8-1F35B6EBCAAF/WeChat.app ~/desktop
拷贝沙盒文件夹,备用
scp -r root@192.168.1.107:/var/mobile/Containers/Data/Application/22C48D74-5528-4EDB-A398-DADFDB26E40A/Documents/ ~/desktop
10.手机链接的可以退出了,接下进入电脑上拷贝的Documents文件夹,返回cryptid 0 没有加密,砸壳成功。
otool -l WeChat.decrypted | grep crypt
11.重新签名打包,将拷贝到电脑的沙盒里面 *.decrypted 文件的后缀去掉,然后拷贝到WeChat.app替换。(注意:WeChat.app 显示包文件,可以进入到里面,除了WeChat,其他5个都在framework里面)
删除 WeChat.app下面的Watch和PlugIns文件夹
12.重新签名
工具下载地址:http://dantheman827.github.io/ios-app-signer/
13.安装到手机,可以使用pp助手或者使用impactor工具
效果如下,签名后在非越狱机上的效果。
问题记录:
1、错误提示
dyld: could not load inserted library 'dumpdecrypted.dylib' because no suitable image found. Did find:dumpdecrypted.dylib: required code signature missing for 'dumpdecrypted.dylib'
解决方法:对dumpdecrypted.dylib进行签名
## 列出可签名证书
security find-identity -v -p codesigning
## 为dumpecrypted.dylib签名
codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)" dumpdecrypted.dylib