一丶介紹
砸殼工具
“從AppStore下載的App(以下簡稱StoreApp)是被蘋果加密過的(從其他渠道下載的一般沒有加密),可執行文件被套上了一層保護殼,而class-dump無法作用于加密過的App。在這種情況下,想要獲取頭文件,需要先解密App的可執行文件,俗稱“砸殼”?!?/p>
二丶使用:
2.1準備階段:
2.1.1 dumpdecrypted下載:
$git clone git://github.com/stefanesser/dumpdecrypted/
2.1.2用cydia安裝adv-cmds
后面會用到,主要是可以用ps命令
2.1.3用cydia安裝Cycript
Cydia自帶源Cydia/Telesphoreo里面找Cycript
后面會用到;
2.1.4 用Cydia安裝OpenSSH
后面用到
2.1.5 iPhone和PC在同一個Wifi下
2.1.6 iFunBox
http://www.lxweimin.com/p/e9d0630ef3c0
2.2 使用
2.2.1編譯
在dumpdecrypted文件夾中,使用
$make
文件夾內會出現dumpdecrypted.dylib 的動態庫;
2.2.2 把它放到需要砸殼的document目錄下
“StoreApp對沙盒以外的絕大多數目錄沒有寫權限。
dumpdecrypted.dylib要寫一個decrypted文件,
但它是運行在StoreApp中的,與StoreApp的權限相同,
那么它的寫操作就必須發生在StoreApp擁有寫權限的路徑下才能成功。
StoreApp一定是能寫入其Documents目錄的,
因此在Documents目錄下使用dumpdecrypted.dylib時,
保證它能在當前目錄下寫一個decrypted文件,
這就是把dumpdecrypted.dylib拷貝到Documents目錄下操作的原因。”
摘錄來自: 沙梓社 吳航 著. “iOS應用逆向工程(第2版)"
獲取你目標app的路徑方法:
利用sycript查找App路徑;先把所有App關閉;只運行目標App
假如目標App:XXXX
$ssh root@192.168.3.90
$ps -e
xzbde-iPhone:~ root# cycript -p XXXX
cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
最終要獲取2個路徑:
#可執行文件:
/var/mobile/Containers/Bundle/Application/CEAF4585-2B65-426F-944E-F616EB1F81DC/XXXX.app/XXXX
#Document:
var/mobile/Containers/Data/Application/B058D33F-F133-4555-8212-E6D1AE42B7E7/Documents/
可以使用iFunBox把dumpdecrypted.dylib拷貝到Doucument里;
切換到Document里面
$cd /var/mobile/Containers/Data/Application/B058D33F-F133-4555-8212-E6D1AE42B7E7/Documents/
執行: $DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib + 空格+執行文件path
$DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/CEAF4585-2B65-426F-944E-F616EB1F81DC/XXXX.app/XXXX
最終效果:
Paste_Image.png
三丶提取
在document里會多了個.decrypted文件;copy到pc上,就可以使用class-dump丶IDA等工具了;
Paste_Image.png