iOS Charles抓包也是博大精深

Charles這個(gè)工具我想對(duì)于Android和iOS開(kāi)發(fā)的小伙伴來(lái)說(shuō)并不陌生,很多從機(jī)構(gòu)學(xué)習(xí)的小伙伴做項(xiàng)目都是利用chares這個(gè)工具去獲取數(shù)據(jù),從而構(gòu)成APP的,而且它也是測(cè)試工程師喜愛(ài)的工具缭贡。對(duì)于了解Charles炉擅,我們首先想到的幾個(gè)問(wèn)題應(yīng)該就是:

  1. 什么是Charles?
  2. Charles這個(gè)工具如何配置環(huán)境和安裝阳惹?
  3. Charles能為我們做什么谍失?

什么是Charles?

Charles,天朝的iOS兄弟也把它叫做青花瓷,是一個(gè)HTTP代理服務(wù)器,HTTP監(jiān)視器,反轉(zhuǎn)代理服務(wù)器莹汤,當(dāng)瀏覽器連接Charles的代理訪問(wèn)互聯(lián)網(wǎng)時(shí)快鱼,Charles可以監(jiān)控瀏覽器發(fā)送和接收的所有數(shù)據(jù)。它允許一個(gè)開(kāi)發(fā)者查看所有連接互聯(lián)網(wǎng)的HTTP通信纲岭,這些包括request, response和HTTP headers (包含cookies與caching信息)抹竹。該軟件是用Java寫(xiě)的,能夠在Windows止潮,Mac窃判,Linux上使用。

Charles這個(gè)工具如何配置環(huán)境和安裝喇闸?

官網(wǎng)下載:https://www.charlesproxy.com/download/
免費(fèi)版下載:http://xclient.info/search/s/charles/

Charles安裝包可以分為兩種:一種是官網(wǎng)正版的袄琳,但是它只有30天的試用期,過(guò)了三十天沒(méi)過(guò)30分鐘就得重新打開(kāi)一次燃乍。另外一種是破解版跨蟹,網(wǎng)上流傳的Charles破解版只有4.0一下版本的,雖然可以解決30天試用期的問(wèn)題橘沥,但是卻不能更新最新版本的Charles窗轩,這個(gè)用戶體驗(yàn)也不優(yōu)秀∽兀總的來(lái)說(shuō)痢艺,小編還是建議下最新版的官方版本撬呢,這樣更加perfect誉碴!

如何進(jìn)行抓包?

對(duì)于抓包而言,我們需要分類(lèi)討論,分為真機(jī)和模擬器兩種情況。

1.真機(jī)抓包

網(wǎng)上講解真機(jī)抓包的過(guò)程很多,小編在這里帶大家過(guò)一遍谓罗,還是很so easy的刻蚯。
首先讨便,對(duì)Charles進(jìn)行配置:

菜單:Proxy -> Proxy Settings... -> 勾選 Enable transparent HTTP proxying


image.png

然后找到電腦的局域網(wǎng)IP地址:這里自己去找吧,我就不贅述了梳凛。

接著叛溢,打開(kāi)你的iPhone:設(shè)置 -> Wifi -> 連接上和電腦同一路由器的Wifi塑悼,點(diǎn)擊右邊的 i 進(jìn)入配置

配置:拉到底部,找到 <HTTP代理>, 選擇手動(dòng), 服務(wù)器填入電腦的IP地址楷掉,端口號(hào)寫(xiě) 8888 然后返回會(huì)刷新Wifi連接

image.png

此處配置完成后厢蒜,Charles會(huì)彈出提示框,

大意是:有人請(qǐng)求連接Charles ip是xxx.xxx.xxx.xxx是否允許烹植?

這里要注意0哐弧!草雕!Charles的默認(rèn)選項(xiàng)是Deny拒絕巷屿,所以一定不要按回車(chē)!6蘸纭嘱巾! 手動(dòng)選擇Allow!=氲觥旬昭!

到此,即可正常抓取iPhone的連接菌湃。

繼續(xù)

回到Charles问拘,進(jìn)行證書(shū)安裝:
Charles菜單:Help -> SSL Proxying -> Install Charles Root Certificate 點(diǎn)擊后自動(dòng)打開(kāi)鑰匙串訪問(wèn),請(qǐng)輸入電腦開(kāi)機(jī)密碼


image.png

完成后你會(huì)看見(jiàn)兩個(gè)證書(shū):


image.png

雙擊證書(shū)惧所,打開(kāi)證書(shū)詳情:展開(kāi)信任 -> 使用此證書(shū)時(shí):修改為 始終信任场梆,關(guān)閉證書(shū)詳情要求輸入開(kāi)機(jī)密碼


image.png

兩個(gè)證書(shū)都設(shè)置為始終信任。

接著纯路,安裝手機(jī)端的證書(shū):

回到Charles或油,菜單:Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser

image.png

點(diǎn)擊后會(huì)彈出對(duì)話框,大意是:配置你的設(shè)備來(lái)使用Charles驰唬,證書(shū)下載地址:chls.pro/ssl


image.png

打開(kāi)手機(jī)Safari顶岸,訪問(wèn)下載地址:chls.pro/ssl (如果我們顯示的不同,則以提示中的地址為準(zhǔn))

正常情況下訪問(wèn)此地址會(huì)請(qǐng)求安裝一個(gè)配置文件叫编。若無(wú)請(qǐng)求請(qǐng)檢查Wifi是否設(shè)置了 HTTP代理 (參考配置圖:設(shè)置 -> Wifi -> i -> HTTP代理 手動(dòng))辖佣。


image.png

點(diǎn)擊安裝:

image.png

網(wǎng)上很多教程到這就結(jié)束了,但返回Charles會(huì)發(fā)現(xiàn)還是無(wú)法正常抓取HTTPS的請(qǐng)求搓逾。

其實(shí)還有一個(gè)設(shè)置卷谈,信任證書(shū):

打開(kāi)iPhone設(shè)置:通用 -> 關(guān)于手機(jī) -> 拉到最底部 證書(shū)信任設(shè)置 -> 勾選剛剛安裝的證書(shū)


image.png

最后
完成上面操作,最后再設(shè)置下SSL Proxying 霞篡,就可以利用 Charles 抓包 https 請(qǐng)求了世蔗。

  • 選擇 Charles 菜單中:Proxy -> SSL Proxying Settings...*
    
image

作者:Maxdon
鏈接:http://www.reibang.com/p/e26151084add
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有端逼。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處污淋。

好了顶滩,到了這里,我相信你一定可以愉快的獲取數(shù)據(jù)了寸爆。

2.模擬器抓包

網(wǎng)上大部分都是描寫(xiě)如何用真機(jī)去抓包礁鲁,但是小編今天要講的是如何用模擬器去抓包,因?yàn)樵陂_(kāi)發(fā)當(dāng)中如果用真機(jī)去抓包赁豆,還得去設(shè)置代理仅醇,當(dāng)你不用的時(shí)候,還得關(guān)掉代理魔种,這個(gè)體驗(yàn)不優(yōu)秀着憨。當(dāng)然了,如果你是測(cè)試工程師务嫡,這個(gè)你就不用看了甲抖,因?yàn)槟銢](méi)有蘋(píng)果電腦,也沒(méi)有模擬器心铃,??????准谚!

如果你安裝了Charles,發(fā)現(xiàn)模擬器抓不了數(shù)據(jù)去扣,你可以從以下三個(gè)方向去找原因:
情況1:沒(méi)有安裝模擬器證書(shū)

解決:charles->Help -> Install Cahrles CA SSL Certificatein iOS Simulators (charles 3.9.3以上)


image.png

情況2:同時(shí)使用了其他的網(wǎng)絡(luò)代理柱衔,產(chǎn)生沖突,charles無(wú)法抓取數(shù)據(jù)


image.png

情況3:就是你沒(méi)有打開(kāi)macOS Proxy愉棱,這個(gè)問(wèn)題小編晚上研究了幾個(gè)小時(shí)都沒(méi)找出原因唆铐,后來(lái)無(wú)意中點(diǎn)了一下發(fā)現(xiàn)是這個(gè)原因造成的,一場(chǎng)烏龍奔滑,烏龍0瘛!朋其!
屏幕快照 2018-06-13 上午11.38.23.png

chares主要能為我們做什么王浴?

主要功能

  • 支持SSL代理∶吩常可以截取分析SSL的請(qǐng)求氓辣。
  • 支持流量控制「を荆可以模擬慢速網(wǎng)絡(luò)以及等待時(shí)間(latency)較長(zhǎng)的請(qǐng)求钞啸。
  • 支持AJAX調(diào)試。可以自動(dòng)將json或xml數(shù)據(jù)格式化体斩,方便查看梭稚。
  • 支持AMF調(diào)試∷段穑可以將Flash Remoting 或 Flex Remoting信息格式化哨毁,方便查看枫甲。
  • 支持重發(fā)網(wǎng)絡(luò)請(qǐng)求源武,方便后端調(diào)試。
  • 支持修改網(wǎng)絡(luò)請(qǐng)求參數(shù)想幻。
  • 支持網(wǎng)絡(luò)請(qǐng)求的截獲并動(dòng)態(tài)修改粱栖。
  • 檢查HTML,CSS和RSS內(nèi)容是否符合W3C標(biāo)準(zhǔn)脏毯。

應(yīng)用一: 過(guò)濾網(wǎng)絡(luò)請(qǐng)求
1.方法一:Filter 欄–>過(guò)濾關(guān)鍵字
2.方法二:在 Charles 的菜單欄選擇
Proxy –> Recording Settings –>Include –> add( 依次填入?yún)f(xié)議+主機(jī)地址+端口號(hào)闹究,實(shí)現(xiàn)只截取目標(biāo)網(wǎng)站的封包 )

image.png

3.方法三:在想過(guò)濾的網(wǎng)絡(luò)請(qǐng)求上右擊,選擇 “Focus”食店,在 Filter 欄勾選上 Focussed


image.png

應(yīng)用二: 截取 Https 通訊信息
1.安裝證書(shū)
“Help” –> “SSL Proxying” –> “Install Charles Root Certificate” –> 輸入系統(tǒng)的帳號(hào)密碼渣淤,即可在 KeyChain 看到添加好的證書(shū)。
Charles 默認(rèn)也并不截取 Https 網(wǎng)絡(luò)通訊的信息吉嫩,若想對(duì)截取某網(wǎng)站上所有 Https 網(wǎng)絡(luò)請(qǐng)求价认,在該請(qǐng)求上右擊選擇 SSL proxy

image.png
image.png
  • 2.截取移動(dòng)設(shè)備中的 Https 通訊信息
  • 2.1 Help –> SSL Proxying –> Install Charles Root Certificate on a Mobile Device or Remote Browser
  • 2.2 在手機(jī)瀏覽器中訪問(wèn)地址:「http://charlesproxy.com/getssl
image.png

注意:默認(rèn)情況下 Charles 并不做截取,你還需要在要截取的網(wǎng)絡(luò)請(qǐng)求上右擊自娩,選擇 SSL proxy 菜單項(xiàng)

3.補(bǔ)充一點(diǎn)
還要進(jìn)入 設(shè)置->關(guān)于本機(jī)→證書(shū)信任設(shè)置
打開(kāi)相關(guān)的開(kāi)關(guān)

應(yīng)用三: 模擬慢速網(wǎng)絡(luò)
1.選擇 Proxy –> Throttle Setting –>勾選上 Enable Throttling –> 選擇Throttle Preset 類(lèi)型


image.png

2.若只想模擬指定網(wǎng)站的慢速網(wǎng)絡(luò)用踩,再勾選圖中的 Only for selected hosts 項(xiàng),然后在對(duì)話框的下半部分設(shè)置中add指定的 hosts 項(xiàng)

對(duì)于弱網(wǎng)這個(gè)忙迁,還是比較重要脐彩,當(dāng)你的網(wǎng)絡(luò)無(wú)法某種環(huán)境的時(shí)候,你是需要利用一些工具去模擬的姊扔,經(jīng)得起各種臨界環(huán)境測(cè)驗(yàn)的App才是優(yōu)質(zhì)App惠奸。

總結(jié)

為什么小編要突然想起來(lái)要寫(xiě)這篇文章,是因?yàn)槟沁呁砩衔一厝ネ蝗话l(fā)現(xiàn)我家里電腦的模擬器抓不了包恰梢,但是我公司電腦模擬器是可以抓包晨川,這就意味著之前這個(gè)問(wèn)題遇到過(guò),解決了删豺,只是想不起來(lái)是如何解決的共虑,一整晚都在找各種方法,問(wèn)題沒(méi)解決呀页,覺(jué)還沒(méi)睡好妈拌。所以當(dāng)大家遇到一個(gè)比較好問(wèn)題,解決了的同時(shí),還要及時(shí)做好一些筆記去歸納去總結(jié)尘分,這樣下次很快就可以解決猜惋,不用浪費(fèi)太多時(shí)間。知識(shí)只有不斷的自我歸納培愁,才能形成良好的體系著摔。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市定续,隨后出現(xiàn)的幾起案子谍咆,更是在濱河造成了極大的恐慌,老刑警劉巖私股,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摹察,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡倡鲸,警方通過(guò)查閱死者的電腦和手機(jī)供嚎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)峭状,“玉大人克滴,你說(shuō)我怎么就攤上這事∮糯玻” “怎么了劝赔?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)羔巢。 經(jīng)常有香客問(wèn)我望忆,道長(zhǎng),這世上最難降的妖魔是什么竿秆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任启摄,我火速辦了婚禮,結(jié)果婚禮上幽钢,老公的妹妹穿的比我還像新娘歉备。我一直安慰自己,他們只是感情好匪燕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布蕾羊。 她就那樣靜靜地躺著,像睡著了一般帽驯。 火紅的嫁衣襯著肌膚如雪龟再。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天尼变,我揣著相機(jī)與錄音利凑,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛哀澈,可吹牛的內(nèi)容都是我干的牌借。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼割按,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼膨报!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起适荣,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤现柠,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后束凑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體晒旅,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡栅盲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年汪诉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谈秫。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扒寄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拟烫,到底是詐尸還是另有隱情该编,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布硕淑,位于F島的核電站课竣,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏置媳。R本人自食惡果不足惜于樟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拇囊。 院中可真熱鬧迂曲,春花似錦、人聲如沸寥袭。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)传黄。三九已至杰扫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間膘掰,已是汗流浹背章姓。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人啤覆。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓苍日,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親窗声。 傳聞我的和親對(duì)象是個(gè)殘疾皇子相恃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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

  • 簡(jiǎn)介 Charles 是在 Mac 下常用的網(wǎng)絡(luò)封包截取工具,在做 移動(dòng)開(kāi)發(fā)時(shí)笨觅,我們?yōu)榱苏{(diào)試與服務(wù)器端的網(wǎng)絡(luò)通訊協(xié)...
    faunjoe閱讀 747評(píng)論 0 0
  • 必須用海綿一樣的眼神 去觸碰殷紅的呼吸 不要驚動(dòng)空氣 或許遺忘拦耐,或不想談起 荒島上長(zhǎng)出的影子 像黃金般沉默 從槍口...
    蕭竺閱讀 184評(píng)論 0 1
  • 三國(guó)題材是影視劇的大熱題材,但也是影視劇的“雷區(qū)”所在见剩。畢竟小說(shuō)《三國(guó)演義》在中國(guó)老少皆知杀糯,里面的人物早已定格化、...
    郭鳴睿閱讀 1,037評(píng)論 0 1
  • 記得以前是一過(guò)完中秋節(jié)就念叨著自己生日了苍苞,找爺爺要點(diǎn)吃的固翰,奶奶燒的豐盛的飯菜,外婆給的零花錢(qián)羹呵,就一天過(guò)得好開(kāi)心骂际,好...
    清炒蝦仁閱讀 156評(píng)論 0 0
  • 前天去了姨媽家,吃到了姨媽親自做的大包子冈欢!真是好好吃呀歉铝!自從工作了,去姨媽家的次數(shù)明顯減少了凑耻,每次都是匆匆去太示,...
    斜杠小孩閱讀 234評(píng)論 0 0