1.環(huán)境準(zhǔn)備
a.越獄設(shè)備一臺,我這手上的是iPhone 5s,系統(tǒng)版本是8.4
b.Cycript Cycript是由Cydia創(chuàng)始人Saurik推出的一款腳本語言,Cycript 混合了Objective-C javascript語法的解釋器,這意味著我們能夠在一個命令中用Objective-C或者javascript,甚至兩者兼用。它能夠掛鉤正在運行的進(jìn)程,能夠在運行時修改應(yīng)用的很多東西。Cycript的安裝簡單,可在越獄設(shè)備上從Cydia搜索Cycript并安裝即可
c.越獄設(shè)備打卡Cydia搜索安裝OpenSSH。
d.打開Mac 終端 ,下載dumpdecrypted工具源碼,git clone dumpdecrypted

然后 cd 到dumpdecrypted源碼所在目錄,執(zhí)行make命令,編譯生成砸殼工具dumpdecrypted.dylib。

2.砸殼,這里是以微信為實驗對象
打開Mac終端,使用ssh鏈接到越獄設(shè)備,默認(rèn)的密碼是:alpine,這里注意要保證你的越獄設(shè)備與Mac是在同一網(wǎng)段內(nèi)。
ssh root@設(shè)備的ip地址 (這里是一個??:ssh root@192.168.2.3)

a.使用ps命令找出目標(biāo)進(jìn)程路徑
登錄上越獄設(shè)備后,在越獄設(shè)備上運行需要砸殼的對象,使用ps命令查看進(jìn)程,懂Linux的小伙伴不用我解釋了吧,不懂Google。執(zhí)行ps -e命令后終端會顯示越獄設(shè)備當(dāng)前運行的所有進(jìn)程,找到需要砸殼的應(yīng)用,記錄下路徑和編號。本文以微信為??:搜索微信應(yīng)用名的關(guān)鍵字WeChat,那么我是怎么知道微信應(yīng)用名的呢?很簡單,把越獄設(shè)備上所有應(yīng)用都關(guān)掉,只留下你想要砸殼的那個應(yīng)用,這樣使用ps -e打印出來就會只有目標(biāo)應(yīng)用了。
iPhone-5:~ root# ps -e
1091 ?? 0:03.35 /var/mobile/Containers/Bundle/Application/A5960257-7E26-45EC-A28C-315FCBB15852/WeChat.app/WeChat

b.使用Cycript找出目標(biāo)應(yīng)用的 Documents 目錄路徑
用Cycript查找應(yīng)用的Documents 目錄了:命令行中輸入 cycript -p WeChat 然后在輸入NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] 命令,最后就能打印出Documents 目錄路徑了。

(??這個是我是手機上微信的Documents路徑:/var/mobile/Containers/Data/Application/05330136-5902-48C1-96A6-3C03F275DC73/Documents)
拿到我們想要的路徑后使用
Ctrl + D退出Cycript模式
c.將步驟1中生成的dumpdecrypted.dylib拷貝到目標(biāo)應(yīng)用的Documents 目錄下
打開新的終端,在終端中輸入以下命令:
$scp ~/dumpdecrypted.dylib root@192.168.2.3:/var/mobile/Containers/Data/Application/05330136-5902-48C1-96A6-3C03F275DC73/Documents
注意ip地址換成自己的手機的ip,dumpdecrypted.dylib 路徑換成你自己的路徑

*d.開始使用dumpdecrypted.dylib砸殼
Mac 終端ssh 連上 越獄設(shè)備,然后在終端上輸入以下命令:
$ cd /var/mobile/Containers/Data/Application/05330136-5902-48C1-96A6-3C03F275DC73/Documents
$ DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/A5960257-7E26-45EC-A28C-315FCBB15852/WeChat.app/WeChat


注意上條命令格式: DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib路徑 空格 目標(biāo)進(jìn)程路徑
以上命令執(zhí)行完成后,在目標(biāo)應(yīng)用的Documents目錄下生成一個WeChat.decrypted文件, 這就是砸殼后的文件。ls -l查看 Documents目錄結(jié)構(gòu)

e.將目標(biāo)應(yīng)用的Documents目錄下的WeChat.decrypted拷貝到Mac上
Mac打開新的終端,輸入以下命令:
$scp root@192.168.2.3:/var/mobile/Containers/Data/Application/05330136-5902-48C1-96A6-3C03F275DC73/Documents/WeChat.decrypted ~/dumpdecrypted

將WeChat.decrypted拷貝到Mac上 ~/dumpdecrypted 文件中。至此,iOS ipa 的整個解密流程就走下來了。下一篇文章將介紹使用class-dump 將ipa頭文件導(dǎo)出。