最近遇到一個問題:支付接口調用的App Store,沒辦法抓到App Store的包,后來了解到因為App Store使用的是SSL Pinning(證書鎖定),所以沒辦法通過抓包工具直接抓到包。因此要想抓到包,必須通過安裝相應tweaks來禁止SSL Pinning。
越獄的iphone(我的機器ios9.1完美越獄) 購買連接:http://dwz.cn/65p8um
最新版ssl-kill-switch2 下載地址:http://dwz.cn/65T2Ia
1.越獄后在cydia上安裝OpenSSH

然后將下載好的 com.nablac0d3.SSLKillSwitch2_0.11.deb 傳到越獄的機器上
scp ./com.nablac0d3.SSLKillSwitch2_0.11.deb root@192.168.1.128:/var/root/
ssh默認密碼:alpine

2.安裝,dpkg -i com.nablac0d3.SSLKillSwitch2_0.11.deb
再執行 killall -HUP SpringBoard,重新啟動跳板

手機會立即重啟,重啟后進入[設置],往下拉可以發現多了一個SSL Kill Switch 2

點進去勾選按鈕,禁止證書確認。重啟下App Store,這時候就能抓到大部分App Store的包以及使用了SSL Pinning的App的包了。

3.講道理到了這一步應該就ok了,但測試發現雖然禁了SSL Pinning,但對于App Store的登錄和應用下載等操作的請求依然走不通。這時候找到這樣一篇文章:
https://nabla-c0d3.github.io/blog/2013/08/20/intercepting-the-app-stores-traffic-on-ios/

大概原因就是App Store的下載登錄等操作是在itunesstored這個進程下的,這個itunesstored進程作為守護進程在設備啟動序列中啟動順序優先于MobileSubstrate和MobileLoader,因為SSL Kill Switch作為MobileSubstrate tweaks 是沒有辦法注入到進程itunesstored。
因此想要抓登錄和下載等操作的包,必須先殺掉itunesstored進程,itunesstored作為守護進程會自啟,自啟時SSL Kill Switch就注入了itunesstored進程,就可以抓包了。
iPad-Mini:~ root# ps -ef | grep itunesstored
501 170 1 0 0:00.00 ?? 0:01.95 /System/Library/PrivateFrameworks/iTunesStore.framework/Support/itunesstored
0 432 404 0 0:00.00 ttys000 0:00.01 grep itunesstored
iPad-Mini:~ root# kill -s KILL 170
殺死進程后,重啟App Store就可以抓登錄和下載等操作的包了。

這里結束后,我遇到個奇怪的事情,就是按照上述步驟操作完后,會間歇性的抓不了登錄和下載等操作的包,但是重啟后就完全正常了。所以如果遇到間歇性異常事件,可以試試重啟一下手機。
|