Charles抓包教程


一、Charles簡介:

Charles 是在 PC 端常用的網絡封包截取工具,在做移動開發時,我們為了調試與服務器端的網絡通訊協議,常常需要截取網絡封包來分析。除了在做移動開發中調試端口外,Charles 也可以用於分析第三方應用的通訊協議。配合 Charles 的 SSL 功能,Charles 還可以分析 Https 協議。

Charles 通過將自己設置成系統的網絡訪問代理服務器,使得所有的網絡訪問請求都通過它來完成,從而實現了網絡封包的截取和分析。

Charles 是收費軟件,可以免費試用 30 天。試用期過后,未付費的用戶仍然可以繼續使用,但是每次使用時間不能超過 30 分鍾,並且啟動時將會有 10 秒種的延時。因此,該付費方案對廣大用戶還是相當友好的,即使你長期不付費,也能使用完整的軟件功能。只是當你需要長時間進行封包調試時,會因為 Charles 強制關閉而遇到影響。

二、Charles功能:
  • 截取 Http 和 Https 網絡封包。
  • 支持重發網絡請求,方便后端調試。
  • 支持修改網絡請求參數。
  • 支持網絡請求的截獲並動態修改。
  • 支持模擬慢速網絡。

三、下載安裝Charles:

打開瀏覽器訪問 Charles 官網 ,下載相應系統的 Charles 安裝包,然后安裝即可,Charles 支持的操作系統包括:

  • Windows 64 bit(msi)
  • Windows 32 bit(msi)
  • macOS(dmg)
  • Linux 64 bit(tar.gz)
  • Linux 32 bit(tar.gz)
  • Windows: 運行安裝應用程序以在程序菜單中安裝 Charles。
  • Mac OS X: 通過雙擊解壓縮下載文件,然后將 Charles 應用程序復制到 Applications 目錄中。
  • Linux: Charles 擁有 APTYUM 存儲庫,如果你有基於 Debian 或基於 Red Hat 的 Linux 發行版,這是安裝 Charles 的首選方法。否則,將 tar.gz 文件解壓縮到適當的站點。如果您以前安裝過 Charles 並且正在進行升級;首先確保 Charles 沒有運行,然后安裝或復制在以前安上。通過運行 bin/charles 腳本啟動 Charles。

如果使用 Firefox,也可以下載 Firefox 插件。參考Firefox Add-On


四、Charles主界面介紹:
 
下圖是Charles啟動運行后主界面視圖:

 

 1、Charles工具欄提供了常用的工具

  • :清除捕獲到的所有請求
  • :紅點狀態說明正在捕獲請求,灰色狀態說明目前沒有捕獲請求。
  • :灰色狀態說明是沒有開啟網速節流,綠色狀態說明開啟了網速節流。
  • :灰色狀態說明是沒有開啟斷點,紅色狀態說明開啟了斷點。
  • :編輯修改請求,點擊之后可以修改請求的內容。
  • :重復發送請求,點擊之后選中的請求會被再次發送。
  • :驗證選中的請求的響應。
  • :常用功能,包含了 Tools 菜單中的常用功能。
  • :常用設置,包含了 Proxy 菜單中的常用設置。

2、Charles 主要提供兩種查看的視圖,分別名為  Structure(網絡請求按訪問的域名分類) 和  Sequence(網絡請求按訪問的時間排序),這兩種視圖可以隨意的切換,有時候請求多了頁面看不過來了,也可以通過使用Filter功能輸入關鍵字來快速篩選出 URL 中帶指定關鍵字的網絡請求。
 
3、對於某一個具體的網絡請求,你可以查看其詳細的請求內容和響應內容。如果請求內容是 POST 的表單,Charles 會自動幫你將表單進行分項顯示。如果響應內容是 JSON 格式的,那么 Charles 可以自動幫你將 JSON 內容格式化,方便你查看。如果響應內容是圖片,那么 Charles 可以顯示出圖片的預覽。
 
4、Charles主菜單上羅列了: FileEditViewProxyToolsWindowHelp,但是用的最多的還是 ProxyTools;這就跟Fiddler抓包工具大同小異了;
 
五、Charles抓包
1、Charles抓取PC端

Charles 會自動配置瀏覽器和工具的代理設置,打開工具直接就已經是抓包狀態了。只需要保證一下幾點即可:

1)確保 Charles 處於 Start Recording 狀態。

2)勾選 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。 

 

2、Charles抓取移動端

1)首先確保手機和電腦處於同一網絡環境(一個局域網內)

 

2)電腦端配置

a)  關掉電腦端的防火牆(這點很重要)。

b)打開 Charles 的代理功能:通過主菜單打開 Proxy | Proxy Settings 彈窗,填入代理端口(端口默認為 8888,不用修改),勾選 Enable transparent HTTP proxying。

c)  如果不需要抓取電腦上的請求,可以取消勾選 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。 

 

3) 手機端配置

a)  通過 Charles 的主菜單 Help | Local IP Address 或者通過命令行工具輸入 ipconfig 查看本機的 IP 地址。

b)設置代理:打開手機端的 WIFI 代理設置,輸入電腦 IP 和 Charles 的代理端口。

 

4)設置好之后,我們打開手機上的任意需要網絡請求的程序,就可以看到 Charles 彈出手機請求連接的確認菜單(只有首次彈出),點擊 Allow 即可完成設置。

 

5)完成以上操作基本就可以進行抓包了

 

3、Charles抓取HTTPS

 HTTPS 的抓包需要在 HTTP 抓包基礎上再進行設置。需要完成一下步驟:

1)完成 HTTP 抓包配置。

2)電腦端安裝 Charles 證書:通過 Charles 的主菜單 Help | SSL Proxying | Install Charles Root Certificate 安裝證書。

3)設置 SSL 代理:通過主菜單打開 Proxy | SSL Proxy Settings 彈窗,勾選 Enable SSL proxying。

4)移動端安裝 Charles 證書:通過 Charles 的主菜單 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安裝證書。

5)設置好之后,軟件的任意網絡請求,會有 Charles 彈出手機請求連接的確認菜單(只有首次彈出),點擊 Allow 即可完成設置。

6)完成以上步驟,就可以進行 HTTPS 抓包了。 

上述第4步中的證書,網上也有現成的;“6485223a.0”是我找到的其中一個,顯示的是1.86KB;由於對博客園隨筆摸索的還不夠,所以不知道怎么上傳文件;

1)首先移動手機和電腦連接
2)win+R---輸入CMD調出命令窗口
3)adb devices 找到設備
4)adb push 6485223a.0 /system/etc/security/cacerts/(加空格,完成后設備重啟)這個路徑是我們公司的

以上push進入就完成了

注意:charles暫僅支持wifi,不支持4G;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM