您好,登錄后才能下訂單哦!
公司新項(xiàng)目要求抓取目前市面上一些熱門App的數(shù)據(jù),經(jīng)過研究發(fā)現(xiàn)很多App的網(wǎng)絡(luò)請求都使用https進(jìn)行數(shù)據(jù)傳輸,這樣問題就來了,http使用明文傳輸所有請求都能攔截到,而https請求無法攔截。
所以這里我們要使用Charles來抓取https,但是筆者看了網(wǎng)上很多使用iOS設(shè)備進(jìn)行抓取https的文章,經(jīng)測試iOS8/10/11均無法進(jìn)行正常抓取,即使信任證書也不行。
經(jīng)過筆者的不斷嘗試,終于在Android5.0上成功抓取了https。研究后發(fā)現(xiàn),在Android7.0以下可以正常使用Charles抓取。Android7.0以上應(yīng)該是默認(rèn)屏蔽了此種方法。
打開Charles,我這里使用的是v4.2.5版本:
安裝根證書
Mac需要設(shè)置信任證書
安裝后會(huì)彈出鑰匙串訪問界面,如圖:
在電腦端選擇安裝移動(dòng)端的證書:
選擇后會(huì)顯示IP與端口號,用于手機(jī)設(shè)置http代理:
手機(jī)的網(wǎng)絡(luò)上設(shè)置成電腦的http代理:
此時(shí)必須保證手機(jī)和電腦在同一網(wǎng)絡(luò),并且手機(jī)可以訪問電腦的ip與端口
設(shè)置完成后訪問網(wǎng)絡(luò)時(shí),服務(wù)端會(huì)彈出提示,點(diǎn)擊Allow(同意連接):
2.勾上啟動(dòng)SSL代理,并添加一個(gè)抓取規(guī)則,比如這里加上一個(gè)抓取所有https(443端口)的請求:
3.此時(shí)手機(jī)上打開https請求的應(yīng)用,應(yīng)該就可以正常看到https請求的數(shù)據(jù)了:如圖:
在我們抓取時(shí)碰到個(gè)別APP在配置代理后無法打開,這個(gè)主要是因?yàn)樵揂PP做了防止抓取處理,比如校驗(yàn)https的證書是否合法等,這種解決方法可以通過反編譯APP,查看源碼解決,難度較大。
有的APP為了防止抓取,在返回的內(nèi)容上做了層加密,所以從Charles上看到的內(nèi)容是亂碼。這種情況下也只能反編譯APP,研究其加密解密算法進(jìn)行解密。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。