Charles青花瓷抓包

這2天由於線上版本企業證書(淘寶第三方重簽名)又被蘋果封了,app打開立即閃退,然後用按照以前的操作把舊包丟給淘寶那邊重簽名,以爲事情就解決了,誰知拿回來通用-證書信任後打開還是閃退,什麼鬼,證書是好的,爲什麼還會閃退?這幾個月被蘋果封掉幾次,都是這樣操作就可以的啊,無奈,重新打包-加固-給淘寶重簽名,回來依然閃退,未加固的重簽名又能正常打開,加固了不重簽名也能正常打開,折騰了1天,客戶都說要放棄iOS了,臥槽,然後發了個區塊鏈的app鏈接過來,說他們使用的這個app今天也出現這種問題,不過很快就解決了。納尼?我不相信,然後準備看看他們使用的這個app有沒有加固,於是百度,發現通過抓包可以拿到iPa的下載地址,於是又又又折騰Charles起來,以前也用過,不過以前似乎碰到的問題少,或許是以前只是抓http的數據。抓fir的數據是https的,然後就踩了很多坑,踩到懷疑人生,還去app store花68大洋買了個抓包工具,最後沒用上,Charles還是能用了。iPa也抓到下載了,包也給反編譯了,發現沒加固,裸奔,哈哈哈,我就說嘛我不相信。最後的鍋要甩給蘋果,3月27號不知道又對開發賬號更新了啥幺蛾子。好了,記錄採坑過程,方便以後查看。

系統環境:Mac(macOS10.14) + iPhone6s(iOS12.1.4)+ Charles(v 4.2.8),都是很新的版本,Charles是最新的。

1、官網下載Mac版本青花瓷Charles,試用期是30天,打開還會彈窗10秒提示有30天試用期限,抓到數據有時點擊還會彈出來,不過懶得去破解,功能沒閹割能用就好。

https://www.charlesproxy.com/download/

來自花2不謝分享的一個註冊碼,親測Charles(v 4.2.8)可用:

Registered Name: https://zhile.io

License Key: 48891cf209c6d32bf4

2、打開Charles,Proxy Settings及SSL Proxying Settings,按照理解Proxy Settings是代理設置,允許http代理,SSL Proxying Setting是SSL協議(https傳輸基於此協議)代理,允許https代理。

http代理端口號默認是8888,下面的Enable transparent HTTP proxying要勾選上,手機發生的http請求數據纔會經過Charles。

https代理端口號默認是443,上面的Enable SSL Proxying要勾選上,手機發生的https請求數據纔會經過Charles。下面可以Add需要抓包的域名,Charles只會解密已添加域名的接口,纔回顯示明文,其他未添加的不解密依然顯示亂碼。

3、電腦連接有線網絡,手機連接wifi,查詢電腦的ip地址,help-Local IP Address

接着在手機連接的wifi裏面設置HTTP代理,選擇手動,服務器設置成電腦的ip,端口號8888,設置完成點擊存儲。意思是設置Charles成爲代理,手機發生的網絡請求都會經過Charles,數據傳輸是這樣的手機->Charles->接口所在服務器,然後數據返回是這樣子的接口所在服務器->Charles->手機。這就是Charles的作用。

4、SSL及Ca證書安裝,最坑最關鍵的就是這個了。電腦確保下載安裝CA、SSL證書並設置完全信任,一定要完全信任,否則抓到的包還是密文亂碼。安裝後在鑰匙串可以查詢到並設置信任。

接着手機安裝SSL、CA證書,這個也是很坑的,首先確保第3點設置後手機能正常訪問網絡,然後手機Safari訪問該網站下載SSL證書https://www.charlesproxy.com/assets/legacy-ssl/charles.crt(也可以關掉wifi下載,無影響),按步驟安裝並信任。接着安裝CA證書。

按字面意思是要用手機Safari訪問172.16.53:8888這個地址才能下載CA證書。按照理解訪問電腦的ip地址那麼該證書應該是電腦簽發的。然後這裏發生了很坑的事情,死活訪問不了該地址,百度查詢訪問chls.pro/ssl也是可以的,但在我這裏就就就沒用了,臥槽,此處折騰很久,導致我以爲Chales已經不能用,簡直懷疑人生。最後不知道哪裏查詢到的,訪問http://www.charlesproxy.com/getssl/這個地址可以下載安裝CA證書,不過有些地方需要注意,手機已安裝第3點設置成功並能正常訪問網絡,不要用移動網絡去訪問,好像有影響。

5、手機安裝SSL、CA證書後需要設置信任,注意通用-描述文件-已驗證(不代表已信任,此處劃重點)。設置信任在通用-關於本機-證書信任設置,這2個地方要確保已驗證+已信任,圖中Thor開頭的不關Charles的,是其他app的,忽略。

6、確保先打開Charles,再打開wifi,這樣數據才經過Charles,如果手機發生網絡請求但Charls沒顯示或者其他奇怪現象,則關閉Charles、關閉手機wifi,接着先打開Charles,再打開手機wifi。以上步驟做完就能正常抓取https的數據了。

7、嘿嘿,抓到ipa的下載地址了,注意左側域名前面要顯示成雷電圖標才表示已解密,如果還是把鎖表示未解密,展開也顯示<unknown>,裏面的數據都是亂碼的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章