1.1Charles 介绍

 Charles 可以在Windows,Mac下进行网络数据抓包,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。
        Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。
Charles 主要的功能包括:
    截取 Http 和 Https 网络封包。
    支持重发网络请求,方便后端调试。
    支持修改网络请求参数。
    支持网络请求的截获并动态修改。
    支持模拟慢速网络。

Charles安装:https://www.charlesproxy.com/download/,下载完需要破解,官网最新版本是4.5.6

下载好之后可以到https://www.zzzmode.com/mytools/charles/,选择自己下载的版本进行破解,将生成的jar文件拷贝到安装目录下;替换本地charles.jar文件

替换本地charles.jar文件,windows系统位置:Charles\lib\charles.jar  macOS: Java/charles.jar

1.2Charles 使用

  设置代理:
  如果是mac系统
  选择菜单中的"Proxy" –>"Mac OS X Proxy" 来将 Charles 设置成系统代理。
  windows系统:
  选择菜单中的"Proxy" –> "windows Proxy" 来将 Charles 设置成系统代理。
在抓取Chrome 和 Firefox 数据包时,需要设置代理服务器为手动
查看Charles的默认端口是8888,可以查看本地的ip地址,在help->local ip address可以查看本机ip,注意是电脑自身分配的ip是惟一的(或者在命令行输入ipconfig查看ip地址)

charles带锁 charles charles_代理服务器

                                            

charles的主界面:

charles带锁 charles charles_charles带锁_02

Charles常用按钮:

charles带锁 charles charles_代理服务器_03

Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”

  1. Structure 视图将网络请求按访问的域名分类。
  2. Sequence 视图将网络请求按访问的时间排序。

对网络请求进行过滤:

方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。

方法二:在 Charles 的菜单栏选择 “Proxy”–>“Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了

方法三:在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上 Focussed 

charles带锁 charles charles_charles带锁_04

抓取Chrome数据包:需要设置代理服务器为手动,并设置端口,或者下载扩展程序

Proxy SwitchySharp,设置代理服务为手动,这样可以自动检测到charlse,不需要来回切换,如图所示

charles带锁 charles charles_网络请求_05