最近遇到一个问题:支付接口调用的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就可以抓登录和下载等操作的包了。
这里结束后,我遇到个奇怪的事情,就是按照上述步骤操作完后,会间歇性的抓不了登录和下载等操作的包,但是重启后就完全正常了。所以如果遇到间歇性异常事件,可以试试重启一下手机。
|