Charles 網絡抓包工具詳解與實戰指南

文章目錄

  • 導讀
  • 軟件版本
  • Charles
  • 基本原理
  • 核心功能
  • 下載及安裝
    • 界面介紹
      • 網絡包展示
    • 常用場景介紹
      • PC 端網絡抓包
      • 移動端網絡抓包
        • PC 端配置
        • 手機端配置
      • 開啟 SSL 代理
        • PC 端和移動端 CA 證書安裝
          • Charles 直接安裝
          • Charles 下載 CA 文件手動安裝
      • 常用操作
        • 請求重發
        • 請求改寫、動態改寫
        • 斷點(Breakpoint Settings)
        • DNS 欺騙(DNS Spoofing)
        • 節流 Throttle Settings(網速模擬)
      • 更多功能
  • 常見安裝問題
  • 個人簡介

導讀

  • 了解網絡抓包工具 Charles 的基本原理和核心功能,以及常用功能的使用案例。

軟件版本

  • Charles 4.6.4

Charles

  • Charles 是在 PC 端常用的網絡包抓取工具,移動端開發者可能接觸更多,Web 端使用瀏覽器開發工具或者 Postman 已經基本可以滿足我們開發中的需求,但 Charles 作為一款熱門的網絡包抓取工具,具備一些高級特性,比如請求重發、請求斷點、網速截流、DNS欺騙、動態請求重寫、請求名單限制等等,在某些場景能夠幫助我們進行更加高效的完成開發工作。

基本原理

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

企業微信截圖_16899319907819.png

核心功能

  • HTTP & HTTPS 網絡包抓取(PC端、Web端、手機端)
  • 網絡請求修改、動態修改、重發、規則重發等
  • DNS欺騙、網速模擬,支持請求白名單黑名單等。
  • 支持 Mac、Win、Linux。

下載及安裝

  • 下載及安裝比較簡單,在 Charles 官網下載最新版,直接安裝,使用下面在線激活網站生成激活碼激活即可。
  • 官網地址:https://www.charlesproxy.com/documentation/welcome/
  • 激活碼在線生成:https://www.zzzmode.com/mytools/charles/

界面介紹

企業微信截圖_16899217914191.png

網絡包展示

  • Charles 主要提供兩種查看網絡包的視圖,分別名為 Structure 和 Sequence。
Structure: 此視圖將網絡請求按訪問的域名分類。
Sequence: 此視圖將網絡請求按訪問的時間排序。

常用場景介紹

  • Charles 的功能很多,本文主要介紹一些常用的使用場景。

PC 端網絡抓包

  • 勾選 Proxy | Windows Proxy
  • 開啟 Charles 處于 Start Recording 狀態
  • 上述操作完成后,打開瀏覽器訪問,你會發現網絡請求并沒有被抓取,這是因為還沒有配置瀏覽器的代理,Charles 啟動的代理服務器如下圖所示,你可以在 windows 設置中進行配置,也可以使用瀏覽器插件進行配置,本文演示使用 Chrome 代理插件 SwitchyOmega 配置:

企業微信截圖_16899269738394.png

企業微信截圖_16899265935318.png

移動端網絡抓包

  • ++前提PC端和手機端需要在同一網絡下++
PC 端配置
  • 開啟 Charles 代理功能,代理配置 Enable transparent HTTP proxying
  • 開啟 Charles 處于 Start Recording 狀態

企業微信截圖_16899274666861.png

手機端配置
  • 通過 Charles 的主菜單 Help | Local IP Address 或者通過命令行工具輸入 ipconfig 查看本機的 IP 地址。
  • 打開手機端的 WIFI 代理設置,輸入PC IP 和 Charles 的代理端口。
  • 完成上述步驟,打開手機瀏覽器發起請求,看到 Charles 彈出手機請求連接的確認,點擊 Allow,Charles 就可以抓取網絡請求了。

開啟 SSL 代理

  • 上述步驟全部完成后,點擊發起一個請求,發現請求內容是亂碼的,其實這是因為沒有開啟 SSL 代理,這是為什么呢?
解答:猜測 + 理解不一定完全正確
這是因為沒有開啟 SSL 代理時,Charles 只是單純的轉發了客戶端和服務端的請求,無法解密客戶端和服務端建立 SSL 的通信內容。
開啟 SSL 后,Charles 和客戶端、服務端分別建立了 SSL 鏈接,并可以解密通信的內容。
因此,開啟 SSL 代理后需要 Charles 生成 CA 證書并安裝。

企業微信截圖_16899276381870.png

PC 端和移動端 CA 證書安裝
Charles 直接安裝
  • 電腦端安裝 Charles 證書:通過 Charles 的主菜單 Help | SSL Proxying | Install Charles Root Certificate 安裝證書。
    設置 SSL 代理:通過主菜單打開 Proxy | SSL Proxy Settings 彈窗,勾選 Enable SSL proxying。
  • 移動端安裝 Charles 證書:通過 Charles 的主菜單 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安裝證書。
Charles 下載 CA 文件手動安裝
  • Help | SSL Proxying | save Charles Root Certificate(移動端選擇.pem、PC端選擇.crt)

企業微信截圖_16899291019742.png

  • 上述功能都配置完成后,就可以看到如上述的正常的請求,愉快的進行 debug 。

常用操作

請求重發
  • 重新發送該請求。

企業微信截圖_16899297036663.png

請求改寫、動態改寫
  • 修改原請求并進行重新發送;根據動態規則匹配請求修改請求的請求頭或請求體。

企業微信截圖_16899296571927.png

斷點(Breakpoint Settings)
  • 可以在客戶端請求服務前以及響應時進行斷點。

企業微信截圖_16899302539605.png

企業微信截圖_1689930316684.png

DNS 欺騙(DNS Spoofing)
  • 當通過 Charles 解析 DNS 時,將使用我們配置的 DNS 進行解析。
節流 Throttle Settings(網速模擬)
  • 模擬上下行網速。

企業微信截圖_16899299777475.png

更多功能

  • 參考官網文檔:https://www.charlesproxy.com/documentation/welcome/

常見安裝問題

  • 手機端安裝證書后無法生效,重啟一下 Charles
  • Android 7.0 (API 24)之后,做了改動,使得系統安全性增加了,導致APP 默認不信任用戶域的證書,需要 root 后將證書放到系統證書。
  • 注意 PC 端 CA 證書存儲位置

10a9d6056eccbde1256ab4bde65b2e32.png
37c6c2d09c4ca1a270742ccc29c1f22e.png

  • SSL 配置好證書后仍無法正常抓取(顯示 unknown),確認一下是否已經配置 需要開啟 HTTPS 代理域名和端口

1697714675931.png

個人簡介

👋 你好,我是 Lorin 洛林,一位 Java 后端技術開發者!座右銘:Technology has the power to make the world a better place.

🚀 我對技術的熱情是我不斷學習和分享的動力。我的博客是一個關于Java生態系統、后端開發和最新技術趨勢的地方。

🧠 作為一個 Java 后端技術愛好者,我不僅熱衷于探索語言的新特性和技術的深度,還熱衷于分享我的見解和最佳實踐。我相信知識的分享和社區合作可以幫助我們共同成長。

💡 在我的博客上,你將找到關于Java核心概念、JVM 底層技術、常用框架如Spring和Mybatis 、MySQL等數據庫管理、RabbitMQ、Rocketmq等消息中間件、性能優化等內容的深入文章。我也將分享一些編程技巧和解決問題的方法,以幫助你更好地掌握Java編程。

🌐 我鼓勵互動和建立社區,因此請留下你的問題、建議或主題請求,讓我知道你感興趣的內容。此外,我將分享最新的互聯網和技術資訊,以確保你與技術世界的最新發展保持聯系。我期待與你一起在技術之路上前進,一起探討技術世界的無限可能性。

📖 保持關注我的博客,讓我們共同追求技術卓越。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165620.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165620.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165620.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt+SQLITE數據庫設計的會員卡管理系統

一、前言 本項目演示在QT中使用SQLITE數據庫存儲數據管理的過程。當前以會員卡管理系統為例,寫了一個界面,完成會員卡的注冊,添加,充值,查詢,注銷,導出顧客信息EXECL表格 等功能的實現。 演示 SQLITE數據庫的建表、增、刪、改、查等語句功能實現。 SQLite是一款輕型的…

計算機網絡——物理層相關習題(計算機專業考研全國統考歷年真題)

目錄 2012-34 原題 答案 解析 2018-34 原題 答案 解析 2009/2011-34 原題 答案 解析 2016-34 原題 答案 解析 2014-35/2017-34 原題 答案 解析 2013-34 原題 答案 解析 2015-34 原題 答案 解析 物理層的協議眾多,這是因為物理層…

為啥 有了錘子,看啥都是釘子?

壞處:有了錘子,看啥都是釘子,有何壞處? 事倍功半,甚至適得其反。比如具有高并發設計經驗的人,在初創系統初期,就設計高并發架構,其復雜度大概率無法支持試點業務快速落地&#xff0…

【DevOps】Git 圖文詳解(九):工作中的 Git 實踐

本系列包含: Git 圖文詳解(一):簡介及基礎概念Git 圖文詳解(二):Git 安裝及配置Git 圖文詳解(三):常用的 Git GUIGit 圖文詳解(四)&a…

【SpringMVC】 三層架構

一.lombok工具包 中央倉庫查找這個工具包:https://mvnrepository.com/ 給類添加Data注解就可以獲取gettter和setter方法 , 這樣我們就不必寫getter 和 setter 方法. 也可以給成員屬性添加單獨的getter 和 setter , 針對某個成員屬性單獨添加setter或setter方法. 二.如果使用spr…

ORACLE手動建庫

1.確定oracle的實例名,以及數據庫名 實例名稱: ORACLE_SIDtest 數據庫名稱: test 2.手工創建如下目錄: /oracle/admin/test/adump --對應的是spfile里參數audit_file_dest …

一起學docker系列之七docker容器卷技術

目錄 1 為什么使用容器數據卷?2 數據卷的特點和優勢3 使用數據卷的方法3.1 創建容器并掛載數據卷3.2 容器間數據卷的共享與繼承 4 數據卷的權限設置5 注意事項5.1 解決權限問題5.2 路徑自動創建 結語 對于容器化應用程序的數據管理和持久化,Docker 數據卷…

鏈表的回文結構

題目描述 題目鏈接:鏈表的回文結構_牛客題霸_牛客網 (nowcoder.com) 題目分析 我們的思路是: 找到中間結點逆置后半段比對 我們可以簡單畫個圖來表示一下: ‘ 奇數和偶數都是可以的 找中間結點 我們可以用快慢指針來找中:l…

如何實現圖片輪播(python版)

為了實現圖片自動輪播,我們可以使用Python編寫一個簡單的腳本。首先,我們需要安裝一個名為Pillow的庫來處理圖片。在命令行中輸入以下命令進行安裝: pip install Pillow 接下來,我們編寫一個名為image_slideshow.py的腳本&#x…

leetcode.884——字符串分割(substr),哈希(unordered_map)的練習

884. 兩句話中的不常見單詞 句子 是一串由空格分隔的單詞。每個 單詞 僅由小寫字母組成。 如果某個單詞在其中一個句子中恰好出現一次,在另一個句子中卻 沒有出現 ,那么這個單詞就是 不常見的 。 給你兩個 句子 s1 和 s2 ,返回所有 不常用…

成為AI產品經理——模型構建流程(下)

目錄 1.模型訓練 2.模型驗證 3.模型融合 4.模型部署 上節課我們講了模型設計、特征工程,這節課我們來講模型構建剩下的三個部分:模型訓練、模型驗證和模型融合。 1.模型訓練 模型訓練就是要不斷地訓練、驗證、調優直至讓模型達到最優。 那么怎么達…

Python“牽手”京東商品詳情接口運營場景,京東商品詳情接口調用指南

京東商品詳情接口是一種程序化的接口,通過這個接口,商家或開發者可以使用自己的編程技能,獲取京東平臺上的商品詳細信息。這個接口允許商家根據自身的需求,獲取商品的標題、價格、促銷價、優惠券、庫存、銷量、詳情圖片、SKU屬性、…

YOLOv5分割訓練,從數據集標注到訓練一條龍解決

最近進行了分割標注,感覺非常好玩,也遇到了很多坑,來跟大家分享一下,老樣子有問題評論區留言,我會的就會回答你。 第一步:準備數據集 1、安裝標注軟件labelme如果要在計算機視覺領域深入的同學&#xff0…

TC397 EB MCAL開發從0開始系列 之 [15.2] Fee配置 - QsBlock demo

一、Fee配置1、配置目標2、目標依賴2.1 硬件使用2.2 軟件使用2.3 新增模塊3、EB配置3.1 配置講解3.2 模塊配置3.2.1 MCU配置3.2.2 PORT配置3.2.3 Fls_17_Dmu配置3.2.4 Fee配置3.2.5 Irq配置3.2.6 ResourceM配置4、ADS代碼編寫及調試4.1 工程編譯4.2 測試結果4.3 測例源碼->

基于STC12C5A60S2系列1T 8051單片讀寫掉電保存數據IIC總線器件24C02一字節并顯示在液晶顯示器LCD1602上應用

基于STC12C5A60S2系列1T 8051單片讀寫掉電保存數據IIC總線器件24C02一字節并顯示在液晶顯示器LCD1602上應用 STC12C5A60S2系列1T 8051單片機管腳圖STC12C5A60S2系列1T 8051單片機I/O口各種不同工作模式及配置STC12C5A60S2系列1T 8051單片機I/O口各種不同工作模式介紹IIC通信簡單…

致遠M3 反序列化RCE漏洞復現(XVE-2023-24878)

0x01 產品簡介 M3移動辦公是致遠互聯打造的一站式智能工作平臺,提供全方位的企業移動業務管理,致力于構建以人為中心的智能化移動應用場景,促進人員工作積極性和創造力,提升企業效率和效能,是為企業量身定制的移動智慧…

15.Python 異常處理和程序調試

1. 異常處理 異常就是在程序執行過程中發生的超出預期的事件。一般情況下,當程序無法正常執行時,都會拋出異常。 在開發過程中,由于疏忽或考慮不周,出現的設計錯誤。因此,在后期程序調試中應該根據錯誤信息&#xff…

系統高可用設計-有感

文章目錄 系統設計原則是 冗余 取舍系統運維的原則是規避線上異常 高可用設計通常從 系統設計和 系統運維 2 個層面來著手突破。 系統設計原則是 冗余 取舍 冗余:指集群部署 故障轉移取舍:常見手段包括:超時控制、降級、限流 系統運維…

音視頻項目—基于FFmpeg和SDL的音視頻播放器解析(二十)

介紹 在本系列,我打算花大篇幅講解我的 gitee 項目音視頻播放器,在這個項目,您可以學到音視頻解封裝,解碼,SDL渲染相關的知識。您對源代碼感興趣的話,請查看基于FFmpeg和SDL的音視頻播放器 如果您不理解本…

springboot(ssm災害應急救援平臺 應急管理平臺Java(codeLW)

springboot(ssm災害應急救援平臺 應急管理平臺Java(code&LW) 開發語言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服務器:tomcat 數據庫:mysql 5.7(或8.0&#x…