首先得准备一部已经越狱过的iPhone,并且安装好OpenSSH和cycript插件
步骤:
- 解压然后cd到这个目录,执行make命令,目录下就会多出一个dumpdecrypted.dylib文件,这个就是等会要用的砸壳工具
- 确保手机和电脑处于同一局域网内,使用ssh命令连接手机 (命令:ssh root@ + IP地址)
例如ssh root@192.168.3.107
接着输入密码,默认密码是alpine,输入完成后就可以通过命令控制手机了
- 选定你要砸壳的目标。将后台的程序都关闭掉只打开要砸壳的APP,这样便于稍后在系统进程中寻找目标。接下来使用
ps -e
命令查看所有进程信息
- 利用cycript工具来勾住我们的目标进程,执行
cycript -p + 进程名称或ID
,需要注意的是执行此命令时目标APP要处于前台开启状态
- 执行脚本代码获取目标APP的沙盒路径,脚本代码:
[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
- 新开一个命令窗口,使用scp命令将之前编译好的dumpdecrypted.dylib文件拷贝至目标APP的沙盒目录下(命令:scp 原文件地址 目标地址)(这里也可以使用其他文件管理工具直接进行拷贝)
scp /Volumes/CHENHAO/develop/dumpdecrypted.dylib root@192.168.3.107:/var/mobile/Containers/Data/Application/477D8997-B73E-4B16-8649-3C12F7F11CF5/Documents/dumpdecrypted.dylib
- 回到刚才连接手机的命令窗口,ctrl + z 退出附加进程模式,cd 到目标APP的沙盒目录下
cd /var/mobile/Containers/Data/Application/477D8997-B73E-4B16-8649-3C12F7F11CF5/Documents/
- 使用砸壳命令进行砸壳
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/347416AC-B8AD-491A-AC27-D226717C829F/Youkui4Phone.app/Youkui4Phone
iOS9.3.2以上的版本在执行此命令时可能会出现kill9的错误,这时需要先执行一下su mobile
然后再执行砸壳命令。执行完毕后可以用ls
命令列出文件夹下所有文件,Youkui4Phone.decrypted 就是我们想要的砸壳后的二进制文件
-
回到刚才拷贝文件的窗口,使用scp命令将砸壳后的文件拷贝出来(这里同样可使用文件管理工具直接拷贝)
scp root@192.168.3.107:/var/mobile/Containers/Data/Application/477D8997-B73E-4B16-8649-3C12F7F11CF5/Documents/Youkui4Phone.decrypted /Volumes/CHENHAO/develop/Youkui4Phone.decrypted
-
最后一步了,使用class-dump获取头文件信息
导出所有头文件class-dump -H /Volumes/CHENHAO/develop/Youkui4Phone.decrypted
也可以将所有头文件内容合并到一个.m文件内class-dump --arch arm64 /Volumes/CHENHAO/develop/Youkui4Phone.decrypted > /Volumes/CHENHAO/develop/Youkui4Phone.m