Charles 抓包工具使用详细介绍

news2024/12/23 12:11:37

1 前言

1.1 介绍

Charles是一款强大的网络抓包工具,主要用于分析和调试网络流量。它适用于多种操作系统,包括 Windows、macOS和linux。

Chaels可以捕获 http和https协议的请求和响应,帮助开发人员和测试人员了解应用程序与服务器支架的通信情况,以及识别潜在的问题。

官网:https://www.charlesproxy.com/

1.2 主要功能介绍

  1. 抓包功能:Charles可以接货设备和服务器之间的网络通信,无论是浏览器、移动应用还是其他网络请求,都能够捕获和显示相关的请求和响应。
  2. 支持多种协议:Charles主要用于http和https协议的分析,但它还支持许多其他网络协议,如WebSocket、FTP等。
  3. SSL代理和解密:对于https流量,charles可以作为中间人代理,使得开发人员可以查看加密后的数据,这对于调试和排查安全问题非常有帮助。
  4. 请求和响应查看:Charles以直观的方式展示请求和和响应,包括头部信息、主体内容、响应状态码等。这有助于开发人员深入了解通信细节。
  5. 重发和编辑请求:在Charles中,您可以编辑请求的内容并重新发送,从而测试不容的情况、这对于模拟特定的情景或修复问题非常有用。
  6. 短点调试:Charles允许您设置短点,以便在特定的条件下中断流量并进行调试。这对于分析特定请求或响应的行为非常有帮助。
  7. 自动化和脚本:Charles支持使用 API 进行自动化操作。您可以编写脚本来处理请求、响应和会话,从而简化重复性任务。
  8. 限速和模拟:Charles 可以模拟不同网络条件,包括延迟、带宽限速等。这有助于测试应用在不同网络环境下的性能表现。
  9. 过滤和搜索:工具内置了过滤器和搜索功能,可以帮助您更轻松地找到特定的请求、响应或其他网络数据。
  10. 映射远程:您可以使用 Charles 将本地流量映射到远程服务器,或将远程流量映射到本地开发环境,以便于分析和调试。
  11. 会话跟踪:Charles 跟踪整个会话的流量,让您可以在多个请求和响应之间进行导航和分析。

哈喽,大家好,我是[有勇气的牛排](全网同名)🐮🐮🐮

https://www.couragesteak.com/article/441

有问题的小伙伴欢迎在文末[评论,点赞、收藏]是对我最大的支持!!!。

2 下载安装

官方版本:https://www.charlesproxy.com/download/

3 Web 抓包(https)

web抓包相对简单,启动 Charles 后即可抓包,重点是要配置 https。

3.1 配置 SSL

这里我们需要为 Charles 安装 SSL 证书。

【Help】–> 【SSL Proxying】–> 【install Charles Root Certificate】

image.png

image.png

3.2 开启代理监听

【Proxy】–> 【SSL Proxying Setting】

  • 勾选【Enable SSL Proxying】

  • 输入:

    *
    *:443
    
  • 最后点击 【ok】保存

image.png

4 App 抓包

由于部分app已经在很多模拟器上做了限制,因此采用 Charles 作为代理,来对手机app抓包,是一个不错的方案。

  • https也需要安装

4.1 PC端配置

4.1.1 查看本地 ip:
  • 【Help】–> 【local IP Addresss】
4.1.2 配置暴露端口号

步骤:【Proxy】–> 【Proxy Setting】,这里我们配置端口号为 8888(默认)。

image.png

4.2 手机端配置(连接)

… --> 【编辑当前wifi】–>【代理】–> 【手动】

主机名:ip

端口:8888

4.3 安装手机https协议

如果不安装,https协议的请求则会爆出: <unknow>

4.3.3 安装整证书

配置步骤:

【Help】–> 【SSL Proxying】–> 【Install Charles Root Certificate On a Mobile Device or Remote Browser】

image.png

访问:chls.pro/ssl

证书导出

1、保存pem文件:【Help】–> 【SSL Proxying】–> 【Save Charles Root Certificate】

2、然后获取pem文件的hash值,作为名字

openssl x509 -inform PEM -subject_hash_old -in ./charlesRoot.pem

3、修改名称为:哈希值.0

4、adb导入

adb shell mount -o remount,rw /system
adb push D:/git仓库/blog_article/python爬虫/cc4dc6b5.0 /system/etc/security/cacerts/
adb shell chmod 777 /system/etc/security/cacerts/cc4dc6b5.0


adb push D:/git仓库/blog_article/python爬虫/cc4dc6b5.0 /system/etc/security/cacerts/

adb push D:/git仓库/blog_article/python爬虫/cc4dc6b5.0 /storage/emulated/0/00
adb kill-server
adb start-server
adb remount
4.3.1 http连接

设置–>wifi -->手动

4.3.2 代理软件

代理类型socks5

端口:8889

5 过滤操作

  1. 过滤器面板: 在Charles工具的主界面上,您会看到一个"Filter"选项卡,点击它可以打开过滤器面板。在这里,您可以设置不同类型的过滤规则。
  2. 域名过滤: 通过域名过滤,您可以只显示与特定域名相关的请求和响应。在过滤器面板中,您可以输入域名,然后Charles将只显示与该域名相关的网络流量。
  3. 路径过滤: 如果您只关心特定路径下的请求和响应,您可以设置路径过滤。输入路径信息后,Charles会仅显示与该路径相关的流量。
  4. 响应代码过滤: 您可以选择只显示具有特定HTTP响应状态代码的请求和响应。这对于快速查找错误或特定情况下的网络流量非常有用。
  5. 方法过滤: 如果您只关心特定HTTP请求方法(如GET、POST等),您可以设置方法过滤以仅显示这些方法的请求和响应。
  6. 内容类型过滤: 通过内容类型过滤,您可以只显示特定媒体类型的请求和响应,如JSON、XML等。
  7. 会话过滤: Charles可以根据会话来过滤流量,以便仅显示特定会话的请求和响应。这对于跟踪特定用户或操作的网络通信非常有用。
  8. 自定义规则: Charles还提供了一些高级过滤规则选项,您可以使用正则表达式等方式创建自定义过滤规则。
  9. 过滤和查找组合: 您可以结合使用过滤和查找功能,以便更精确地找到您感兴趣的请求和响应。
  10. 过滤的启用和禁用: 在过滤器面板中,您可以启用或禁用不同的过滤规则,以便根据需要动态调整过滤设置。

5.1 网络过滤

方案一:

在主界面的左下角,我们可以看到有个 Filter,在这里输入需要过滤的关键字即可。

方案二:

选择【Proxy】–> 【Recording Settings】–【include】,然后填入相关信息。

image.png

6 限速和模拟

步骤:【Proxy】–> 【Throttle Setting】

  • Enable Throttle:启用 节流
  • Only for select host:仅适用于选定的hosts

image.png

7 短点调试

  1. 开启短点调试:【鼠标右键会话】–> 【短点】 (菜单栏的 六边形的按钮会变红,带对勾)
  2. 设置短点:【Proxy】–>【Breakpoint Setting】

8 重发和编辑请求

8.1 重复发送

选择会话 --> 【点击 重复按钮】

8.2 高级重复发送(压力测试)

选择会话 --> 【右键 高级重复】

案例:重复发送10次请求

image.png

8.3 Compose 编写/撰写 接口

这个适用于,编辑接口的不同参数请求

步骤:选择会话 --> 【右键 Compose/撰写】

9 远程映射

单个会话映射:

【选择会话】–> 【远程】

批量映射:

【工具】–> 【远程映射】–>【勾选 启用远程映射】

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1054434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2023双非保研】信管跨保计算机大类的记录(东南、川大、重大、东北、西电、南理工、杭高院、河海、东华、天大等)

以此篇博客记录我的保研之旅 目录 一、个人情况 二、夏令营 1、国科大杭高院&#xff08;线下&#xff09; 2、南信工&#xff08;线下&#xff09; 3、华中师范&#xff08;线上or线下&#xff09; 4、浙大软件&#xff08;线上&#xff09; 5、东华大学&#xff08;线…

手机电脑数码小程序商城的作用是什么

手机几乎是每个成年人人手一个以上&#xff0c;市场非常大&#xff0c;加之产品更新迭代速度快&#xff0c;每年都会推出多个型号、造型等&#xff0c;因此对高收入群体或爱机人群来说&#xff0c;新手机往往一年或二年时间就会换&#xff0c;或者直接购买当备用机等。 每个城…

C++ 学习系列 -- std::stack 与 std::queue

一 std::stack 与 std::queue 分别是什么&#xff1f; 两者均是 c 中的序列化容器&#xff0c;区别在于&#xff1a; std::stack 元素是先进后出 std::queue 元素是先进先出 二 std::stack 与 std::queue 原理 1 std:statck 2. std::queue 两者底层容器可以是 list 也可以…

创建型设计模式 单例 工厂模式 看这一篇就够了

4&#xff0c;创建型模式 创建型模式的主要关注点是“怎样创建对象&#xff1f;”&#xff0c;它的主要特点是“将对象的创建与使用分离”。 这样可以降低系统的耦合度&#xff0c;使用者不需要关注对象的创建细节。 创建型模式分为&#xff1a; 单例模式工厂方法模式抽象工程模…

vue3简易文字验证码

大神勿喷&#xff0c;简易版本&#xff0c;demo中可以用一下。 需要几个文字自己codelen 赋值 灵活点直接父组件传过去&#xff0c;可以自己改造 首先创建一个生成数字的js **mathcode.js**function MathCode(num){let str "寻寻觅觅冷冷清清凄凄惨惨戚戚乍暖还寒时候…

LeetCode 热题 HOT 100:回溯专题

LeetCode 热题 HOT 100&#xff1a;https://leetcode.cn/problem-list/2cktkvj/ 文章目录 17. 电话号码的字母组合22. 括号生成39. 组合总和46. 全排列补充&#xff1a;47. 全排列 II &#xff08;待优化)78. 子集79. 单词搜索124. 二叉树中的最大路径和200. 岛屿数量437. 路径…

object-fit,object-position让img标签表现得像背景图那样能自适应和调整显示位置

文章目录 一、object-fit的用法二、object-position的用法 图片在网页中有2种表现形式&#xff0c;使用CSS的background-image或者HTML的img标签来实现。 背景图实现如notion的封面图效果可以使用background-position或者background-size轻松实现&#xff0c;首先来看看notion…

2023年安全员-C证证模拟考试题库及安全员-C证理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年安全员-C证证模拟考试题库及安全员-C证理论考试试题是由安全生产模拟考试一点通提供&#xff0c;安全员-C证证模拟考试题库是根据安全员-C证最新版教材&#xff0c;安全员-C证大纲整理而成&#xff08;含2023年…

【Java 进阶篇】JDBC Statement:执行 SQL 语句的重要接口

在Java应用程序中&#xff0c;与数据库进行交互是一项常见的任务。为了执行数据库操作&#xff0c;我们需要使用JDBC&#xff08;Java Database Connectivity&#xff09;来建立与数据库的连接并执行SQL语句。Statement接口是JDBC中的一个重要接口&#xff0c;它用于执行SQL语句…

leetCode 376.摆动序列 贪心算法

如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#xff0c; [1, 7, 4, 9, 2, 5] 是一个 摆动序列 &…

AI智能问答系统源码/AI绘画商业系统/支持GPT联网提问/支持Midjourney绘画

一、AI创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的AI智能问答系统和AI绘画系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图…

.360、.halo勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复

导言&#xff1a; 在网络犯罪的阴影下&#xff0c;.360和.halo勒索病毒显得格外神秘而危险&#xff0c;它们都属于BeijingCrypt勒索病毒家族旗下的病毒&#xff0c;两者加密特征一致&#xff0c;加密勒索信内容一致。本文91数据恢复将深度解析.360、.halo勒索病毒的内部机制&a…

【算法速查】一篇文章带你快速入门八大排序(上)

君兮_的个人主页 即使走的再远&#xff0c;也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;首先在这里祝大家中秋国庆双节同乐&#xff01;&#xff01;今天用一篇文章为大家把八大排序算法都过一遍&#xff0c;当然由于篇幅的原因不是每…

华为云云耀云服务器L实例评测|Ubuntu系统MySQL 8.1.0 Innovation压测

文章目录 前言&#x1f4e3; 1.前言概述&#x1f4e3; 2.云服务器性能监控&#x1f4e3; 3.MySQL8.1版本安装✨ 3.1 安装包下载✨ 3.2 解压安装包✨ 3.3 登录验证 &#x1f4e3; 4.ubuntu安装sysbench&#x1f4e3; 5.云服务器压测✨ 5.1 IO测试✨ 5.2 CPU性能测试 &#x1f4e…

React18+Ts项目配置husky、eslint、pretttier、commitLint

前言 我的项目版本如下&#xff1a; React&#xff1a; V18.2.0Node.js: V16.14.0TypeScript&#xff1a;最新版工具&#xff1a; VsCode 本文将采用图文详解的方式&#xff0c;手把手带你快速完成在React项目中配置husky、prettier、commitLint&#xff0c;实现编码规范的统…

Javaweb作业小结

简单的XML文档 用JS求连乘积 function product(N) { let p 1; for (let i 1; i < N; i) { p * 2 * i - 1; } return p; } // 调用函数并输出结果 const N 7; // 这里的 N 是你想要的奇数的个数 const result product(N); console.log(p ${result}); Servlet映射关系…

动态规划:两个数组的dp问题(C++)

动态规划&#xff1a;两个数组的dp问题 前言两个数组的dp问题1.最长公共子序列&#xff08;中等&#xff09;2.不同的子序列&#xff08;困难&#xff09;3.通配符匹配&#xff08;困难&#xff09;4.正则表达式&#xff08;困难&#xff09;5.交错字符串&#xff08;中等&…

Go结构体深度探索:从基础到应用

在Go语言中&#xff0c;结构体是核心的数据组织工具&#xff0c;提供了灵活的手段来处理复杂数据。本文深入探讨了结构体的定义、类型、字面量表示和使用方法&#xff0c;旨在为读者呈现Go结构体的全面视角。通过结构体&#xff0c;开发者可以实现更加模块化、高效的代码设计。…

背包问题

目录 开端 01背包问题 AcWing 01背包问题 Luogu P2925干草出售 Luogu P1048采药 完全背包问题 AcWing 完全背包问题 Luogu P1853投资的最大效益 多重背包问题 AcWing 多重背包问题 I AcWing 多重背包问题 II Luogu P1776宝物筛选 混合背包问题 AcWing 混合背包问题…

JavaSE学习之--抽象类和接口

&#x1f495;"没有眼泪我们就会迷路&#xff0c;彻底变成石头&#xff0c;我们的心会变成冰凌&#xff0c;吻会变成冰块。"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;JavaSE学习之--抽象类和接口 一.抽象类 1.抽象类的定义 我们知道&#x…