Charles 使用介绍
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 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”
- Structure 视图将网络请求按访问的域名分类。
- Sequence 视图将网络请求按访问的时间排序。
对网络请求进行过滤:
方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。
方法二:在 Charles 的菜单栏选择 “Proxy”–>“Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了
方法三:在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上 Focussed
抓取Chrome数据包:需要设置代理服务器为手动,并设置端口,或者下载扩展程序
Proxy SwitchySharp,设置代理服务为手动,这样可以自动检测到charlse,不需要来回切换,如图所示
使用charles抓取手机app数据包:
要截取 手机端的网络请求,我们首先需要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”–>“Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。
在 手机端的 “ 设置 ”–>“ 无线局域网 ” 中,需要设置手机连接的wifi的「HTTP 代理」一项,我们将其切换成手动,然后填上 Charles 运行所在的电脑的 IP,以及端口号 8888
设置好之后,我们打开 手机端上的任意需要网络通讯的程序,就可以看到 Charles 弹出 手机端请求连接的确认菜单(,点击 “Allow” 即可完成设置。
如果你需要截取分析 Https 协议相关的内容。那么需要安装 Charles 的 CA 证书。具体步骤如下。
首先我们需要在 电脑上安装证书。点击 Charles 的顶部菜单,选择 “Help” –> “SSL Proxying” –> “Install Charles Root Certificate”,然后输入系统的帐号密码,即可在 KeyChain 看到添加好的证书。如下图所示:
在手机端抓取https请求时也需要安装证书,可以点击Help –> SSL Proxying –> Install Charles Root Certificate on a Mobile Device or Remote Browser,然后就可以看到 Charles 弹出的简单的安装教程,可以使用adb将安装好证书push到手机端。
提示只要设置服务代理,直接在浏览器器输入地址chls.pro/ssl 就可以下载证书
详细教程可以参考:https://www.cnblogs.com/peng-lan/archive/2004/01/13/11242954.html