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