Charles抓包及問題小結(jié)—iPhone及Mac,抓包看這一篇就夠了

前言

作為一名移動(dòng)應(yīng)用開發(fā)者,抓包應(yīng)該是一項(xiàng)必備技能吧,抓包工具Charles(花瓶)、Fiddler、WireShark等。

Fiddler這個(gè)軟件由于是用C#開發(fā)的,所以很依賴win平臺(tái),所以移動(dòng)開發(fā)最常用的還是Charles了,由于開發(fā)語(yǔ)言是Java,所以具有很好的跨平臺(tái)性。

WireShark是世界上最重要的網(wǎng)絡(luò)協(xié)議分析儀。它是一個(gè)網(wǎng)絡(luò)封包分析軟件,功能是擷取網(wǎng)絡(luò)封包,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包資料。它可以讓你看到發(fā)生了什么在網(wǎng)絡(luò)上在微觀層面。它是事實(shí)上的(而且往往在法律上)在許多行業(yè)和教育機(jī)構(gòu)的標(biāo)準(zhǔn)。比較底層專業(yè)。

有一段時(shí)間沒用Charles 了,也換了電腦,需要配置一下,今天下午剛好用到,就記錄一下,省得以后忘記,老解決重復(fù)的問題。

安裝過程

安裝配置過程比較簡(jiǎn)單,簡(jiǎn)單說一下,主要是記錄一下安裝使用中間遇到的問題。

Charles 官網(wǎng)
目前最新的版本就是4.6.2.

這是一款付費(fèi)軟件,免費(fèi)30天吧,以后每次運(yùn)行只能運(yùn)行30分鐘,并且還有延時(shí),呵呵,需要免費(fèi)的可以自行查找。

image.png
image.png

Mac抓包

首先,電腦安裝根證書:

image.png

打開鑰匙串,設(shè)置為始終信任。

image.png

這時(shí)打開Mac OS 代理,電腦一般就可以正常的抓包了,其實(shí)Charles安裝成功以后就可以了。

不過剛測(cè)試了,不按裝也是沒有問題的,電腦和手機(jī)依然可以抓包。
又發(fā)現(xiàn),不按照的話抓到都是亂碼的,如下:

image.png

不過發(fā)現(xiàn),這個(gè)根證書沒關(guān),是 SSL Proxying Setting 的問題,

image.png
image.png

常用的設(shè)置一下即可,不過證書最好還是安裝信任一下,不過一些APP還是攔截處理過的,想抖音啥也看不了,APP也訪問不了。

image.png

快手某些還是可以看銘文的:


image.png

小度還是正常訪問的:

image.png

手機(jī)抓包

首先要確認(rèn)手機(jī)和電腦同在一個(gè)無(wú)線網(wǎng)下,安裝很簡(jiǎn)單,和其它軟件一樣,安裝以后使用過程簡(jiǎn)單概述一下:

  1. 獲取電腦端的ip地址
  • 一種方法是直接打開網(wǎng)絡(luò)偏好設(shè)置
image.png
  • 另一種方法:直接在Charles中,點(diǎn)擊Help ->Local IP address獲取
image.png
image.png
  1. 手機(jī)配置代理
    找到手機(jī)的無(wú)線網(wǎng),點(diǎn)開右邊的標(biāo)滑到最下面,找到配置代理,點(diǎn)開選擇手動(dòng),服務(wù)器輸入第一步獲取IP,端口8888,和Charles->Proxy->Proxy Setting中端口好一致,點(diǎn)擊右上角的存儲(chǔ)。
IMG_1D42C4435C4C-1.jpeg
image.png

這時(shí)候正常的話,Charles就會(huì)出現(xiàn)下面的彈窗,點(diǎn)擊同意

image.png

Deny的話之前記得是可以在Proxy->Access control settings中添加地址的,手機(jī)和電腦的IP,現(xiàn)在每次進(jìn)入沒有的話都會(huì)彈這個(gè)窗的,拒絕的話手機(jī)的IP就刪掉了,所以必須要點(diǎn)擊Allow,手動(dòng)配置的無(wú)效,自測(cè)自認(rèn)為是這樣的。

image.png
image.png

其中還有一種情況是壓根這個(gè)彈窗就沒彈出來,首先要確認(rèn)手機(jī)和電腦是否同在一個(gè)無(wú)線網(wǎng)下,如果是一個(gè),那就重啟電腦和手機(jī),應(yīng)該可以。這一步必須要通過。

另外,如果沒有彈窗在這里安裝提示的安裝手機(jī)的證書,

image.png

那么你會(huì)發(fā)現(xiàn)這個(gè)地址 chls.pro/ssl 根本打不開,一直加載不出來,無(wú)法下載證書

image.png

可以通過官網(wǎng)的證書下載鏈接安裝:

CA證書下載鏈接:https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/

安裝完成以后有可能手機(jī)還是抓不了包,有可能提示:'iOS此服務(wù)器的證書無(wú)效。您可能正在連接到一個(gè)偽裝成“xxx.com”的服務(wù)器,這會(huì)威脅到您的機(jī)密信息的安全,如下:

image.png

證書安裝成功后,以為已經(jīng)OK了,但是打開APP會(huì)報(bào)錯(cuò),因?yàn)槠渲腥鄙俜浅V匾囊徊?,這個(gè)原因很大可能是手機(jī)的證書沒有信任,其實(shí)上面Charles的彈窗下面已經(jīng)說的很明白了,當(dāng)時(shí)只是沒有注意到

注意:

還應(yīng)該做這么一步操作:設(shè)置——通用——關(guān)于本機(jī)——證書信任設(shè)置——打開對(duì)應(yīng)證書的開關(guān),以前是沒有的,不知道是從十幾以后的系統(tǒng)就這樣了,必不可少的一步。

證書信任

完成這一步,你就大功搞成了,可以開心的去抓包了??!

后續(xù)

昨天需要抓包的時(shí)候,發(fā)現(xiàn)chls.pro/ssl** 根本打不開,之前的
CA證書下載鏈接:https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/
也是提示跳轉(zhuǎn)上面的地址,陷入死胡同了。

iPhone一直安裝不了證書,一直卡在下載這一步,無(wú)法抓包

解決方法:

先下載證書到電腦上,然后傳到手機(jī)進(jìn)行安裝

  1. 打開Charles,選擇help→SSL Proxying→Save Charles Root Certificate
image.png

保存后的文件:
charles-ssl-proxying-certificate.pem

通過隔空投送發(fā)送到手機(jī)上,然后安裝,重復(fù)上面的流程。
但是依然抓不了包,仔細(xì)看了一下,證書原來已經(jīng)過期了:

IMG_3C3660B4DC00-1.jpeg
image.png

重置證書,重新安裝信任

image.png
image.png

還是不行,重啟手機(jī),電腦

手機(jī)抓包異常

抓包異常
如果照上面的步驟都設(shè)置了,但是依然抓不了包,手機(jī)也沒有網(wǎng)絡(luò)了,這時(shí)候重啟一下手機(jī)和電腦重新開始就可以了。

其它功能擴(kuò)展

  1. 過濾掉不像看的站點(diǎn),只看某些站點(diǎn)的:
image.png
  1. 修改服務(wù)器返回內(nèi)容,mock / 模擬假數(shù)據(jù),勾選Enable Map Local 這樣跟后臺(tái)調(diào)試的時(shí)候就不用等后臺(tái)接口都完成才能調(diào)試了,只要有數(shù)據(jù)格式就可以了,自己想怎么玩就怎么玩,調(diào)試的時(shí)候大有用處,對(duì)于一些平常測(cè)試不到的情況,異常情況等都可以隨意模擬修改,這個(gè)功能很實(shí)用。
image.png

只需要本地創(chuàng)建一個(gè).json文件,和接口關(guān)聯(lián)起來即可,如:。

{
    "code": 1,
    "msg": "驗(yàn)證碼驗(yàn)證成功"
}
  1. Rewrite 功能,重寫替換后臺(tái)返回的數(shù)據(jù)
image.png

點(diǎn)擊某一項(xiàng):

image.png

隨意替換成想要的內(nèi)容。

其它功能自行探索,有時(shí)間我也探索一下,隨時(shí)更新。

后話

謝謝您的閱讀,寫這篇文章也參考了一些別人的,取眾家之長(zhǎng),補(bǔ)己之短,自己親手實(shí)踐,總結(jié)一下,有不對(duì)的地方還請(qǐng)指正。很久沒更新文章了,寫這篇博客也費(fèi)了不少時(shí)間精力,如果對(duì)你有用幫助的話,還請(qǐng)不吝打賞??。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容