發現了一款有趣的app,發現是https,導致不能看到其資料結構和加密方式是不是很捉急呢??? 本人做軟體測試已經有5年的歷史,那麼在平時的開發中有沒有好用的抓包軟體呢?有的,那就是Charles(本人說一聲抱歉,無論是開發iOS還是Android 都是一直使用的mac 所以我僅僅是介紹一下mac 的工具)
Charles是一款Http代理伺服器和Http監視器,當移動端在無線網連線中按要求設定好代理伺服器,使所有對網路的請求都經過Charles客戶端來轉發時,Charles可以監控這個客戶端各個程式所有連線網際網路的Http通訊。注:本人自己實踐抓http /https 協議,socket我沒有抓過。
一、安裝Charles客戶端 開啟瀏覽器訪問Charles官網 連結,下載相應系統的Charles安裝包,然後一鍵安裝即可。
charles官網介紹
image
當然您也可以下載我曾經使用的版本(建議您支援正版)破解版本下載連結密碼:mxhb
Charles提供兩種檢視封包的頁籤,一個是Structure,另一個是Sequence,Structure用來將訪問請求按訪問的域名分類,Sequence用來將請求按訪問的時間排序。任何程式都可以在Charles中的Structure視窗中看到訪問的域名。
目錄1.1 Charles主要的功能 1.2 將 Charles 設定成系統代理 1.3 過濾網路請求 1.4 模擬慢速網路 1.5 修改網路請求內容 1.6 修改伺服器返回內容 1.7 抓取手機App網路請求
1.1Charles主要的功能1.擷取Http、Https網路請求內容
2.支援修改網路請求引數,方便除錯
3.支援網路請求的擷取 並動態修改
charles選單項介紹
image
1.2將 Charles 設定成系統代理我們在除錯移動APP時,需要抓取APP傳送的資料包,首先進行設定,Proxy -> Proxy Settings預設埠是8888,根據實際情況可修改(建議不要更改,因為在工作中會有很多人需要連結您的電腦)。
設定代理選項
image
代理伺服器埠設定
image
進行https的抓包
在mac上安裝證書 help -> SSL Proxying -> install Charles Root Certificate image在keychain上進行證書信任,開啟keychain 點選 鍵入keychain image在keychain中 點選login->Certificates,右擊(兩個手指頭點下),進行任意來源信任 image本機安裝證書
image
匯出證書匯出p.12檔案 image5.通過airdrop 或者其他方式安裝到手機上,注意這還沒有完,需要在settig general->about->Certificate Trust Settings 進行證書的信任開啟,否則不能抓http://127.0.0.1/vhost/conf/img_echo.php?w=640&h=526&src=https image安裝代理伺服器證書
image
在手機上設定相關的代理,主要此時需要關閉自己的vpn,否則沒有辦法抓包 image現在大功告成了嗎?如果抓http的包早已經大功告成,但是如果抓https的還有一步呢
Proxy->SLL Proxy Settings image1.3 過濾網路請求在Filter 欄中填入需要過濾出來的關鍵字(可模糊搜尋) imagefocus 僅僅是關注自己關注的 image過濾自己想要的ip
image
1.4 模擬慢速網路在 Charles 的選單上,選擇Proxy ->Throttle Setting->Enable Throttling 如果我們只想模擬指定網站的慢速網路,可以再勾選上圖中的 “Only for selected hosts” 項即可。
網路延時模擬
image
1.5 修改網路請求內容
請求重新發起
image
1.6 修改伺服器返回內容首先 要保證是開啟請求斷點是開啟的 選擇要修改的介面內容 ,勾選Breakpoints 開啟青花瓷切換成結構頁面,切換成Structure
修改伺服器內容
image
請求成功的例項
image
1.7 抓取相關的資料介面協議在charles中的一些簡單介紹
image
http://127.0.0.1/vhost/conf/img_echo.php?w=640&h=518&src=https抓包正確顯示