iOS安全:使用dumpdecrypted/Clutch 砸壳
原创 2019-04-13
之前都是使用Clutch砸壳,今天在分析一问题时,发现Clutch砸壳失败,于是寻找其他的砸壳工具,选择了dumpdecrypted。这里简单记录下方便后续查询。
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下载路径,下载即可。
相关文章:
iOS安全:修改Mach-O
iOS Crash log符号化
iOS APP灰度发布方案
iOS performSelector使用int等基本数据类型的问题
iOS 色温和白平衡设置
iOS安全:iOS APP注入动态库重打包(非越狱)
发表留言
您的电子邮箱地址不会被公开,必填项已用*标注。
留言板