使用Charles進行移動APP抓包分析

1、簡介

Charles是目前最強大最流行的http抓包調試工具,Mac、Unix、Windows各個平臺都支持。特別是作APP開發,調試與服務端的通訊,Charles是必備工具。json

目前Charles是收費的,不過能夠破解。後端

  1. Charles下載地址:http://share.weiyun.com/6bbfc169f56589052957eae710a8612a
  2. 破解方式 
    解壓charles_3.11.4_Crack.rar,將其中的charles.jar替換掉Charles安裝路徑中的charles.jar便可

2、Charles工做原理

Charles本質是就是一個http抓包分析工具,在工做的時候須要先把charles設置成代理服務器,這樣全部的網絡請求都會通過charles了。服務器

3、對移動端進行抓包分析

咱們在進行APP開發或測試時,常常須要知道APP的每一步操做調用的是哪一個接口,請求參數是什麼,返回值是什麼,做爲服務端,有時還須要對APP的某一個操做進行debug。經過簡單配置,咱們就能夠將咱們手機APP上全部請求發送到PC端Charles代理中,Charles會自動抓取http網絡包分析請求和返回值,固然這些只是Charles最基本的功能。markdown

下面就介紹如何配置Charles:網絡

  1. 手下手機和電腦必須在一個局域網內,不必定非要是一個ip段,只要是同一個路由器下就能夠了
  2. 在PC端安裝Charles,關掉防火牆,打開Charles,進入Proxy->Proxy Setting,設置http proxy代理端口:8888(通常默認設置爲這個) 
    這裏寫圖片描述
  3. 在移動端,進入無線網絡->點擊當前鏈接的wifi->代理設置->設置服務器地址和端口(各手機配置不太同樣),這裏的服務器地址就是PC端的IP地址,端口就是上面設置PC端的代理端口8888 
    這裏寫圖片描述

通過上面設置,咱們手機上的全部請求都會發送到咱們PC端指定的端口,而這個端口就是Charles的代理端口。因此,客戶端的請求和服務端的響應都會通過Charles,咱們經過Charles就能夠很方便的看到請求和響應相關的數據啦。工具

4、實際操做演示

Charles提供了兩種查看封包的視圖,分別是StructureSequencepost

1. Structure視圖將網絡請求按訪問的域名分類。
2. Sequence視圖將網絡請求按訪問的時間排序。
  • 1
  • 2
  • 3

咱們能夠在使用時根據須要隨時切換。按照上面介紹配置好,下面就開始演示啦。測試

第一步,咱們打開咱們的APP,輸入用戶名密碼,點擊登陸 
這裏寫圖片描述網站

第二步(初次使用可能要求咱們給予權限,點擊容許便可),再看咱們的Charles主界面,structure視圖中能夠看到此次操做的http請求響應信息,而且請求按域名進行了分組 
這裏寫圖片描述debug

咱們能夠切換到sequence界面,全部的請求按照請求時間進行排列: 
這裏寫圖片描述

5、Charles的其它功能

5.1 過濾功能

若是不設置過濾,手機上全部APP的網絡請求都會被解析,看起來很亂,一般狀況下,咱們只但願看到客戶端對應應用服務器的網絡請求,這時就須要對網絡請求進行過濾,只監控向指定目錄服務器上發送的請求。對於這種需求,咱們有2種辦法。

1. 在主界面的中部的Filter欄中填入須要過濾出來的關鍵字。例如咱們的服務器的地址是:`http://*.zitech.com`,那麼只須要在`Filter`欄中填入`zitech.com`便可。

2. 在Charles的菜單欄選擇`"Proxy"->"Recording Settings"`,而後選擇`Include`欄,選擇添加一個項目,而後填入須要監控的協議,主機地址,端口號。這樣就能夠只截取目標網站的封包了。以下圖所示:
  • 1
  • 2
  • 3
  • 4

這裏寫圖片描述

5.2 其它功能

1. 支持SSL代理。能夠截取分析SSL的請求。
2. 支持流量控制。能夠模擬慢速網絡以及等待時間(latency)較長的請求。
3. 支持AJAX調試。能夠自動將json或xml數據格式化,方便查看。
4. 支持AMF調試。能夠將Flash Remoting 或 Flex Remoting信息格式化,方便查看。
5. 支持重發網絡請求,方便後端調試。
6. 支持修改網絡請求參數。
7. 支持網絡請求的截獲並動態修改。
8. 檢查HTML,CSS和RSS內容是否符合W3C標準
相關文章
相關標籤/搜索