Charles抓包工具使用

Charles简介

        Charles是一款基于HTTP协议的代理服务器和HTTP监视器,通过将自己设置为电脑或浏览器的网络访问代理,能够截取请求和请求结果,从而达到分析抓包的目的。它允许开发者查看所有连接互联网的HTTP通信,包括请求、响应和HTTP头部信息(包含cookies与caching信息)。

        Charles支持的功能非常丰富,包括但不限于:截取HTTP和HTTPS网络封包、支持重发网络请求以方便后端调试、支持修改网络请求参数、支持网络请求的截获并动态修改,以及支持模拟慢速网络等。这使得Charles在软件开发和测试过程中具有极高的实用价值,能帮助开发者有效地分析和解决前后端问题。

        Charles具有跨平台的特性,能在Windows、Mac和Linux等操作系统上使用。然而,安装Charles前需要先安装好Java环境。此外,Charles还有破解版和正编版之分,两者的主要区别在于启动时间和自动关闭机制,其他功能则基本相同。

请注意,使用Charles时应遵守相关法律法规和道德准则,确保在合法和合规的范围内使用。如需更多关于Charles的详细信息,建议访问其官方网站或查阅相关文档。

Charles主要功能

Charles的主要功能非常多样且实用,主要包括以下几个方面:

  1. 过滤网络请求:用户可以通过设置,只监控向指定目录服务器上发送的请求,从而有效地过滤掉不需要的信息,使开发者能够更专注于目标数据。
  2. 截取网络封包:Charles能够截取移动设备或电脑上的网络封包,包括HTTP和HTTPS协议的数据包,帮助开发者深入了解网络请求和响应的详细情况。
  3. 模拟慢速网络:为了测试应用在网络环境较差的情况下的表现,Charles提供了模拟慢速网络的功能,让开发者能够模拟出各种网络速度,以便更好地进行应用优化。
  4. 修改网络请求内容:在Charles中,用户不仅可以查看网络请求的内容,还可以对其进行修改,这在测试或调试过程中非常有用,能够帮助开发者快速定位并解决问题。
  5. 给服务器做压力测试:通过模拟大量的网络请求,Charles可以帮助开发者对服务器进行压力测试,以评估服务器的性能和稳定性。
  6. 修改服务器返回内容:对于服务器返回的响应内容,Charles也支持进行修改,这对于调试和测试来说非常便利。
  7. map重向功能:在开发过程中,有时需要将请求重定向到本地文件或其他地址,Charles的map重向功能可以方便地实现这一需求。
  8. rewrite功能:对于某一类网络请求,Charles提供了rewrite功能,可以对请求进行正则替换,达到修改结果的目的。

        此外,Charles还支持断点(Breakpoints)功能,可以对网络请求进行临时替换,这在调试过程中非常有用。同时,Charles提供了Structure和Sequence两种视图模式,方便用户从不同角度查看和分析网络请求。

        综上所述,Charles是一款功能强大的网络调试工具,能够帮助开发者高效地分析、调试和优化网络请求和响应。

Charles的介绍与安装

安装

 官方地址:

https://www.charlesproxy.com/

 科学使用:

https://www.charlesproxy.com/

web抓包

1,web 抓包

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

2,Web 抓取HTTPS协议

虽然现在Charles能够直接抓包了,但是https协议的报我们是抓取不了的,需要安装SSL证书才可以

Charles下配置

1,点击顶部菜单栏【Help】–>选择【SSL Proxying】,点击【install Charles Root Certificate 】安装Charles根证书即可;

这里由于用的笔记本截图快捷键问题,没发截取,这里截取证书安装,证书安装一直下一步就可以

2,点击【Proxy】–>【SSL Proxying Settings…】

3,在弹出选项卡中,勾选【Enable SSL Proxying】点击【add】,在Host输入【*】表示接收任何主机,在Prot输入【443】最后点击【ok】保存

App抓包

Charles抓包不仅仅可以抓取来在电脑端的HTTP请求,也能够抓取来自App发出的HTTP请求,但是手机抓包需要在电脑端配置下,并且同时需要手机和电脑在同一网络下

电脑端配置:

1,启动安装好的Charles抓包工具

3,点击【Proxy】–>【Proxy Settings】我们在设置下端口号“8888”

手机端设置:

1,打开手机的设置页面;

2,选择【无线局域网】;

3,IOS点击连接的WIFI后面的感叹号,安卓应该是长按连接的WIFI;(注:这里主要以IOS为例)

4,点击【配置代理】–>【手动】;

5,输入本机【IP地址(192.168.4.164)】以及端口号【8888】,这是我本机的,根据自己情况合理配置;

6,点击【存储】

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

抓取手机HTTPS协议

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

Charles配置:

1,点击顶部菜单栏【Help】–>选择【SSL Proxying】,点击【install Charles Root Certificate】安装Charles根证书即可;

2,点击安装【Install Charles Root Certificate On a Mobile Device or Remote Browser】在移动设备上或远程浏览器安装证书即可;(这里和上面安装一样)

Charles过滤

通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,以下几种办法:

方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://ceshi.com, 那么只需要在 Filter 栏中填入 ceshi 即可。

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

弱网测试

Charles配置弱网设置

1,点击【Proxy】–>【Throttle Setting】

2,勾选上【Enable Throttle】,也可以勾选【only for selected host 】 设置一个指定注解访问进行网络限制,不影响其他软件;

3,在【Throttle preset】选择常见预设的网络情况,也可以在【Bandwidth】自己设置网络的上传和下载速率

打断点篡改数据

在我们的测试场景中,可能需求修改请求参数或者返回参数进行测试,比如支付方面的接口,涉及用户登陆权限的接口参数

这里就不再举例了;

修改请求数据

1,选择请求会话右键勾选【Breakpoints】这是我们会发现工具栏有个六边形按钮已经变为红色

2,设置断点,点击菜单栏【proxy】勾选【Breakoint Setting …】这是会弹出断点设置弹窗;

3,在弹出的断点设置弹窗,双击想打断点的接口,进行断点编辑;

4,编辑断点,如果修改Request数据,Request勾选,如果修改Response数据,就将Response勾选,当然你也可以都勾选;

5,在手机上重新进行请求,Charles 会自动进行拦截并跳转到请求数据修改页面;

这时,服务端给我们返回的数据就是有关jmeter的数据了

重复发送请求

        在我们的测试工作中,可能你会发先一个bug,开发会让你在操作一遍,他要查看日志经i选哪个定位分析,这时候,在客户端上进行操作一遍就会麻烦,这是直接用Charles 发送一遍重复的请求就可以了,并且,重新发送请求也可以帮助我们进行功能测试;

选择需要重新发送请求的会话上,直接点击工具栏【重新按钮】

Compose编辑接口

        在我们的测试工作中,可能需要发送不同的参数进行请求。

选择需要修改的请求,右键选择【Compose】这时多出一个笔的请求;

服务器压力测试

Charles 还有一个比较有意思的功能,它能勾简单的给服务器进行压力测试;

1,在进行压力测试的请求会话上右击,选择【Repeat Advanced】

2,在弹出框中,输入并发线程数以及压力次数点击进行测试

本地映射

        映射的意思就是指将一个请求重定向到另外一个请求,本地映射的含义就是通过修改已有数据来映射指定的接口,使接口数据使用本地设置的数据来做调试,

下面我就通过一个例子位大家讲解如果通过Charles 将网络请求映射到本地文件

        在请求会话上右键选择【Save Reponse…】将返回信息保存到本地

远程映射

        远程映射的含义就是将你本地的请求地址,映射到另外一个远程地址上,相当于你的请求地址修改了,下面就通过一个例子

在菜单栏点击【Tools】选择【Remote】进行远程映射设置。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1.5如何缓解图像分类任务中训练数据不足带来的问题?

1.5 图像数据不足时的处理方法 场景描述 在机器学习中,绝大部分模型都需要大量的数据进行训练和学习(包括有监督学习和无监督学习),然而在实际应用中经常会遇到训练数据不足的问题。 比如图像分类,作为计算机视觉最基本的任务之一&#xff0…

万字详解,Java实现低配版线程池

文章目录 1.什么是线程池2.线程池的优势3.原理4.代码编写4.1 阻塞队列4.2 ThreadPool线程池4.3 Worker工作线程4.4 代码测试 5. 拒绝策略5.1 抽象Reject接口5.2 BlockingQueue新增tryPut方法5.3 修改ThreadPool的execute方法5.4 ThreadPool线程池构造函数修改5.5 拒绝策略实现1…

虾皮、lazada店铺运营攻略,如何搭建高效、稳定的自养号测评系统

随着电子商务的蓬勃发展,越来越多的人选择在虾皮这样的电商平台上开设店铺,以实现创业梦想。但如何在众多店铺中脱颖而出,成为消费者的首选?本文将为您详细解答“怎么样做好虾皮店铺”,并提供一些实用的运营建议。 一、怎么样做…

【grafana】Grafana Image Renderer插件获取grafana仪表盘图片(docker方式、python爬虫)

1、编写docker-compose.yml文件 #如果你已启动grafana容器,只需修改docker-compose.yml,在grafana添加环境变量,grafana-image-renderer插件的服务,官网地址:Grafana Image Renderer plugin for Grafana | Grafana L…

C#,煎饼排序问题(Pancake Sorting Problem)算法与源代码

1 煎饼排序问题 给定一个未排序的数组,任务是对给定数组进行排序。您只能在阵列上执行以下操作。 翻转(arr,i):将数组从0反转为i 示例: 输入:arr[]{23、10、20、11、12、6、7} 输出&#xff1a…

基于51单片机风速仪风速测量台风预警数码管显示

基于51单片机风速仪风速测量报警数码管显示 1. 主要功能:2. 讲解视频:3. 仿真4. 程序代码5. 设计报告🔗6. 下载链接资料下载链接: 基于51单片机风速仪风速测量报警数码管显示( proteus仿真程序设计报告讲解视频) 仿真图…

别再害怕SQL:用这个友好的MySQL学习网站轻松入门!

介绍:MySQL是一个广泛使用的关系型数据库管理系统(RDBMS),由瑞典的MySQL AB公司开发,并现在属于Oracle公司。以下是对MySQL的详细介绍: 发展历史:MySQL最初由瑞典MySQL AB公司于1995年开发&…

XSS漏洞-存储型漏洞案例

一、环境 在github上找DVWA的靶机环境 DVWA存储库 二、复现 先将其安全等级改为低 然后点击存储型的xss,先随便写几条看看现象 可以看到我们写的都展示在了下面的框中 看看源码,分析在存储时的漏洞 我们可以看到,在对数据插入的时候&am…

全面认识计算机

目录 一、计算机的发展史 1. 电子管计算机时代 2. 晶体管计算机时代 3. 小、中规模集成电路计算机时代 4. 大、超大规模集成电路计算机时代 二、计算机硬件组成 1. 输入设备 2. 输出设备 3. 存储器 4. 运算器 5. 控制器 三、计算机硬件间的连接 四、计算机系统的结…

YOLOv8原创改进:原创自研head创新 | 空间上下文感知模块(SCAM)结合超轻量高效动态上采样DySample | 小目标涨点系列

💡💡💡本文独家改进:YOLOV8 head创新,1)一种超轻量高效动态上采样DySample, 具有更少的参数、FLOPs,效果秒杀CAFFE和YOLOv8网络中的nn.Upsample;2)加入空间上下文感知模块(SCAM)进一步提升检测精度; 改进结构图如下: 💡💡💡在多个数据集下验证能够涨点…

【Linux】Linux——Centos7安装

目录 虚拟机安装【空壳子】安装VMware Workstation新建虚拟机硬件兼容性(直接下一步)稍后安装操作系统客户及操作系统选择Linux,版本Centos764位给虚拟机命名,并选择安装位置处理器配置(默认即可,不够用后面可以调)虚拟…

基于java+springboot+vue实现的校园悬赏任务平台(文末源码+Lw)23-277

摘 要 使用旧方法对校园悬赏任务平台的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在校园悬赏任务平台的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的…