前言

之前我们讲到过fiddler(https://www.cnblogs.com/zichliang/p/16067941.html),wireshark(https://www.cnblogs.com/zichliang/p/17477251.html)

今天我们来讲讲另一款跨平台的抓包软件——Charles

Charles简介

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

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

除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。

后面可以通过某些手段去除掉这十秒的等待时间。但即使你不付费也依然可以正常使用完整功能。

这里贴上官网:https://www.charlesproxy.com/

破解地址:https://www.zzzmode.com/mytools/charles/

下载与安装Charles

直接打开上文官网



接着选择我们对应的系统即可



这里可以看到charles支持的系统比较多。这也是相对于fiddler比较良好的一点。

安装下来直接傻瓜式安装即可。

Charles的配置

移动端用charles抓包,先在电脑上安装charles软件。然后添加相关配置。

proxy settings

SSL proxying settings



为了可以进行https的抓包,一般需要配置一下ssl proxying settings。在菜单栏Proxy -> SSL proxying settings, 勾选Enable SSL Proxying,并添加location配置,如下:

安装证书

Charles的界面介绍

首先我们打开charles简单看看整个页面



可以看到 大体分为三个部分

菜单栏



工具栏



主界面



而主界面又分以下几个部分

左侧:



右侧:

菜单栏和工具栏

菜单栏

File:

  • new session:新建会话

  • open session:打开会话

  • clear session:清除会话内容(与导航菜单中得笤帚是一样的功能)

  • close session:关闭会话

  • save session:保存会话

  • save session as:另存会话为

  • import:导入

  • export session:导出

  • quiet:关闭软件

    Edit:

  • cut: 剪切某个会话

  • Copy: 复制某个会话

  • Paste: 粘贴某个会话

  • Select All: 选择所有的会话

  • Find in Session: 查找某个会话中的信息

  • Find Next : 查询下一条

  • Find Previous: 查询上一条

  • Preferences: 外观等配置

Views:



视图菜单里的东西其实是非常常用的功能,下文介绍请求内容和相应内容会提到。

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 界面设置。

Tools:

  • No Caching Settings:禁用缓存设置。
  • Block Cookies Settings:禁用 Cookie设置。
  • Map Remote Settings:远程映射设置。
  • Map Local Settings:本地映射设置。
  • Rewrite Settings:重写设置。
  • Black List Settings:黑名单设置。
  • White List Settings:白名单设置。
  • DNS Spoofing Settings:DNS 欺骗设置。
  • Mirror Settings:镜像设置。
  • Auto Save Settings:自动保存设置。
  • Client Process Settings:客户端进程设置。
  • Compose:编辑修改。
  • Repeat:重复发包。
  • Repeat Advanced:高级重复发包。
  • Validate:验证。
  • Publish Gist:发布要点。
  • Import/Export Settings:导入/导出设置。
  • Profiles:配置文件。
  • Publish Gist Settings:发布要点设置。

Window:

  • Session1 *: 当前所在会话,可切换
  • Error Log: 错误日志
  • Active Connections: 正在进行访问的连接(通过这个可以查看charles是否正常运行)

Help:

  • Registered to Registered to poppy:登录charles
  • Unregister Charles:注销charles
  • about Java:关于JAVA
  • local lP address:IP地址
  • SSL proxying:SSL代理
  • Check for Updates:检查更新
  • visit Website:访问网站
  • About Charles:关于charles

工具栏

视图导航栏



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

两者区别:

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

使用时可以根据具体的需要在这两种视图之前来回切换。

接口信息列表栏

在Structure 视图



下面是展示每个域名所抓到的数据包,点击【+】可查看具体详细信息 展开该host 域名下的所有请求

过滤器—Filter



可直接对过滤的数据信息进行过滤

请求内容区



Overview:展示当前请求的一个大体情况

content:展示当前请求的具体内容和服务器的相应内容

summary:展示当前请求的大体资源分布情况

chart:以表格形式告诉我们接口响应时间的分布情况

notes:笔记,点击后自己可以对当前请求记录一些东西,方便后续查看该接口的用途,可在overview中查看

请求内容导航栏



Headers:当前请求的头信息

Text:文本形式展示当前接口请求内容

Hex:十六进制展示,一般不使用

JSON:以json格式展示当前接口请求内容

JSON Text:以json text格式展示当前接口请求内容

Raw:源码展示当前接口请求内容

响应内容区

响应内容导航栏

Headers:响应的头信息

Text:文本形式展示响应内容

Hex:十六进制展示,一般不使用

JavaScript:以JavaScript格式查看响应内容内容

JSON:以json格式查看响应内容内容

JSON Text:以JSON Text格式查看响应内容内容

Raw:源码形式展示响应内容

Charles 使用教程

通过 Charles 进行 PC 端抓包

Charles 会自动配置浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了。只需要保证一下几点即可:

  1. 确保 Charles 处于 Start Recording 状态。
  2. 勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。



通过 Charles 进行移动端抓包

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

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

    ○ 关掉电脑端的防火墙(这点很重要)。

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

    ○ 如果不需要抓取电脑上的请求,可以取消勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。
  3. 手机端配置:

    ○ 通过 Charles 的主菜单 Help | Local IP Address 或者通过命令行工具输入 ipconfig 查看本机的 IP 地址。

    ○ 设置代理:打开手机端的 WIFI 代理设置,输入电脑 IP 和 Charles 的代理端口。
  4. 设置好之后,我们打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。
  5. 完成以上步骤,就可以进行抓包了。

通过 Charles 进行 HTTPS 抓包

HTTPS 的抓包需要在 HTTP 抓包基础上再进行设置。需要完成一下步骤:

  1. 完成 HTTP 抓包配置。
  2. 电脑端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate 安装证书。
  3. 设置 SSL 代理:通过主菜单打开 Proxy | SSL Proxy Settings 弹窗,勾选 Enable SSL proxying。
  4. 移动端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安装证书。
  5. 设置好之后,我们打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。
  6. 完成以上步骤,就可以进行 HTTPS 抓包了。

参考文档: https://blog.csdn.net/wild_girl/article/details/118874505

https://zhuanlan.zhihu.com/p/351167790

测试与爬虫—抓包神器之Charles的更多相关文章

  1. 移动应用抓包调试利器Charles

    转载:http://www.jianshu.com/p/68684780c1b0 一.Charles是什么? Charles是在 Mac或Windows下常用的http协议网络包截取工具,是一款屌的不 ...

  2. 黄聪:移动应用抓包调试利器Charles

    一.Charles是什么?   Charles是在 Mac或Windows下常用的http协议网络包截取工具,是一款屌的不行的抓包工具,在平常的测试与调式过程中,掌握此工具就基本可以不用其他抓包工具了 ...

  3. 抓包工具之—charles碎言碎语

    一.Charles常见使用场景: 1.Charles是跨平台的抓包工具,支持Windows,mac或Linux平台: 2.获取请求信息.测试接口时,若接口文档中的参数不清楚或没有接口文档时,可以通过抓 ...

  4. 【抓包】【Charles】

    Mac抓包神器-----Charles Charles 是一款Mac上的HTTP代理服务器.HTTP监视器.反向代理服务器,可以让开发者监视查看所有连接互联网的HTTP通信,包括请求,响应和HTTP头 ...

  5. 移动端测试接口--Fiddler抓包工具

    Fiddler抓包工具是一款免费且功能强大的数据包抓取软件.它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视.设置断 ...

  6. 比Wireshark更轻量、更方便的抓包软件:Charles

    转:http://blog.csdn.net/lixing333/article/details/42776187 之前写过一篇通过Wireshark进行抓包,分析网络连接的文章<通过WireS ...

  7. 【抓包分析】Charles和 夜神模拟器 对安卓应用进行抓包分析

    准备工具 : 1 Charles   : https://www.charlesproxy.com  (收费) 2 夜神模拟器  : https://www.yeshen.com  (免费) 2 模拟 ...

  8. 【接口工具】接口抓包工具之Charles

    上篇我们讲了Fiddler,Fiddler是用C#开发的,所以Fiddler不能在Mac系统中运行,没办法直接用Fiddler来截获MAC系统中的HTTP/HTTPS, Mac 用户怎么办呢? 1.F ...

  9. 爬虫抓包工具Charles设置

    1.安装注册 感谢https://www.jianshu.com/p/89111882fa99提供注册码软件去官网下载安装即可. Registered Name:https://zhile.io Li ...

  10. 测试同学必备抓包工具--charles之安装

    1,下载charles,官网:https://www.charlesproxy.com/ 2,下载完成,先试着用一下,网址访问百度看看... 注意,windows proxy如果勾选,则代表可以抓取网 ...

随机推荐

  1. C#异步有多少种实现方式?

    前言 微信群里的一个提问引发的这个问题,C#异步有多少种实现方式?首先想要知道C#异步有多少中实现方式,首先我们要知道.NET提供的执行异步操作的三种模式,然后再去了解C#异步实现的方式. .NET异 ...

  2. #Python实例 计算外卖配送距离(基于百度API接口)---第二篇

    https://www.cnblogs.com/simone331/p/17218019.html 在上一篇中,我们计算了两点的距离(链接为上篇文章),但是具体业务中,往往会存在一次性计算多组,上百甚 ...

  3. 2022-11-08:以下go语言代码输出什么?A:2;B:编译错误;C:运行 panic。 package main import “fmt“ func main() { a := []int

    2022-11-08:以下go语言代码输出什么?A:2:B:编译错误:C:运行 panic. package main import "fmt" func main() { a : ...

  4. adb查看端口号,杀进程

    1.先查看端口号占用的进程 netstat -ano | findstr 8000 2.在杀掉我们查出的进程15812 3.再次查看8000端口号的进程

  5. 【rabbitMQ】-延迟队列-模拟控制智能家居的操作指令

    这个需求为控制智能家居工作,把控制智能家居的操作指令发到队列中,比如:扫地机.洗衣机到指定时间工作   一.什么是延迟队列? 延迟队列存储的对象是对应的延迟消息,所谓"延迟消息" ...

  6. 逍遥自在学C语言 | 揭开while循环的神秘面纱

    前言 循环是一种重要的控制结构,可以使程序重复执行一段代码,直到满足特定条件为止. 在C语言中,while和do-while是两种常用的循环结构,本文将详细介绍这两种循环的用法. 一.人物简介 第一位 ...

  7. Google Chrome 超详细使用教程

    由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中的链接. 调查统计机构 NetMarketShare 发布最新的 7 月份报告,在全球浏览器市场,谷歌 ...

  8. celery笔记三之task和task的调用

    本文首发于公众号:Hunter后端 原文链接:celery笔记三之task和task的调用 这一篇笔记介绍 task 和 task 的调用. 以下是本篇笔记目录: 基础的 task 定义方式 日志处理 ...

  9. 浏览器输入URL到网页完全呈现的过程

    前言 临近计算机网络期末考试, 最近在复习(预习), 写一遍博客讲解加深印象. 浏览器输入URL过程图 浏览器输入 URL 过程: 当用户在网页上输入网址 URL 后, 浏览器会对网址进行 DNS 域 ...

  10. 【HMS Core】Health Kit查询历史数据查询数据和返回数据不一致

    [问题描述] 查询一个月运动记录,只能查询到最早5月26的数据,但是华为健康app里的数据最早为5月8日,为什么会查询不到? [解决方案] 1.需要检查是否申请了历史数据权限,查询数据时,出于对用户的 ...