Charles是一款移動(dòng)端抓包工具,這款軟件相比起burp,charles具有界面簡(jiǎn)單直觀,易于上手,數(shù)據(jù)請(qǐng)求控制容易,修改簡(jiǎn)單,抓取數(shù)據(jù)的開(kāi)始暫停方便等等優(yōu)勢(shì)!Charles通過(guò)將自己設(shè)置成系統(tǒng)的網(wǎng)絡(luò)訪問(wèn)服務(wù)器,使得所有的網(wǎng)絡(luò)訪問(wèn)請(qǐng)求都通過(guò)它來(lái)完成,從而實(shí)現(xiàn)了網(wǎng)絡(luò)封包的截取和分析。
使用方法:
下面是pc端的抓包使用情況 Charles支持抓去http、https協(xié)議的請(qǐng)求,不支持socket。
然后charles會(huì)自動(dòng)配置IE瀏覽器和工具的代理設(shè)置,所以說(shuō)打開(kāi)工具直接就已經(jīng)是抓包狀態(tài)了。 這里打開(kāi)百度抓包下,工具界面和相關(guān)基礎(chǔ)功能如下圖所示:
上圖中的7個(gè)位置是最常用的幾個(gè)功能。
1 那個(gè)垃圾桶圖標(biāo),功能是clear,清理掉所有請(qǐng)求顯示信息。
2 那個(gè)望遠(yuǎn)鏡圖標(biāo),功能是搜索關(guān)鍵字,也可以使用ctrl+f實(shí)現(xiàn),可以設(shè)置搜索的范圍。
3 圓圈中間紅點(diǎn)的圖標(biāo),功能是領(lǐng)抓去的數(shù)據(jù)顯示或者不顯示的設(shè)置。 這個(gè)本人認(rèn)為是charles工具很方便的一個(gè)兩點(diǎn),一般都使其為不顯示抓去狀態(tài),只有當(dāng)自己測(cè)試的時(shí)候的前后,在令其為抓取并顯示狀態(tài)。這樣可以快準(zhǔn)狠的獲取到相關(guān)自己想要的信息,而不必在一堆數(shù)據(jù)請(qǐng)求中去尋找。
4 編輯修改功能,可以編輯修改任意請(qǐng)求信息,修改完畢后點(diǎn)擊Execute就可以發(fā)送一個(gè)修改后的請(qǐng)求數(shù)據(jù)包。
5 抓取的數(shù)據(jù)包的請(qǐng)求地址的url信息顯示。
6 抓取的數(shù)據(jù)包的請(qǐng)求內(nèi)容的信息顯示。
post請(qǐng)求可以顯示form形式,直觀明了。
7 返回?cái)?shù)據(jù)內(nèi)容信息的顯示。
其中5、6、7中都有各種形式的數(shù)據(jù)顯示形式,其中raw是原始數(shù)據(jù)包的狀態(tài)。
顯示模式:
charles抓包的顯示,支持兩種模式,Structure和Sequence,其優(yōu)點(diǎn)分別如下。
Structure形式如下圖 優(yōu)點(diǎn):可以很清晰的看到請(qǐng)求的數(shù)據(jù)結(jié)構(gòu),而且是以域名劃分請(qǐng)求信息的,可以很清晰的去分析和處理數(shù)據(jù)。
Sequence形式如下圖 優(yōu)點(diǎn):可以很清晰的看到全部請(qǐng)求,不用一層一層的去點(diǎn)開(kāi),這里是以數(shù)據(jù)請(qǐng)求的順序去執(zhí)行的,也就是說(shuō)那個(gè)請(qǐng)求快就在前面顯示。
具體要說(shuō)兩種形式哪個(gè)更好,這個(gè)就是見(jiàn)仁見(jiàn)智了。本人比較喜歡第二種,粗礦豪放!
常見(jiàn)問(wèn)題:
1 為什么下載了不能用?打不開(kāi)啊。
因?yàn)閏harles是需要java環(huán)境才能運(yùn)行的,需要先安裝java環(huán)境才可以。
2 為什么我用著用著就自動(dòng)關(guān)閉了?大概30分鐘就會(huì)關(guān)閉一次。
因?yàn)閏harles如果沒(méi)有注冊(cè)的話,每次打開(kāi)后就只能喲個(gè)30分鐘,然后就會(huì)自動(dòng)關(guān)閉,所以最好在使用前先按照說(shuō)明去進(jìn)行工具的注冊(cè)操作。
3 為什么我在操作的時(shí)候有時(shí)候就直接工具就界面卡住死了,關(guān)都關(guān)不掉,只能用任務(wù)管理器才可以關(guān)掉?
這個(gè)的確是charles這個(gè)工具的一個(gè)bug,開(kāi)始用的時(shí)候,我也很惡心,而且經(jīng)常悲劇,但是現(xiàn)在也有相應(yīng)的解決辦法了,下面那樣操作就可以了。
首先隨便抓些包,要求有圖片的請(qǐng)求。
然后選中一個(gè)圖片的請(qǐng)求,然后分別點(diǎn)擊 Response - Raw 然后那里會(huì)加載其中的內(nèi)容,然后加載完畢后,再去隨便操作就可以了,就不會(huì)在悲劇的直接工具卡死掉了。。。
4 為什么用了charles后,我就上不了網(wǎng)頁(yè)了,但是qq可以。
因?yàn)槿绻鹀harles是非正常狀態(tài)下關(guān)閉的話,那么IE的代理就不會(huì)被自動(dòng)取消,所以會(huì)導(dǎo)致這種情況。
解決辦法:
第一種:直接打開(kāi)charles,然后再正常關(guān)閉即可。 第二種:去將IE瀏覽器代理位置的勾選去掉。
5 為什么我用charles不能抓到socket和https的數(shù)據(jù)呢?
首先,charles是不支持抓去socket數(shù)據(jù)的。 然后,如果抓不到https的數(shù)據(jù)的話,請(qǐng)查看你是不是沒(méi)有勾選ssl功能。 Proxy - Proxy Settings - SSL 設(shè)置
6 為什么我用charles抓取手機(jī)APP,什么都是配置正確的,但是卻抓不到數(shù)據(jù)。
首先,請(qǐng)確保電腦的防火墻是關(guān)閉狀態(tài),這個(gè)很重要。
如果,防火墻關(guān)了還是不行,那么請(qǐng)把手機(jī)wifi斷掉后重新連接,這樣一般就可以解決問(wèn)題了。 如果以上方法還是不行的話,那么請(qǐng)將手機(jī)wifi位置的ip地址設(shè)置成靜態(tài)ip,然后重啟charles工具。
7 抓包后發(fā)現(xiàn)form中有些數(shù)據(jù)顯示是亂碼怎么辦?
請(qǐng)?jiān)赗aw模式下查看,Raw模式顯示的是原始數(shù)據(jù)包,一般不會(huì)因?yàn)榫幋a問(wèn)題導(dǎo)致顯示為亂碼。
8 我用charles抓手機(jī)app的數(shù)據(jù),但是同時(shí)也會(huì)抓去到電腦端的數(shù)據(jù),可以設(shè)置嗎?
可以,設(shè)置位置在Proxy - Windows Proxy ,勾選表示接收電腦的數(shù)據(jù)抓包,如果只想抓去APP的數(shù)據(jù)請(qǐng)求,可以不勾選此功能。
9 為什么我用IE可以抓到數(shù)據(jù),但是用360或者谷歌瀏覽器就不行?
請(qǐng)確保360或者谷歌的代碼設(shè)置中是不是勾選設(shè)置的是 使用IE代理。
10 想要復(fù)制粘貼某些數(shù)據(jù)的話,怎么辦,右鍵沒(méi)有相應(yīng)功能。
請(qǐng)直接使用Ctrl +C 和 Ctrl+V 即可。