2020.02.13 更新
請(qǐng)使用下邊新的版本,安裝流程跟之前大體一致,但是有幾個(gè)地方要注意
(1)官網(wǎng)下載Charles(推薦):
https://www.charlesproxy.com/download/
(2)百度網(wǎng)盤下載:
- CharlesV4.2.dmg安裝包百度網(wǎng)盤:
鏈接:https://pan.baidu.com/s/1ONkVLqRmKlqIvo_N_pGkvg 密碼:wn7a
- 破解文件Charles.jar百度網(wǎng)盤:
鏈接:https://pan.baidu.com/s/1yPtZm_kwQnl3uwaYUff4aA 密碼:z7jn
2、安裝完成,F(xiàn)inder/應(yīng)用程序/Charles——顯示包內(nèi)容,將路徑Contents/Java/charles.jar文件替換為下載的破解文件charles.jar
3缆巧、配置Charles:
1)打開(kāi)Charles軟件,配置Http代理(勾選了SOCKS roxy僵刮,可以截獲到瀏覽器的http訪問(wèn)請(qǐng)求):
2)配置SSL代理:
首先在charles的 Proxy選項(xiàng)選擇SSL Proxy Settings:
點(diǎn)add添加需要監(jiān)視的域名掸冤,支持 *號(hào)通配符怯疤,端口一般都是443:
3)為手機(jī)設(shè)置代理:
iPhone:設(shè)置->無(wú)線局域網(wǎng)->連接電腦所在WiFi->?->配置代理->手動(dòng)->服務(wù)器(可通過(guò)Charles-Help-Local IP Address或打開(kāi)網(wǎng)絡(luò)偏好設(shè)置查看)->端口:8888
Android:設(shè)置->無(wú)線和網(wǎng)絡(luò)->WLAN->連接電腦所在WiFi->長(zhǎng)按WIFI名稱->修改網(wǎng)絡(luò)->顯示高級(jí)選項(xiàng)->代理:手動(dòng)->服務(wù)器主機(jī)名->服務(wù)器端口
4)安裝根證書(shū):
電腦端根證書(shū)安裝扣泊,Help->SSL Proxying->Install Charles Root Certificate:
鑰匙串訪問(wèn)信任證書(shū)設(shè)置——選擇“始終信任”:
安裝SSL證書(shū)到手機(jī)設(shè)備:
點(diǎn)擊 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser近范,如下圖所示:
顯示如下彈窗:
iPhone:Safari瀏覽器輸入網(wǎng)址chls.pro/ssl下載證書(shū)并安裝,安裝完成后延蟹,設(shè)置->通用->關(guān)于本機(jī)->證書(shū)信任設(shè)置->針對(duì)根證書(shū)啟用完全信任(iOS10以上版本需啟用评矩,否則無(wú)法抓取https包)
注意,安裝后如果發(fā)現(xiàn)接入網(wǎng)絡(luò)失敗,是因?yàn)檫€差一步
對(duì)于 iOS 10.3以上的手機(jī)需要設(shè)置證書(shū)信任:點(diǎn)擊 通用 -> 關(guān)于本機(jī) -> 證書(shū)信任設(shè)置 -> 選擇 Charles 的證書(shū)打開(kāi)。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
一阱飘、安裝Charles
下載地址:https://github.com/OwenJoe/Charles4.0.1.git
破解教程:
1.打開(kāi)dmg鏡像斥杜,將“Charles.app”拖入應(yīng)用程序中;
2.打開(kāi)應(yīng)用程序—右鍵“Charles.app”顯示包內(nèi)容—Contents—Java
3.將dmg鏡像包內(nèi)的“charles.jar”替換覆蓋到第二步的Java文件夾中沥匈;
4.打開(kāi)“Charles.app”蔗喂,等待30秒,菜單欄中找到“Help”—“Register…”高帖,輸入任意信息完成注冊(cè)缰儿;
5.Have done!
二棋恼、使用
1.http抓包
1.1 現(xiàn)在我們默認(rèn)是在進(jìn)行iOS開(kāi)發(fā)返弹,首先確保iPhone和Mac是在同一個(gè)局域網(wǎng)下(連同一個(gè)WiFi)。然后查看Mac的IP地址(打開(kāi)網(wǎng)絡(luò)偏好設(shè)置即可看到)爪飘,假設(shè)我的IP地址為:192.168.1.2. 然后進(jìn)入iPhone义起,進(jìn)行HTTP代理設(shè)置,從關(guān)閉改為手動(dòng)师崎,在服務(wù)器位置輸入剛才Mac的IP地址默终。在端口位置輸入8888.如圖:
1.2 然后就可以開(kāi)始進(jìn)行抓包了。打開(kāi)Charles犁罩,會(huì)彈出是否允許齐蔽,選擇Allow即可。然后在iPhone上打開(kāi)你要抓包的App床估,在Charles上就會(huì)看到抓包結(jié)果:
2.https抓包
由于需要抓https包含滴,看到網(wǎng)上說(shuō)的挺簡(jiǎn)單的,然后按照說(shuō)明配置了一下丐巫,結(jié)果不行谈况,然后整個(gè)人都方了
首先先來(lái)看電腦如何配置:
電腦需要先安裝證書(shū),而且還需要一直信任才可以
必須為加號(hào)递胧,不能為紅色的叉碑韵,否則是不行的
電腦安裝完了,然后需要手機(jī)安裝缎脾,這里需要如此如此祝闻。。遗菠。联喘。
點(diǎn)擊后出來(lái)一下彈窗,然后需要在收的瀏覽器輸入相應(yīng)地址辙纬,需要先把代理設(shè)置好
然后開(kāi)始配置ssl
*:443就可以了
2.3 經(jīng)過(guò)以上步驟耸袜,就可以進(jìn)行Https抓包了。其他操作過(guò)程同http抓包牲平。
注意:當(dāng)你抓包結(jié)束后堤框,就要去iPhone里把網(wǎng)絡(luò)的HTTP代理關(guān)閉,否則可能會(huì)造成無(wú)法上網(wǎng)的情況纵柿。
三蜈抓、抓包結(jié)果詳解
3.1 http抓包結(jié)果
如果按照上面的過(guò)程配置好后,在手機(jī)上使用任意應(yīng)用請(qǐng)求網(wǎng)絡(luò)后(注意一定要用真機(jī)才可以)昂儒,就會(huì)得到http請(qǐng)求的抓包結(jié)果沟使,如下圖:
左側(cè)是顯示結(jié)構(gòu):Structure是樹(shù)狀結(jié)構(gòu)顯示,Sequence是水平結(jié)構(gòu)顯示渊跋。兩者基本類似腊嗡,我以樹(shù)狀結(jié)構(gòu)來(lái)進(jìn)行介紹着倾。左側(cè)的樹(shù)狀結(jié)構(gòu)是我進(jìn)行網(wǎng)絡(luò)請(qǐng)求的url鏈接,每一個(gè)層級(jí)表示了以“/”隔開(kāi)的子域名燕少。通過(guò)上述的代碼也可以看到我GET請(qǐng)求的url鏈接是:
https://api.maoyan.com/mmdb/search/movie/hotmovie/list.json
右側(cè)是詳情頁(yè)卡者,其中第一個(gè)Overview是概覽。我對(duì)一些字段進(jìn)行介紹:
(1)URL:我進(jìn)行網(wǎng)絡(luò)請(qǐng)求的鏈接客们;
(2)Status:當(dāng)前狀態(tài)崇决,complete表示請(qǐng)求完成;
(3)Responce Code:返回碼底挫。不同的接口恒傻,不同的請(qǐng)求結(jié)果,返回碼都不同建邓;
(4)Protocol:使用的協(xié)議盈厘;
(5)Method:請(qǐng)求方式,如GET請(qǐng)求官边,POST請(qǐng)求等扑庞;
(6)Kept Alive:判斷當(dāng)前是否正在鏈接(活躍);
(7)Content-Type:發(fā)送的內(nèi)容類型拒逮,如這里用的是XML文本罐氨,以UTF8的方式發(fā)送;
(8)Client Address:客戶端的IP地址滩援;
(9)Remote Address:遠(yuǎn)程服務(wù)器的IP栅隐;
Timing:
(10)Request Start Time:請(qǐng)求開(kāi)始的時(shí)間;
(11)Request End Time:請(qǐng)求結(jié)束的時(shí)間玩徊;
(12)Response Start Time:返回開(kāi)始的時(shí)間租悄;
(13)Response End Time:返回結(jié)束的時(shí)間;
Size:
(14)Request Header :請(qǐng)求的頭部大卸鞲ぁ泣棋;
(15)Request Header:返回的頭部大小畔塔;
(16)Request : 請(qǐng)求發(fā)送的大刑侗病;
(17)Response:返回?cái)?shù)據(jù)的大谐憾帧把敢;
(18)Total:所有數(shù)據(jù)大小谅辣;
(19)Request Compression :請(qǐng)求壓縮修赞;
(20)Response Compression: 返回壓縮;
第二個(gè)頁(yè)面"Request"是關(guān)于請(qǐng)求發(fā)送的桑阶。下面的Headers柏副,Query String,Raw勾邦。
(1)Headers:發(fā)送請(qǐng)求的頭部信息;
(2)Query String:發(fā)送參數(shù)列表割择;
(3)Raw:發(fā)送的原生數(shù)據(jù)眷篇,包括了頭部和參數(shù);
右側(cè)的"Response"的是關(guān)于所有返回信息的锨推。
(1)Headers:是返回的頭部信息铅歼;
(2)Text:返回信息(除去頭部)后的文本公壤;
(3)Hex:返回信息的16進(jìn)制表示换可;
(4)XML:我返回的數(shù)據(jù)是XML。如果你返回的是JSON厦幅,這里就會(huì)顯示JSON沾鳄;
(5)XML Text:如果你返回JSON,這里會(huì)顯示JSON Text确憨;
(6)Raw:返回的所有原生數(shù)據(jù)译荞,包括頭部;
"Summary"里面是發(fā)送數(shù)據(jù)的一些簡(jiǎn)要信息休弃。
"Chart"是一些簡(jiǎn)要信息的圖表表示吞歼。
Charles頂部的一些常用的工具欄做一個(gè)介紹:
(1)New Session:新建一個(gè)會(huì)話。也就是在一個(gè)新的Charles界面查看網(wǎng)絡(luò)情況塔猾;
(2)Open Session:打開(kāi)一個(gè)之前保存的會(huì)話篙骡;
(3)Close the current Session:關(guān)閉當(dāng)前的會(huì)話;
(4)Save the current Session:保存當(dāng)前的會(huì)話丈甸;
(5)Clear the current Session:清空當(dāng)前的會(huì)話(比較方便糯俗,常用);
(6)Find Text in the current session:相當(dāng)于查找功能睦擂;
3.2 https抓包結(jié)果
由于目前iOS9更改了對(duì)于https網(wǎng)絡(luò)的安全機(jī)制得湘,所以還需要在iPhone上安裝一個(gè)證書(shū),安裝方式如下:
在iPhone的Safari瀏覽器中直接輸入網(wǎng)址:http://www.charlesproxy.com/getssl 顿仇。進(jìn)行安裝Custom Root證書(shū).安裝完成之后可以進(jìn)入設(shè)置-->通用-->描述文件淘正,里面可以看到你所有安裝的證書(shū)。到目前為止臼闻,對(duì)于https抓包跪帝,至少已經(jīng)安裝了兩個(gè)證書(shū)了,第一個(gè)也就是在前面安裝的些阅。
現(xiàn)在打開(kāi)iPhone的任意一個(gè)App伞剑,查看抓包結(jié)果:
其中http打頭的都是通過(guò)http抓包生成的;https打頭的則是通過(guò)https抓包生成的市埋。如果你沒(méi)有配置好https抓包黎泣,那么https前面的是一把鎖恕刘,抓包成功的才是顯示藍(lán)色小球。
某一個(gè)https抓包結(jié)果如下:一些關(guān)于使用方式抒倚、參數(shù)的介紹同http抓包褐着。
============================================
參考鏈接:
http://blog.csdn.net/hjs89/article/details/51260137
http://blog.csdn.net/qq_23195583/article/details/52087189