Charles抓包Android應(yīng)用Https

1.前言

以前剛接觸Android時(shí)候用過(guò)Fiddler抓包api學(xué)習(xí)。轉(zhuǎn)眼幾年過(guò)去了,現(xiàn)在有需要用到抓包,再用回Fiddler發(fā)現(xiàn)不太好用,大部分Https都是提示Tunnel To還有443,看不到接口調(diào)用和數(shù)據(jù)。
朋友推薦Charles,今天就學(xué)習(xí)了一下,寫(xiě)個(gè)文章總結(jié)和記錄。

2.Charles

Charles是一款收費(fèi)的抓包工具,但是安裝之后,默認(rèn)有30天試用期。付費(fèi)的區(qū)別是,無(wú)期限限制,打開(kāi)程序不用等10s(故意惡心免費(fèi)用戶的?/狗頭)。

目前提供win64,macOS,Linux64版本。

3.安裝

官網(wǎng) 下載并安裝程序。本人使用Win10,后面都以Win10為例。
安裝過(guò)程沒(méi)什么好說(shuō)的,選擇安裝位置,一直下一步到結(jié)束。

題外話,雖說(shuō)大天朝雖然目前網(wǎng)絡(luò)環(huán)境漸漸正版化,但是發(fā)現(xiàn)這個(gè)軟件還有一些提供破解的/手動(dòng)狗頭。這個(gè)破解比較暴力,手速快點(diǎn)1min不到,就替換個(gè)Charles.jar文件。后面的 鏈接 與我無(wú)關(guān),希望下次用的時(shí)候這個(gè)網(wǎng)址別404了,各位下手輕點(diǎn)。

4.一些配置

打開(kāi)程序之后,默認(rèn)會(huì)開(kāi)啟 Windows proxy,抓取 windows 的訪問(wèn)請(qǐng)求。如果想只抓取手機(jī)的可以在 Proxy->proxy setting->Windows 中關(guān)閉默認(rèn)啟用。

5.抓包手機(jī)Https(Android )

5.1 安裝根證書(shū)

help->SSL Proxy->Install Charles Root Certificate,選擇 安裝證書(shū) ,一直到下一步到到安裝完成。

5.1 手機(jī)上安裝證書(shū)

步驟

  1. 在windows的Charles程序中, help->SSL Proxy->Install Charles Root Certificate on a Mobile Device or Remote Browser
    提示內(nèi)容的意思是,確認(rèn)手機(jī)使用Charles的代理(主機(jī)地址:端口號(hào)),然后訪問(wèn) chls.pro/ssl 去下載并安裝證書(shū)。

    提示內(nèi)容

  2. 按照提示內(nèi)容操作,首先電腦和手機(jī)在同一個(gè)局域網(wǎng)中,也就是電腦和手機(jī)連接同一個(gè)網(wǎng)絡(luò)??梢赃B接相同的Wifi,或者電腦用網(wǎng)線,手機(jī)用wifi但是確保是同一個(gè)網(wǎng)絡(luò)。

  3. 手機(jī) 已連接的wifi 設(shè)置中,設(shè)置手動(dòng)代理,代理內(nèi)容在第一步的提示框中給出了。填入電腦主機(jī)地址和端口號(hào)即可。

  4. 設(shè)置完代理后,會(huì)在windows端Charles得到手機(jī)連接提示,選擇 Allow 允許!
    如果手快點(diǎn)了 Deny 拒絕,在Charles的 Proxy->Proxy Setting 中更改端口號(hào),然后重啟Charles,手機(jī)重新配置一下手動(dòng)代理的端口號(hào),就會(huì)重新得到提示。

    連接提示,別人的圖

  5. 手機(jī)瀏覽器訪問(wèn) chls.pro/ssl ,下載證書(shū)文件。我下載的文件名是 charles-proxy-ssl-proxying-certificate.pem,點(diǎn)擊會(huì)提示安裝證書(shū)。
    在MIUI12中點(diǎn)擊文件沒(méi)識(shí)別出證書(shū),需要到 設(shè)置->密碼與安全->系統(tǒng)安全->加密與憑證,然后選擇 從存儲(chǔ)設(shè)備安裝,找到你下載的證書(shū)的文件路徑地址,選擇證書(shū),就會(huì)執(zhí)行安裝操作。安裝后,在 設(shè)置->密碼與安全->系統(tǒng)安全->加密與憑證->信任的憑證->用戶 能夠看到剛剛安裝的的證書(shū)。

5.2 Charles的SSL代理設(shè)置

Charles進(jìn)入 Proxy -> SSL Proxying Settings 中,勾選 Enable SSL Proxy ,填入 Host 目標(biāo)域名,和 Port端口號(hào)。

  • 可以在 Host填入 *,端口號(hào)填入 443,表示抓取所有Https(443端口)的請(qǐng)求。
  • 或者可以在監(jiān)控窗口,看到地址后,右鍵選擇 Enable SSL Proxying,就會(huì)自動(dòng)添加到設(shè)置中了。

值得一說(shuō)的是,在側(cè)邊的 Notes 還非常有人性化的提示,我就是根據(jù)這個(gè)提示設(shè)置了的。

手動(dòng)添加

5.3 關(guān)于Android7.0+的Https都是Unkown

這是由于Android7.0+的Https啟用了SSL驗(yàn)證,需要繞過(guò)該驗(yàn)證才能正確抓取。解決也簡(jiǎn)單 Xpose + JustTrustMe。由于現(xiàn)在的手機(jī)基本都不給Root,所以不建議使用 Xpose 了,改為 VirtualXpose。
使用也簡(jiǎn)單,步驟

  1. 先從 官網(wǎng) 下載 VirtualXpose的apk安裝包。
    注意:0.19.0以上版本只支持安裝64位應(yīng)用(安裝目標(biāo)app時(shí)如果是32位會(huì)提示不支持),若你的應(yīng)用是32位,需要安裝下面的0.18.2版本。
  2. 然后到 Github 上下載 JustTrustMe 的apk安裝包,這個(gè)是 Xpose 框架,用來(lái)繞過(guò)Android的 SSL 機(jī)制。
  3. 在Android手機(jī)上安裝VirtualXpose的apk和 JustTrustMe的apk。
  4. 打開(kāi)VirtualXpose,在設(shè)置中,克隆 JustTrustMe 和 需要抓包的應(yīng)用。
  5. 設(shè)置的框架中勾選 JustTrustMe,然后到設(shè)置中重啟 VirtualXpose ,讓框架生效。
  6. 打開(kāi)需要抓包的應(yīng)用,就可以在Charles中抓到Https請(qǐng)求了。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容