首页
社区
课程
招聘
[原创]dumpdecrypted砸壳高版本iOS(如iOS12)的正确姿势
发表于: 2020-12-1 17:51 81914

[原创]dumpdecrypted砸壳高版本iOS(如iOS12)的正确姿势

2020-12-1 17:51
81914

dumpdecrypted砸壳高版本iOS(如iOS12)的正确姿势

 

目录

引言

​ 几年前用dumpdecrypted砸过iOS10系统中应用的壳,最近又有砸壳的需求,不过是iOS12系统。于是完全按照当年在iOS10中的砸壳步骤在iOS12中砸壳,遇到了种种错误。求助于百度和谷歌,用关键字"dumpdecrypted iOS12"搜索,得到的结论全部是dumpdecrypted在iOS12及其更高版本的iOS系统中不行了,然后就介绍其他的砸壳工具,如CrackerXI

 

​ 本人试了一下CrackerXI砸壳确实简单易用,但dumpdecrypted为什么不行却没有找到答案,而且由于dumpdecrypted的砸壳原理是注入动态库dylib进目标进程来dump相关解密数据,难道意味着在高版本的iOS中,也无法注入dylib做点其他事情了吗? 本着探索的精神在经过多次研究实验后,最后成功用dumpdecrypted砸出iOS12.1应用的壳。由于网上并没有看到dumpdecrypted砸高版本iOS系统中应用的壳的文章,故花点时间写个分享献给有需要的人。

dumpdecrypted砸壳高版本iOS过程

砸壳系统环境介绍

类别
电脑系统 macOS Catalina 版本10.15.6(19G20201)
手机环境系统 iphone 6 Plus 版本12.1.2(16C101) 已越狱并通过Cydia安装cycript、OpenSSH
Xcode版本 Xcode 12.1 对应的iOS SDKs版本号iOS 14.2

dumpdecrypted在高iOS系统中砸壳的正确步骤

(1) 源码下载:从如下地址下载源码 bceK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6K6N6r3g2X3j5h3&6W2M7%4y4W2M7W2)9J5c8X3c8#2L8i4m8V1k6h3y4J5P5i4m8@1k6h3b7`.

 

(2) 修改Makefile文件:

 

GCC_UNIVERSAL=$(GCC_BASE) -arch armv7 -arch armv7s -arch arm64改成 GCC_UNIVERSAL=$(GCC_BASE) -arch arm64

 

CFLAGS = 改成CFLAGS = -target arm64-apple-ios12.1

 

(3) 直接make编译生成dumpdecrypted.dylib

 

输出如下所示:

1
2
3
4
jay@MacBook-Pro dumpdecrypted % make
`xcrun --sdk iphoneos --find gcc` -Os -target arm64-apple-ios12.1  -Wimplicit -isysroot `xcrun --sdk iphoneos --show-sdk-path` -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/Frameworks -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/PrivateFrameworks -arch arm64 -c -o dumpdecrypted.o dumpdecrypted.c
`xcrun --sdk iphoneos --find gcc` -Os -target arm64-apple-ios12.1  -Wimplicit -isysroot `xcrun --sdk iphoneos --show-sdk-path` -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/Frameworks -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/PrivateFrameworks -arch arm64 -dynamiclib -o dumpdecrypted.dylib dumpdecrypted.o
ld: warning: directory not found for option '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.2.sdk/System/Library/PrivateFrameworks'

(4) 用codesign和个人调试证书给dumpdecrypted.dylib签名:

 

security find-identity -v -p codesigning 查找可用的证书,然后用找到的证书签名

 

codesign --force --verify --verbose --sign "找到的可用证书名称" dumpdecrypted.dylib

 

本机输出如下所示:

1
2
3
4
5
6
jay@MacBook-Pro dumpdecrypted % security find-identity -v -p codesigning
  1) 3A1B91863D16D2B252A346CDB242AF451A73DEA1 "Apple Development: xx@qq.com (UN84ST6FLY)"
     1 valid identities found
jay@MacBook-Pro dumpdecrypted % codesign --force --verify --verbose --sign "Apple Development: xx@qq.com (UN84ST6FLY)" dumpdecrypted.dylib
dumpdecrypted.dylib: signed Mach-O thin (arm64) [dumpdecrypted]
jay@MacBook-Pro dumpdecrypted %

(5)签过名的dumpdecrypted.dylib上传iphone手机的/usr/lib/目录:scp -r dumpdecrypted.dylib root@10.0.52.63:/usr/lib/

 

(6)iphone运行要脱壳的应用,ssh root@10.0.52.63 连上手机,用ps -e | [grep -i xxx] 查看进程id和进程名

 

(7)cycript注入进程查看应用对应的Documents目录:

 

cycript -p 进程id值pid 注入进程 (待机等状态有时会导致注入卡主,可以iphone上随便动一下应用)

 

URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]

 

本机输出如下所示:

1
2
3
4
5
6
shangshuhede-iPhone:~ root# ps -e | grep -i reader
12255 ??         0:04.09 /var/containers/Bundle/Application/35992D04-EB51-4A84-8F95-D9495004933E/YYReader.app/YYReader
12484 ttys002    0:00.01 grep -i reader
shangshuhede-iPhone:~ root# cycript -p 12255
cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
#"file:///var/mobile/Containers/Data/Application/78D09E74-BB1F-4871-BBC1-6E715C18718A/Documents/"

PS: 如果不确定进程是否正确,可以cycript中运行:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"];查看应用名称,输出16进制字符串,将16进制字符串直接放到python里print("\xaa\xbb"')一下即可输出中文。

 

(8)cd到应用的Documents目录下,su mobile 切换到mobile账户下,然后用如下命令开始砸壳

 

DYLD_INSERT_LIBRARIES=/usr/lib/dumpdecrypted.dylib 进程名


[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!

最后于 2020-12-1 18:08 被cjycjw编辑 ,原因:
收藏
免费 4
支持
分享
最新回复 (6)
雪    币: 63
活跃值: (1409)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
Good
2020-12-2 11:01
0
雪    币: 98
活跃值: (134)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
有插件crackerXI1.4版本和bfdecrypt
2020-12-18 10:35
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
支持下
2021-1-25 10:49
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
Abort trap: 6
没有任何额外信息

环境
iOS 12.4.9

已改
GCC_UNIVERSAL=$(GCC_BASE) -arch arm64
CFLAGS = -target arm64-apple-ios12.4

......
objc[7854]: Class SSKeychain is implemented in both /System/Library/PrivateFrameworks/StoreServices.framework/StoreServices (0x1d37b1a90) and /var/containers/Bundle/Application/F544CC82-DA7C-4CD0-A33A-85E1ABBC3164/DingTalk.app/DingTalk (0x10ae92418). One of the two will be used. Which one is undefined.
Object_Creator constructor
Abort trap: 6
2022-11-24 12:29
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6

这个工具有没有verbose选项啥的,输出更详细的信息

最后于 2022-11-24 18:09 被llau编辑 ,原因:
2022-11-24 18:01
0
雪    币:
活跃值: (64)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
使用上面的方案,在iOS16.2上成功砸壳。基于palera1n越狱,iPhone8。
2023-5-6 15:19
0
游客
登录 | 注册 方可回帖
返回