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