Charles的使用

Charles,抓包利器,不僅能抓HTTP,還能抓HTTPS,當(dāng)然并不是所有的HTTPS都能抓到,簡(jiǎn)單試了一下,HTTPS中簡(jiǎn)書的數(shù)據(jù)抓不到,開源中國的數(shù)據(jù)是可以的,下面就針對(duì)Mac環(huán)境下對(duì)iPhone(iOS 11)上的數(shù)據(jù)抓取簡(jiǎn)單介紹一下Charles的使用。

本文主要涉及以下幾個(gè)步驟:

  • 下載Charles
  • 配置Charles
  • 手機(jī)設(shè)置代理
  • 手機(jī)端安裝證書并信任
  • Charles針對(duì)某個(gè)域名設(shè)置HTTPS配置
  • 重新發(fā)送請(qǐng)求,拿到數(shù)據(jù)
  • 抓取某個(gè)域名下的數(shù)據(jù)
  • 模擬慢網(wǎng)
  • 網(wǎng)絡(luò)請(qǐng)求斷點(diǎn)
  • 網(wǎng)絡(luò)請(qǐng)求重發(fā)
  • 其它

下載

首先下載 Charles(土豪可以直接購買,小白就下載個(gè)破解版吧),給個(gè)百度云鏈接: 密碼:fitm,版本為4.1.4,直接安裝就行,已破解。

配置

安裝后會(huì)提示是否允許Charles進(jìn)行控制,點(diǎn)擊允許,具體界面就不貼了(已經(jīng)安裝過,就提示一次)。文字都是抽象的,看圖說話:

  • 打開Charles,在Proxy中分別針對(duì)Proxy SettingSSL Proxying Settings進(jìn)行設(shè)置:
    1、設(shè)置代理.png
  • 端口號(hào)可以為8888、9999等等,手機(jī)代理設(shè)置時(shí)要與此端口保持一致
2、HTTP設(shè)置.png
  • 這個(gè)地方可以添加需要攔截的HTTPS相應(yīng)的域名,端口一般都是443,如果怕填錯(cuò)或者不準(zhǔn)確,可以按圖14進(jìn)行設(shè)置
    3、HTTPS設(shè)置.png
  • 這個(gè)是在Charles中的help進(jìn)行設(shè)置的,圖少截了一部分,安裝證書并進(jìn)行信任
    4、Mac安裝證書.png

    5、檢查證書是否信任.png

    6、信任證書.png

手機(jī)設(shè)置代理

  • 保證手機(jī)與電腦連接的是同一個(gè)Wifi,手機(jī)設(shè)置代理:
7、找到Wifi列表.jpeg

8、配置代理.jpeg
9、找到Wifi的Ip地址.png

10、設(shè)置服務(wù)器和端口.jpeg

手機(jī)端安裝證書并信任

  • 然后Safari打開手機(jī)證書安裝地址:http:\charlesproxy.com/getssl/,會(huì)出現(xiàn)如下界面,直接點(diǎn)擊安裝,注意:手機(jī)打開這個(gè)地址的時(shí)候要保證代理已經(jīng)設(shè)置完成,否則證書下載不了

    11、安裝手機(jī)證書.png

  • 下載完成后對(duì)證書進(jìn)行信任,這個(gè)地方需要注意的是之前是在通用-->描述文件與設(shè)備管理中對(duì)證書進(jìn)行信任,現(xiàn)在又增加了一項(xiàng),在關(guān)于本機(jī)-->證書信任設(shè)置中也要對(duì)證書進(jìn)行設(shè)置,否則無法抓取HTTPS的內(nèi)容

    12、設(shè)備管理進(jìn)行信任.jpeg

    13、關(guān)于本機(jī)進(jìn)行信任.jpeg

針對(duì)域名進(jìn)行SSL代理設(shè)置

  • 回到Charles,對(duì)要請(qǐng)求的地址進(jìn)行SSL設(shè)置(如果第2步?jīng)]做的話,已做過請(qǐng)忽略)


    14、允許SLL代理.png
  • 重新請(qǐng)求數(shù)據(jù),就能抓取包內(nèi)容


    15、抓取數(shù)據(jù).png

抓取某個(gè)域名下的數(shù)據(jù)

現(xiàn)在數(shù)據(jù)是抓取到了,但是我們發(fā)現(xiàn)一個(gè)問題,當(dāng)你打開一個(gè)app的時(shí)候,可能會(huì)進(jìn)行很多不相干的請(qǐng)求,比如用的一些第三方,或者蘋果自己的或者其他的一些請(qǐng)求,這些請(qǐng)求都不是我們所需要的,但他們都擠在了左側(cè)這個(gè)本來就不大的列表中,顯然我們只需要特定域名下的數(shù)據(jù),那么我們就需要過濾一下。在Charles的設(shè)置中有一個(gè)Recording選項(xiàng),用于記錄攔截到的所有的請(qǐng)求,默認(rèn)是將所有攔截到的請(qǐng)求都記錄在了左側(cè)列表中,我們可以設(shè)置進(jìn)行過濾,只要我們特定的請(qǐng)求:

記錄設(shè)置.png

include中添加Add,在跳出的界面上填上相應(yīng)的Host、Port,如果有需要還可以添加Path、Query,圖為我添加的開源中國的地址
添加.png

添加2.png

這是我過濾后的列表界面,可以看到只有開源中國的數(shù)據(jù),其他的就不顯示了:


過濾后.png

模擬慢網(wǎng)

還是看圖吧:


網(wǎng)絡(luò)限制設(shè)置入口.png
詳細(xì)設(shè)置.png

想要多慢,自己調(diào)吧。

斷點(diǎn)

Charles還有一個(gè)很強(qiáng)大的功能,就是斷點(diǎn)調(diào)試,可以在網(wǎng)絡(luò)請(qǐng)求發(fā)出前和返回后進(jìn)行攔截,查看、編輯發(fā)出請(qǐng)求和返回的參數(shù),這樣與后臺(tái)調(diào)試時(shí)就特別方面,傳遞的參數(shù)有什么問題,或者后臺(tái)返回的數(shù)據(jù)有問題,一清二楚,誰也賴不了賬:

  • 首先對(duì)想要攔截的地址先發(fā)一次請(qǐng)求,然后在該地址上右鍵,選則Breakpoints,然后清空左側(cè)列表,重新發(fā)送請(qǐng)求,該請(qǐng)求過來時(shí)就能攔截到了:

    選中相應(yīng)地址.png

  • Edit Request對(duì)請(qǐng)求進(jìn)行編輯

    攔截請(qǐng)求.png

  • 修改請(qǐng)求中操作的空間就很大,這是很強(qiáng)大的地方,可以修改、增加參數(shù),修改地址、header等,修改完成后點(diǎn)擊Excute執(zhí)行:
    修改請(qǐng)求.png

    當(dāng)網(wǎng)絡(luò)返回?cái)?shù)據(jù)后也是一樣的道理,可以對(duì)返回的數(shù)據(jù)進(jìn)行修改,不再贅述。

網(wǎng)絡(luò)請(qǐng)求重發(fā)

我們?cè)诤秃笈_(tái)調(diào)試接口的時(shí)候,很多情況下都會(huì)需要調(diào)用同一個(gè)接口多次,如果我們?cè)谑謾C(jī)界面上去觸發(fā),特別是層級(jí)較深時(shí)會(huì)浪費(fèi)很多時(shí)間,效率很低,但Charles強(qiáng)大的網(wǎng)絡(luò)重發(fā)就幫我們解決了這個(gè)問題,在需要發(fā)送的地址上右鍵,點(diǎn)擊Repeat就可以直接發(fā)送請(qǐng)求,而且參數(shù)都是一樣的。

Snip20171021_29.png

其它

再寫兩個(gè)功能,請(qǐng)求重定向和內(nèi)容替換:

  • 重定向:可以重定向網(wǎng)絡(luò)請(qǐng)求
  • 內(nèi)容替換:可以替換后臺(tái)返回的數(shù)據(jù),這樣可以修改后臺(tái)返回的數(shù)據(jù)來達(dá)到測(cè)試我們app的異常處理等,不細(xì)說,有需要的可以取研究:
重定向和內(nèi)容替換.png

Charles是一個(gè)很強(qiáng)大的工具,寫了這么多,也只是冰山一角,且學(xué)且珍惜吧。


PS:這個(gè)圖確實(shí)有點(diǎn)多昂...

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 簡(jiǎn)介 Charles其實(shí)是一款代理服務(wù)器,通過成為電腦或者瀏覽器的代理,然后截取請(qǐng)求和請(qǐng)求結(jié)果達(dá)到分析抓包的目的。...
    EitteTL閱讀 1,298評(píng)論 1 1
  • 簡(jiǎn)介 Charles其實(shí)是一款代理服務(wù)器,通過成為電腦或者瀏覽器的代理,然后截取請(qǐng)求和請(qǐng)求結(jié)果達(dá)到分析抓包的目的。...
    FITZ9311閱讀 382,246評(píng)論 63 445
  • 下載地址 本文介紹的是最新的Charles工具4.0.1,下載方式和破解的jar在 這里(http://downl...
    mwenhua閱讀 1,066評(píng)論 0 0
  • 首先,設(shè)置手機(jī)的網(wǎng)絡(luò)連接電腦共享wifi,同時(shí)設(shè)置端口號(hào); 其次,涉及到https抓包時(shí),需要設(shè)置手機(jī)安裝和信任s...
    番薯大佬閱讀 3,773評(píng)論 1 5
  • 順便替朋友做推廣: Bukit Indah cafe出頂, 全部工具家私冷氣櫥柜都是新的, 50千虧本出頂, 業(yè)主...
    Kanari_Ryo閱讀 262評(píng)論 0 0

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