一、charles工具介绍
Charles是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。
该软件是用Java写的,能够在windows、Mac、Linux上使用,安装Charles的时候要先安装好Java环境;
Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现网络封包的截取和分析,配合Charles的SSL功能,Charles还可以分析https协议;
二、原理:代理
可以通过Charles来模拟限速,因为charles本来就是个代理,模拟限速正是在客户端请求前来自定义限速的逻辑,此逻辑是通过控制发送数据或接收的数据的大小来限制网络的上传和下载,从而达到限速的效果。
Fiddler和Charles代理的区别:
fiddler:每KB的数据的上传和下载进行延迟操作
charles:每秒钟上传和下载的数据设计
三、charles安装
破解教程:
- 下载、安装;
从官网下载最新版,官网链接如下:
Download a Free Trial of Charles • Charles Web Debugging Proxy
- 打开charles,参考下图破解即可:
进入下面界面:
输入第2步生成的用户名和许可证,点击register按键
显示如下表示破解成功:
四、抓包准备设置
1)电脑的设置
安装工具;关闭防火墙;退出卸载杀毒软件;取消浏览器中的第三方插件;
2)软件设置
①Access control settings设置
注意:设置完成后重启charles工具
五.抓包
1.抓取电脑
(1)默认是抓取http请求
(2)抓取https请求
1)proxy→SSL proxying settings→勾选enable SSL proxying→add→*:443(443代表通用https端口号,host中的*代表抓取所有地址的包)→ok
2)安装证书
①PC端安装证书
打开charles-->选择help-->SSL Proxying-->Install Charles Root Certicate,点击安装证书,一直点击下一步完成即可成功安装。
点击help-->SSL Proxying-->save charles root certificate保存至桌面;
②浏览器的证书
导出来以后在浏览器-->设置-->安全检查→安全➡证书管理➡点击“受信任的根证书颁发机构”➡导入➡选择文件格式中选择所有格式➡选择下载证书(.pem格式)-->点击下一步,直至导入完成
③https抓包:
重启浏览器,发现网页可以正常打开,charles也可以正常抓包;
3)注意事项
如果不能抓取信息的可按照此方法自查:
A.防火墙是否关闭
B.杀毒软件是否卸载或者退出
c.端口是否被占用
netstat -ano | findstr "8888"-->根据坚挺的字段查找PID,如果不是charles,就关闭进程,重启charles
PID:右击任务栏-->任务管理器-->进程信息
2.手机端抓包:
(1)电脑端同前面
(2)手机端设置
1.手机端和电脑在同一个局域网
电脑IP,手机IP地址 前三位是否一样
2.设置-->wifi-->高级-->找到高级选项-->代理设置
代理-->选择手动
主机:IP地址(电脑端IPV4地址)
端口:8888
IP设置:DHCP
3.手机安装Charles证书
-
ios 客户端
前提:手机WiFi代理已经设置好,参考前文即可
-
打开charles.选择help-->SSL Proxying->Install Charles Root Certificate on a mobile device or remote browser
-
手机连接电脑代理,打开safari,输入网址:chls.pro/ssl
-
手机弹出提示:此网站正尝试打开“设置”已向您显示一个配置描述文件。您要允许吗?忽略|允许,选择允许,安装描述文件,并信任
-
iOS10以上的设备:设置->通用->关于本机->证书信任设置->找到charles proxy CA证书,打开信任即可
b.android 客户端
点击help-->SSL Proxying->Install Charles Root Certificate on a mobile device or remote browser,
手机设置号WiFi代理后,在手机浏览器打开下面弹框里提到的链接chls.pro/ssl,下载证书,安装即可
cer格式的证书下可以直接点击安装,安装证书过程中会要求输入锁屏密码
4.开启抓包即可
六、弱网测试:
charles设置
只针对单一网络设置,点击add,将其主机写上去即可
网络设置参数可通过选择网络后,会有默认配套参数,也可以通过手动修改上传、下载的参数
点击OK后,弱网测试已经被激活;即可以开始进行弱网测试;
注:也可点击add present->另命名后,后续可以在throttle present中选择
配置参数:
bandwidth —— 带宽,即上行、下行数据传输速度
utilisation —— 带宽可用率,大部分modern是100%
round-trip latency —— 第一个请求的时延,单位是ms。
MTU —— 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。
Releability —— 指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定。
Stability —— 连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠