MachO文件 -> 蘋果加密 -> 加殼文件
加殼文件 -> 蘋果解密 -> MachO文件(DYLD)
解密過程:
- DRM(數字版權管理)檢查
- 找到合適結構進行解密
- 使用DYLD加載解密的MachO
砸殼工具:
Clutch 靜態(tài)砸殼
dumpdecrypted 動態(tài)加殼
靜態(tài)砸殼:調用系統的解密程序
動態(tài)砸殼:得到系統解密后的MachO文件
Clutch 靜態(tài)砸殼
前提條件:手機已越獄
1. 下載安裝Clutch到手機
github下載 Clutch 并命名為 Clutch
2. 將該文件拷貝到設備(手機)中
scp ./build/Clutch root@<your.device.ip>:/usr/bin/Clutch
若有端口映射
scp -P 2222 ./build/Clutch root@localhost:/usr/bin/Clutch
3. Clutch 增加可執(zhí)行權限
# chmod +x Clutch
4. 使用
Clutch [OPTIONS]
-b --binary-dump Only dump binary files from specified bundleID
-d --dump Dump specified bundleID into .ipa file
-i --print-installed Print installed application
--clean Clean /var/tmp/clutch directory
--version Display version and exit
-? --help Display this help and exit
-
$ Clutch i
列出可砸殼應用1: 微信 <com.tencent.xin> 2: ....
-
砸殼
# Clutch -d [標示或bundleID] 如: Clutch -d 1
成功后可看見砸殼后的文件
dumpdecrypted 動態(tài)加殼
1. 下載并執(zhí)行
github dumpdecrypted clone and Download
當前文件夾下執(zhí)行make
$ make
生成 dumpdecrypted.dylib
和 dumpdecrypted.o
文件
2. 將動態(tài)庫.dylib
從本地拷貝到手機上
scp dumpdecrypted.dylib root@<your.device.ip>:~/
若有端口映射
scp -P 2222 ./build/Clutch root@localhost:~/
3. 將動態(tài)庫.dylib
依附到要砸殼的app進程中
利用 DYLD
環(huán)境變量 DYLD_INSERT_LIBRARIES=
# DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib [進程路徑]
如:
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/.../WeChat.app/WeChat
注:進程路徑可通過 ps -A
查看
4. ipa包
執(zhí)行之后 當前目錄下 ls
得到 WeChat.decrypted
可執(zhí)行文件
其他文件可在/var/mobile/.../WeChat.app
拷貝組合成砸殼后的ipa包