UPDATE:
Clutch和dumpdecrypted都有缺点,现在推荐使用 frida-ios-dump
dumpdecrypted砸壳
dumpdecrypted项目地址:
https://github.com/stefanesser/dumpdecrypted
dumpdecrypted项目只有一个C文件和一个Makefile,下载到本地(需要有xcode的编译环境)后直接解压执行make,会生成一个dumpdecrypted.dylib文件。
将dumpdecrypted.dylib上传到越狱手机待砸壳APP的文档沙箱目录,然后在沙箱根目录执行:
su mobile
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 砸壳APP的二进制文件目录
下面的问题就是怎么查找待砸壳APP的沙箱目录。
网络上很多资料都提到使用cycript -p的方式,但我使用该命令总是失败。于是想到了直接使用tweak注入的方式:
新建tweak项目,hook代码如下:
%hook UIViewController
- (void)viewDidLoad {
%orig;
//往沙箱目录写一个文件
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documents = [paths objectAtIndex:0];
//NSData *data =[documents dataUsingEncoding:NSUTF8StringEncoding];
NSString *path = [documents stringByAppendingPathComponent:@"1.txt"];
[path writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];
}
%end
并在tweak项目的plist文件中,增加待砸壳APP的bundle id.
make package install完成之后,运行待砸壳APP,此时会在待砸壳APP的沙箱目录生成1.txt的文件。
接着:
cd /var/mobile/Containers/Data/Application
find -name 1.txt
就可以查询砸壳APP的沙箱目录了。
Clutch 砸壳
clutch项目地址:https://github.com/KJCracks/Clutch 也可以直接从 https://github.com/KJCracks/Clutch/releases 下载编译好的二进制,然后通过ssh拷贝到越狱手机的/usr/bin目录下。
chmod 777 /usr/bin/Clutch
使用Clutch
Clutch -i会按顺序列出安装的app,然后根据选择的序号砸壳: Clutch -d --dump 3 砸壳正常则会提示砸壳之后的ipa下载路径,下载即可。
留言板