通過抓包我們可以知道APP的API請求參數(shù),我們就可以利用這些API做一些我們想做的事情。常用的抓包工具有 Flidder 和 Charles,我一般是使用 Charles,如果是HTTP抓包是非常簡單,但是HTTPS就復(fù)雜很多,而且還可能無法抓包。
HTTPS 抓包
這里介紹的是 Charles + Android 的HTTPS抓包方式,首先是要在手機(jī)上安裝 證書 才可以實(shí)現(xiàn)抓包。

Install Charles Root Certificate 是給PC端安裝證書,實(shí)現(xiàn)電腦瀏覽器HTTPS抓包。Android 是點(diǎn)擊 Install Charles Root Certificate on a Mobile Device or Remote Browser。
下載 pem 文件

在手機(jī)瀏覽器輸入 chls.pro/ssl,建議使用UC瀏覽器下載,就會(huì)提示一個(gè) pem 格式的文件。
小米手機(jī)安裝 charles 證書,提示
沒有可安裝的證書,需要使用UC瀏覽器來下載。
安裝證書
這里是以小米手機(jī)為例,打開 設(shè)置 - 更多設(shè)置 - 系統(tǒng)安全 - 加密與憑證 - 從存儲(chǔ)設(shè)備安裝;然后找到剛才下載的 pem文件目錄。

設(shè)置代理
找到電腦的IP地址,手機(jī)設(shè)置電腦的代理

設(shè)置 SSL代理

添加需要抓包的網(wǎng)址

測試
到這里就已經(jīng)配置完畢了,在手機(jī)的瀏覽器上輸入 對應(yīng)的測試網(wǎng)址就可以看到 HTTPS 抓包。
異常一(無法抓包,需要安裝系統(tǒng)級別證書)
通過手機(jī)瀏覽器的瀏覽的HTTPS頁面基本都可以抓包,但是 APP 的請求,很多都是無法抓包,主要是有兩種原因,這個(gè)就是我們安裝的證書是屬于 用戶級別,需要安裝成為系統(tǒng)級別才可以,但是必須要 ROOT 權(quán)限,之后的文章再解釋如何解決。

Failure Client SSL handshake failed: An unknown issue occurred processing the certificate (certificate_unknown)
Notes You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.

如果我們是用于APP調(diào)試,Google給出了解決方案
https://developer.android.google.cn/training/articles/security-config.html
異常二(無法抓包,APP做了證書校驗(yàn))
這種就是APP已經(jīng)做了證書的校驗(yàn),只允許通過信任的證書,所以無法實(shí)現(xiàn)抓包。
