一、原理
动态注入可执行文件Mach-o,从内存dump出解密的内容
github : dumpdecrypted
二、编译dumpdecrypted
cd到目录 make
得到一个dumpdecrypted.dylib
PS:后面注入过程出现一个问题:
因为没有签名dylib,注入失败
解决方案:
列出可签名证书
security find-identity -v -p codesigning
为dumpecrypted.dylib签名
codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)" dumpdecrypted.dylib
三、砸壳(解密)
1.定位目标应用的可执行文件
手机退出其他应用,只打开目标应用(以微信为例),电脑ssh到手机,使用ps -e(ps命令需要手机安装插件adv-cmds)命令查看进程:
定位微信进程
2.获取应用沙盒目录Documents
动态库注入解密需要写到同一目录下,而应用存在沙盒中,通过BundleID调用私有API获取Documents目录:
cat /var/containers/Bundle/Application/BE4C2082-083B-4DE4-924D-EDCA98EB1701/WeChat.app/Info.plist | grep CFBundleIdentifier -A 1
3.调用私有API获取沙盒Documents目录
新建iOS工程,在目标应用设备上运行
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSString *bundleID = @"com.tencent.xin";
NSURL *dataURL = [[NSClassFromString(@"LSApplicationProxy") performSelector:@selector(applicationProxyForIdentifier:) withObject:bundleID] performSelector:@selector(dataContainerURL)];
NSLog(@"%@",[dataURL.absoluteString stringByAppendingString:@"/Documents"]);
return YES;
}
控制台输出:
2018-11-08 23:13:26.751557 decrypt[623:18364] file:///private/var/mobile/Containers/Data/Application/02A7FF42-8A6B-45BA-8C25-99760F0311C7/Documents
对应Documents目录:
/var/mobile/Containers/Data/Application/02A7FF42-8A6B-45BA-8C25-99760F0311C7/Documents
4.复制dylib到Documents目录并进行解密
-
在dumpdecrypted.dylib目录下打开终端,复制dylib使用以下命令(自行修改不同参数):
scp ./dumpdecrypted.dylib root@192.168.10.170:/var/mobile/Containers/Data/Application/02A7FF42-8A6B-45BA-8C25-99760F0311C7/Documents
-
ssh到手机端解密
dump出解密文件
1.cd /var/mobile/Containers/Data/Application/02A7FF42-8A6B-45BA-8C25-99760F0311C7/Documents
2.DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/BE4C2082-083B-4DE4-924D-EDCA98EB1701/WeChat.app/WeChat
-
解密文件就在Documents目录,拷贝出来玩耍吧
Mac端:
scp root@192.168.10.170:/var/mobile/Containers/Data/Application/02A7FF42-8A6B-45BA-8C25-99760F0311C7/Documents/WeChat.decrypted ~/desktop
-
查看解密文件
cryptid为0表示未加密
上述操作比较原始,后面会有更快的砸壳方法,庆哥的改版dumpdecrypted(试过一遍没搞懂),庆哥推荐使用 frida-ios-dump,传送门:使用frida-ios-dump快速通过越狱设备砸壳
网友评论