Charles抓包工具操作指南
一.Charles说明
Charles是HTTP代理/ HTTP监视器/反向代理,使开发人员或测试人员可以查看其计算机与Internet之间的所有HTTP和SSL/ HTTPS通信。 这包括请求,响应和HTTP标头(其中包含cookie和缓存信息)。
Charles是用Java写的,能够在Windows,Mac,Linux上使用。安装Charles的时候要先装好Java环境。

二.Charles主要功能
截取Http 和 Https 网络封包。 支持重发网络请求,方便后端调试。 支持修改网络请求参数。 支持网络请求的截获并动态修改。 支持模拟慢速网络。
三.下载安装
官方下载地址:https://www.charlesproxy.com/download/

四.破解步骤
注:仅限个人交流使用,切勿用于商业用途
将下载的charles.jar覆盖到Charles的lib目录下即可
查看是否破解成功,点击charles菜单Help->About Charles,如下图所示

五.电脑端安装证书
对于HTTPS协议的数据,我们要在电脑端和手机端安装证书,否则会看到返回的数据都是乱码。






六. 手机端抓包设置
确保安装Charles的电脑和你的手机在同一局域网内,因为Charles只是一个代理,需要将手机的代理指向 PC 机,不能互相访问是不行的。
1.启动charles。
2.在PC端使用cmd命令打开命令行窗口输入ipconfig,获取本机IP地址。

3.在手机端(以Android为例)的wifi代理设置那里去进行相关的配置设置。
4.长按wifi名称,点击“修改网络”,勾选“显示高级选项”,点击代理,选择手动,服务器主机名输入PC机IP地址,如127.0.0.1,服务器端口(charles的默认设置):8888,点击保存。
5.配置完成,charles会弹出与手机链接提示框,选择allow

6.安装手机端证书,在手机上打开网址 http://www.charlesproxy.com/getssl 安装 Charles SSL 证书。
注意,同一个手机对应不同电脑上的Charles都要分别下载证书进行认证,因为手机的证书是和电脑端的Charles一一配对的。



注意:iOS系统,需要在设置→通用→关于本机→证书信任设置里面启用完全信任Charles证书
7.Charles工具栏选择Proxy-> SSL Proxying Settings,弹出SSL Proxying Settings选项卡,勾选Enable SSL Proxying,在Location部份选择add,按如下图添加,抓取任意站点、443端口的数据。

8.打开手机应用即可进行抓包操作。
七.Charles相关功能介绍
1.界面介绍


Filter:过滤,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。 Overview:查看这次请求的详细内容,例如耗时详细列车了请求开始时间、结束时间,响应开始时间、结束时间,总耗时、DNS耗时、网络延时等。对于Size也详细列出了请求头大小、响应头大小、压缩比例等内容。 URL:进行网络请求的链接; Status:当前状态,complete表示请求完成; Responce Code:返回码。不同的接口,不同的请求结果,返回码都不同; Protocol:使用的协议; Method:请求方式,如GET请求,POST请求等; Kept Alive:判断当前是否正在链接(活跃); Content-Type:发送的内容类型,如这里用的是XML文本,以UTF8的方式发送; Client Address:客户端的IP地址; Remote Address:远程服务器的IP;
Timing:
Request Start Time:请求开始的时间; Request End Time:请求结束的时间; Response Start Time:返回开始的时间; Response End Time : 返回结束的时间; Duration : 总时间;
Size:
Request:请求发送的大小; Response:返回数据的大小; Total:所有数据大小; Request : 查看请求内容(底下的Headers,Query String,Cookies,Raw。) Headers:发送请求的头部信息; Query String : 发送参数列表; Cookies: 浏览器缓存; Raw:发送的原生数据,包括了头部和参数; Reponse : 查看响应内容 Headers:是返回的头部信息; Text:返回信息(除去头部)后的文本; Hex:返回信息的16进制表示; XML:我返回的数据是XML。如果你返回的是JSON,这里就会显示JSON; XML Text:如果你返回JSON,这里会显示JSON Text; Raw:返回的所有原生数据,包括头部; Summary: 查看发送数据的一些简要信息(主机,状态码,数据的类型,header和body大下,加载时间,总时间) Chart: Summary中简要信息以图表形式展示 Notes: 其他信息
(1)菜单栏:Proxy

从上到下依次为:开始/停止捕捉会话,开始/停止SSL代理,开始/停止模拟网络环境,启用/禁用断点,记录会话设置,SSL代理设置,节流设置,断点设置,反向代理设置,端口转发,记录计算机上的所有请求,代理设置,访问控制设置,外部代理设置,Web界面设置
(2)菜单栏:Tools

No Caching Settings:禁用缓存设置。
Block Cookies Settings:禁用 Cookie设置。
Map Remote Settings:远程映射设置,Map Local Settings:本地映射设置。
使用本机/其它服务器文件代替正常的response,作为长期response重定向功能使用
Compose:构造一条新的请求
Repeat:重复发包,Repeat Advanced:高级重复发包
重发请求,可以用于简单的压力测试
Rewrite Settings:重写设置
动态修改request/response信息,不过他改变的只是部份信息,比如:主机地址(Host),返回状态码(response status),返回信息内容(body)等

(2)工具栏
从左到右依次为:清空抓取的请求数据,开始/停止抓取,开始/停止SSL代理,开始/停止模拟网络环境,启用/禁用断点功能,根据所选请求创建一个新的请求,重复选择请求,验证选择的响应,工具,设置
显示模式
会话的两种视图模式为Structure,Sequence以及对应的Requet,Response面板组成
(1)Structure视图,树状结构显示,可以很清晰的看到请求的数据结构,而且是以域名划分请求信息的,可以很清晰的去分析和处理数据。

(2)Sequence视图,水平结构显示,可以看到全部请求,这里的结果以数据请求的顺序来显示,最新的请求显示在最下面

如果不习惯Sequence默认的上下视图,可以修改为类似Fiddler的左右视图模式:Edit->Preferences->Viewers选择Sequence view layout为Tall即可;

更改后的界面如下图:

八.常见问题
Request和Response乱码,首先要确保证书安装成功,其次再看以下两种方法。
方法一:修改根目录下Charles.ini的配置文件,vmarg.5=-Dfile.encoding=UTF-8

方法二:Tools -> Rewrite… ->Add

Charles抓包工具操作指南的更多相关文章
- Charles抓包工具使用
Charles抓包工具使用和进行接口数据模拟 打开软件,选择Tools >> Map Local >> 勾选enable >> add >> ...
- Charles 抓包工具(新猿旺学习总结)
Charles 抓包工具安装机操作 1.Charles 抓包工具是代理服务器工具,可以拦截数据,进行更改,返回数据,以实现前端后台的请求和响应数据的测试2.Charles 菜单介绍 Charles抓包 ...
- Charles 抓包工具安装和采坑记录
Charles 抓包工具安装和采坑记录 网络抓包是解决网络问题的第一步,也是网络分析的基础.网络出现问题,第一步肯定是通过抓包工具进行路径分析,看哪一步出现异常.做网络爬虫,第一步就是通过抓包工具对目 ...
- Charles抓包工具的使用(一)
前提:charles的说明 Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的.该软件是用Java写的,能够在W ...
- Charles抓包工具的用途及应用
Charles抓包工具的用途: 排查问题,测试异常情况 注意:Charles不能直接抓https请求的包,需要用https://www.jianshu.com/p/ec0a38d9a8cf这个方法去配 ...
- charles抓包工具的中文乱码解决方法
charles是 MAC上最好用的抓包工具.charles 网上的参考文档已经很多,我就不再赘述啦.只是说说我在安装过程遇到的问题和解决方法,仅供参考. charles抓包的数据中的中文内容显示乱码, ...
- charles抓包工具的使用:概述
一. 什么是包 用户和后台客户端之间的请求数据,都是以包的形式来传递的,具体要深究,可以去看看这方面的网络知识 二. 为何要抓包 1) 可以用来分析网络流量 2) 可以用来破译抓来的数据,比如密码之类 ...
- charles抓包工具使用指南
前言 移动APP抓包 PC端抓包 查看模式 其他功能 问题汇总 1. 前言: Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓 ...
- Ubuntu 16.04下安装Charles抓包工具
Charles是一个跨平台的抓包工具,虽然没有Fiddler做的这么完美,但是也算是另一个选择. 下载: https://www.charlesproxy.com/download/ 注册: http ...
随机推荐
- Cypress系列(17)- 查找页面元素的辅助方法
如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 前言 单一的基础定位元素方法并不一定能满 ...
- 【微信H5】 Redirect_uri参数错误解决方法
1 https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx14127af0bc9fd367&redirect_uri=http ...
- spring源码解读-aop
aop是指面向切面编程,ProxyFactoryBean是spring aop的底层实现与源头,为什么这么说呢?首先我们看一段配置: 1.target是目标对象,需要对其进行切面增强 2.proxyI ...
- CocosCreator实现微信排行榜
1. 概述 不管是在现实生活还是当今游戏中,各式各样的排名层出不穷.如果我们做好一款游戏,却没有实现排行榜,一定是不完美的.排行榜不仅是玩家了解自己实力的途径,也是游戏运营刺激用户留存的一种途径.在微 ...
- 带你学够浪:Go语言基础系列 - 8分钟学复合类型
★ 文章每周持续更新,原创不易,「三连」让更多人看到是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) " 对于一般的语言使用者来说 ,20% ...
- Java多线程与并发基础
CS-LogN思维导图:记录专业基础 面试题 开源地址:https://github.com/FISHers6/CS-LogN 多线程与并发基础 实现多线程 面试题1:有几种实现线程的方法,分别是什么 ...
- 分享2个近期遇到的MySQL数据库的BUG案例
近一个月处理历史数据问题时,居然连续遇到了2个MySQL BUG,分享给大家一下,也欢迎指正是否有问题. BUG1: 数据库版本: MySQL5.7.25 - 28 操作系统: Centos 7.7 ...
- 动力节点 mysql 郭鑫 34道经典的面试题三
1.第十五题 15.列出受雇日期早于其直接上级的所有员工编号.姓名.部门名称 思路一:第一步将emp a看成员工表,将emp b 看成领导表,员工表的mgr字段应该等于领导表的主键字段 mysql&g ...
- F查询与Q查询、事务及其它
一.F查询和Q查询 1.1 F查询 在上面所有的例子中,我们构造的过滤器都是将字段值与某个我们自己设定的常量做比较.如果是对两个字段的值做比较,那这时候就要用到F查询了. Django提供F()来做这 ...
- Python 简明教程 --- 17,Python 模块与包
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 正确的判断来源于经验,然而经验来源于错误的判断. -- Fred Brooks 目录 我们已经知道函 ...