1.環境準備
a.越獄設備一臺,我這手上的是iPhone 5s,系統版本是8.4
b.Cycript Cycript是由Cydia創始人Saurik推出的一款腳本語言,Cycript 混合了Objective-C javascript語法的解釋器,這意味著我們能夠在一個命令中用Objective-C或者javascript,甚至兩者兼用。它能夠掛鉤正在運行的進程,能夠在運行時修改應用的很多東西。Cycript的安裝簡單,可在越獄設備上從Cydia搜索Cycript并安裝即可
c.越獄設備打卡Cydia搜索安裝OpenSSH。
d.打開Mac 終端 ,下載dumpdecrypted工具源碼,git clone dumpdecrypted
然后 cd 到dumpdecrypted
源碼所在目錄,執行make命令,編譯生成砸殼工具dumpdecrypted.dylib
。
2.砸殼,這里是以微信
為實驗對象
打開Mac終端,使用ssh鏈接到越獄設備,默認的密碼是:alpine
,這里注意要保證你的越獄設備與Mac是在同一網段內。
ssh root@設備的ip地址 (這里是一個??:ssh root@192.168.2.3)
a.使用ps
命令找出目標進程路徑
登錄上越獄設備后,在越獄設備上運行需要砸殼的對象,使用ps
命令查看進程,懂Linux的小伙伴不用我解釋了吧,不懂Google。執行ps -e
命令后終端
會顯示越獄設備當前運行的所有進程,找到需要砸殼的應用,記錄下路徑和編號。本文以微信為??:搜索微信應用名的關鍵字WeChat
,那么我是怎么知道微信應用名的呢?很簡單,把越獄設備上所有應用都關掉,只留下你想要砸殼的那個應用,這樣使用ps -e
打印出來就會只有目標應用了。
iPhone-5:~ root# ps -e
1091 ?? 0:03.35 /var/mobile/Containers/Bundle/Application/A5960257-7E26-45EC-A28C-315FCBB15852/WeChat.app/WeChat
b.使用Cycript
找出目標應用的 Documents 目錄路徑
用Cycript
查找應用的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
拷貝到目標應用的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 連上 越獄設備,然后在終端上輸入以下命令:
$ 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路徑
空格
目標進程路徑
以上命令執行完成后,在目標應用的Documents目錄下生成一個WeChat.decrypted
文件, 這就是砸殼后的文件。ls -l
查看 Documents
目錄結構
e.將目標應用的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頭文件導出。