当前位置: 首页 > 工具软件 > dumpdecrypted > 使用案例 >

dumpdecrypted工具编译与使用

逄烨
2023-12-01

1.可以从github下载dumpdecrypted源代码,下载地址如下:

https://github.com/stefanesser/dumpdecrypted

2.进入源代码目录,执行make命令
报错:xcrun: error: SDK “iphoneos” cannot be located
修补:打开Xcode->Preference->Location->Command Line Tools,选中目标即可。

3.编译之后会生成dumpdecrypted.dylib文件,需要对其进行签名
第一步:执行命令security find-identity -v -p codesigning,结果如下
1)1E087DEF317DE1EBD5CB3007A3705D92CC9AA2FD “Apple Development: xxx@126.com (X55ZUDAxxx)”
2)2090D1DBCF14B09BD95B2CE072B9F30F3C66D5D8 “Apple Development: xxx@126.com (X55ZUDAxxx)”
2 valid identities found
第二步:执行签名命令
codesign --force --verify --verbose --sign “Apple Development: xxx@126.com (X55ZUDAxxx)” dumpdecrypted.dylib
签名结果:
dumpdecrypted.dylib: signed Mach-O universal (armv7 armv7s arm64) [dumpdecrypted]

4.将签名之后的dumpdecrypted.dylib传入越狱手机:
Mac上开命令行:iproxy 2222 22
再开命令行:ssh root@localhost -p 2222
三开命令行,传输文件:
scp -P 2222 dumpdecrypted.dylib root@localhost:/var/root/

5.执行dumpdecrypted.dylib进行脱壳
第一步:手机上打开应用,在手机shell环境中执行ps -ef命令获取目标应用进程信息;

ps -ef | grep “allt”
501 2048 1 0 4:40PM ?? 0:07.27 /var/containers/Bundle/Application/2F216CA6-368C-4E21-9BF9-A3F18C16E220/alltobid.app/alltobid

第二步:考虑到砸壳之后文件会重新生成需要保存,因此找到目标应用的Documents目录,通过cycript实现:
在手机shell环境下执行cycript,

iPhone7:~ root# cycript -p pid(目标进程号)
cy# [[NSFileManager defaultManager]URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
执行结果:
#“file:///var/mobile/Containers/Data/Application/63B48AC6-13DA-4AA3-8F68-E2D785A6EDBA/Documents/”

第三步:可以将dumpdecrypted.dylib拷贝到应用Documents目录,并且在命令行中通过cd命令进入应用Documents目录。

YLD_INSERT_LIBRARIES=path/to/dumpdecrypted.dylib path/to/executable
示例:
iPhone7:/var/mobile/Containers/Data/Application/63B48AC6-13DA-4AA3-8F68-E2D785A6EDBA/Documents root# DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/2F216CA6-368C-4E21-9BF9-A3F18C16E220/alltobid.app/alltobid

但在实际执行过程报错了:

dyld: warning: could not load inserted library ‘dumpdecrypted.dylib’ into hardened process because no suitable image found. Did find:
dumpdecrypted.dylib: missing LC_DYLD_INFO load command
/private/var/mobile/Containers/Data/Application/63B48AC6-13DA-4AA3-8F68-E2D785A6EDBA/Documents/dumpdecrypted.dylib: missing LC_DYLD_INFO load command
Abort trap: 6

参考stackoverflow的分析,应该是Xcode上的iPhoneos的SDK版本和iOS设备的系统sdk不匹配造成的,解决办法是下载旧版Xcode,但是本人未实践,仅供参考

 类似资料: