抓包工具 Charles

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作。也用来检测网络安全。抓包也经常被用来进行数据截取等。

(一) Charles基本介绍

中文名:青花瓷 ,Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。

Charles 主要的功能和使用场景包括:

  1. 截取 Http 和 Https 网络封包,抓取接口请求定位问题;抓取接口请求获取接口信息做接口测试;
  2. 支持重发网络请求,方便后端调试;
  3. 支持修改网络请求参数;
  4. 支持网络请求的截获并动态修改,模拟慢速网络;

charles相当于一个插在服务器和客户端之间的“过滤器”;

当客户端向服务器发起请求的时候,先到charles进行过滤,然后charles再把最终的数据发送给服务器;

注意:此时charles发给服务器的数据,不一定是客户端请求的数据;charles在接到客户端的请求时可以自由的修改数据,甚至可以直接Block客户端发的请求;

服务器接收请求后的返回数据,也会先到charles,经过charles过滤后再发给客户端;

同理:客户端接收的数据,不一定就是服务器返回的数据,而是charles给的数据;

正因为上面的原理,所以charles能实现的功能,对前端开发者和测试人员来说非常有吸引力,相当于请求和响应都可控的,而且charles为了控制更加方面,提供很多简洁的操作;

Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

(二) Charles 使用教程

1.) 软件安装

下载

**(英文版)官方地址:**https://www.charlesproxy.com/latest-release/download.do

汉化版:https://www.52pojie.cn/thread-1600964-1-1.html

官网示例:

根据个人电脑下载适配的系统版本。下载安装包到本地之后双击charles.exe文件,一键式安装,以windows 64为例:

img

激活

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。

1. 生成激活码

Charles只有30天免费试用期,期间会提示购买激活码。网上有免费生成激活码的工具。免费生成激活码在线网址:https://www.zzzmode.com/mytools/charles/

输入自定义用户名,点击生成即可获取激活码。

img

2.激活账户

进入Charles,菜单栏help—register charles输入上个步骤中获取的用户名和激活码,点击Register即可激活。

img

img

img

参考 :https://www.cnblogs.com/shaohuang/p/17505696.html

2.) 配置与使用

默认情况下,Charles不能解析https协议的接口,所以我们需要下载ssl证书,来获取里面的数据。

为什么需要安装Charles的CA证书呢?

1)先理清一些概念的东西:

a)简单来说,https是http的安全版本,超文本传输协议http是以明文发送数据,而https是具有安全性的ssl加密传输协议,可以这么认为https=http+ssl。

b)采用https的服务器必须从CA申请一个用于证明服务器用途类型的证书,证书是唯一性,只用于对应的服务器。客户端要认可这个服务器是否是安全的,可以进行访问或者交易等操作,则需要进行对服务端的验证。

下图是客户端对服务器的验证过程:

img

c)ssl证书,遵循了ssl协议,在客户端和服务器之间建立了一条ssl安全通道,一般ssl证书都是在验证服务器身份后颁发给客户端。

d)由于ssl技术已建立在所有主要的浏览器和web服务器程序中,因此,仅需安装服务器证书就可以激活ssl协议,所以客户端通过信任该证书,就相当于信任了该主机(服务器)。

下图是客户端和服务端加密通讯的流程:

img

2)通过以上一个简单的理顺之后,这也就为什么当我们在使用Charles进行抓包的时候需要安装证书,可以通过ssl数字证书中的私用密钥来解译加密的信息,展示在Charles中,但是Charles有一个特殊的地方,就是实际上客户端安装的是Charles的CA证书,然后Charles安装服务器的CA证书,实际上流程还是一样的。

img

PC端
1.1 下载证书

点击help—ssl Proxying—install Charles Root Certificate

img

1.2 Charles安装证书

img

选中当前用户,点击下一步

img

选择受信任的根证书颁发机构

img

提示导入成功,点击确定

img

点击help—ssl Proxying—install Charles Root Certificate,显示如图表示安装证书成功

img

1.4 浏览器安装Charles证书

点击help—SSL Proxying—Save Charles Root Certificate

img

选择Cer格式文件保存到本地, 记得文件夹需要添加一个新的名称

img

到浏览器安装cer证书。以google为例,点击 设置-隐私设置与安全性-安全-管理证书,导入证书

img

img

img

1.4 Charles设置抓取https请求

点击Proxying—SSL Proxying Setting,勾选Enable SSL Proxying,在include添加*:443 和 :,点击确定。

img

1.5 查看本机ip
  1. 查看本地IP地址, 方法一 dos命令窗口( win键+R键盘-> 输入cmd)输入ipconfig 找到ipv4地

    在这里插入图片描述

  2. 方法二或者在charles中,help—Local Ip Address查看。

img

在这里插入图片描述

1.6 https的 SSL端口配置

http是默认配置好的,要是默认安装完没配置好,我们就自己配置一下,默认的端口号是“8888”我们后面设置手机代理的的时候也要注意这个端口要保持一致。

img

img

1.7 PC端抓包

harles Web抓包非常简单,启动Charles会自动与浏览器设置成代理(设置代理证书减少 unknow),不需要进行过多的设置,接下来我就就是通过浏览器发送网络请求,Charles就会直接抓取到这些信息和响应信息

  1. 确保 Charles 处于 Start Recording 状态。
  2. 勾选菜单栏 Proxy — Windows ProxyProxy —Mozilla FireFox Proxy
  3. 设置https协议配置 参考不走1.2
移动端

手机抓包的原理,和 PC 类似,手机通过把网络委托给 Charles 进行代理与服务端进行对话。具体步骤如下:

使手机和电脑在一个局域网内,不一定非要是一个 IP 段,只要是在同一个路由器下即可。

2.1 获取ip端口地址

参考pc端1.5步骤

2.2 设置手机代理

在手机设置WALN中设置,选择wifi,更改网络-高级设置-代理手动

注意端口必须与charles电脑端的保持一致

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

接下里验证下手机请求,当我们看到Charles里能抓到这个连接,就说明配置没问题,看到unknown,这个不要紧,那是我们没有安装针对手机端的证书,下面继续我们手机端HTTPS证书安装

在这里插入图片描述

2.3 手机端安装证书

通过上面的设置,虽然来自我们手机端的Http协议请求可以抓取到,但是HTTPS协议的包是不能抓取的,需要安装配置证书才可以,现在手机上大多数都已经切到https很少由http协议的了

两种方法:

  1. 方法 一 将PC端1.2上面步骤中,下载的cer文件,导入到手机中,在手机中设置-更多安全设置-加密和凭据-从存储设备安装,选择导入的cer证书文件
  2. 方法二 点击顶部菜单栏【Help】–>选择【SSL Proxying】,点击安装【Install Charles Root Certificate On a Mobile Device or Remote Browser】在移动设备上或远程浏览器安装证书,打开手机浏览器 输入 chls.pro 下载证书 安装

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.4移动设备抓包

解决-手机通过Charles连接代理无法上网,: https://www.rstk.cn/news/874978.html?action=onClick

  1. 电脑端配置:

    • 关掉电脑端的防火墙(这点很重要) 或设置可通过的软件。

    • 打开 Charles 的代理功能:通过主菜单打开 Proxy | Proxy Settings 弹窗,填入代理端口(端口默认为 8888,不用修改),勾选 Enable transparent HTTP proxying

    • 如果不需要抓取电脑上的请求,可以取消勾选 Proxy | Windows ProxyProxy | Mozilla FireFox Proxy

  2. 手机端配置:

    • 通过 Charles 的主菜单 Help | Local IP Address 或者通过命令行工具输入 ipconfig 查看本机的 IP 地址。
    • 设置代理:打开手机端的 WIFI 代理设置,输入电脑 IP 和 Charles 的代理端口。
  3. 设置好之后,我们打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。

  4. 完成以上步骤,就可以进行抓包了。

3.) 界面工具栏

工具导航栏

Charles 顶部为菜单导航栏,菜单导航栏下面为工具导航栏。视图如下图所示:

img

工具导航栏中提供了几种常用工具:

  • img :清除捕获到的所有请求
  • img :红点状态说明正在捕获请求,灰色状态说明目前没有捕获请求。
  • img :灰色状态说明是没有开启网速节流,绿色状态说明开启了网速节流。
  • img :灰色状态说明是没有开启断点,红色状态说明开启了断点。
  • img :编辑修改请求,点击之后可以修改请求的内容。
  • img :重复发送请求,点击之后选中的请求会被再次发送。
  • img :验证选中的请求的响应。
  • img :常用功能,包含了 Tools 菜单中的常用功能。
  • img :常用设置,包含了 Proxy 菜单中的常用设置。
主界面视图

Charles 主要提供两种查看封包的视图,分别名为 StructureSequence

  • Structure: 此视图将网络请求按访问的域名分类。
  • Sequence: 此视图将网络请求按访问的时间排序。

使用时可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。

对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles 可以显示出图片的预览。

Charles 菜单介绍

Charles 的主菜单包括:FileEditViewProxyToolsWindowHelp。用的最多的主菜单分别是 ProxyTools

Proxy 菜单

Charles 是一个 HTTP 和 SOCKS 代理服务器。代理请求和响应使 Charles 能够在请求从客户端传递到服务器时检查和更改请求,以及从服务器传递到客户端时的响应。下面主要介绍 Charles 提供的一些代理功能。Proxy 菜单的视图如下图所示:

img

Proxy 菜单包含以下功能:

  • Start/Stop Recording:开始/停止记录会话。
  • Start/Stop Throttling:开始/停止节流。
  • Enable/Disable Breakpoints:开启/关闭断点模式。
  • Recording Settings:记录会话设置。
  • Throttle Settings:节流设置。
  • Breakpoint Settings:断点设置。
  • Reverse Proxies Settings:反向代理设置。
  • Port Forwarding Settings:端口转发。
  • Windows Proxy:记录计算机上的所有请求。
  • Proxy Settings:代理设置。
  • SSL Proxying Settings:SSL 代理设置。
  • Access Control Settings:访问控制设置。
  • External Proxy Settings:外部代理设置。
  • Web Interface Settings:Web 界面设置。

更多界面功能介绍

借鉴文档: Charles 功能介绍和使用教程(中英文功能解析,功能解释)

问题

charles如何抓微信视频号中的视频

charles如何抓微信视频号中的视频
如何使用charles/如何下载微信视频号中的视频
(需要先了解charles软件的使用)
1.打开charles,设定端口,下载证书等。配置好,等待抓取
2.获取电脑本机的ip(该ip是你电脑上网得ip,比如wifi的,或拨号的,热点的等,要不然微信登不上)
3.打开电脑端的微信,在登录界面的右上角,点击设置,点击开启代理,输入电脑的ip,和刚刚在charles上设置的端口号。默认是8888,点击连接

在这里插入图片描述

4.连接成功后,点击登录即可
5.在手机微信上将要下载的视频号里的视频转发到好友
6.然后用电脑微信打开该视频
7.在charles中就会抓到一条

在这里插入图片描述

8.第一个视频就是需要抓取的,点击该视频,右键,点击copy URL
9.然后粘贴到浏览器中打开,就可下载该视频了
10.如果在浏览器下载下载不了,可以借助浏览器的扩展程序【猫抓】,自己百度或找我

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐