Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用。安装Charles的时候要先装好Java环境。相比起wireshark,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!下面来详细介绍下这款强大好用的抓包工具。
主要的功能包括:
(1)截取 Http 和 Https 网络封包;
(2)支持重发网络请求,方便后端调试;
(3)支持修改网络请求参数;
(4)支持网络请求的截获并动态修改;
(5)支持网络过滤请求;
(6)支持支持流量控制,可以模拟慢速网络以及等待时间(latency)较长的请求;
•工具界面和相关基础功能如下图所示:
•1 扫帚:功能是clear,清理掉所有请求显示信息。
•2红色圆点:功能是设置抓取的数据显示或者不显示。一般都使其为不显示抓去状态,只有当自己测试的时候的前后,在令其为抓取并显示状态。这样可以快准狠的获取到相关自己想要的信息,而不必在一堆数据请求中去寻找。
•3乌龟图标:stop throttling功能:设置流量控制,模拟慢速网络以及等待时间
•4六边形图标:break point功能:网络请求的截获
•5蓝色笔:composeanewrequest base onthe selection功能:支持编辑修改任意请求信息,比如表单信息、cookie等,修改完毕后点Execute就可以发送一个修改后的请求数据包。
•6刷新图标:repeat selected requests功能是重发网络请求,方便调试
•7绿色对勾:validate selected responses
8设置工具:Tool功能设置
•9抓取的数据包的请求地址的url信息显示
其中,Overview可以更加详细的查看这次请求的详细内容,例如耗时详细列车了请求开始时间、结束时间,响应开始时间、结束时间,总耗时、DNS耗时、网络延时等。对于Size也详细列出了请求头大小、响应头大小、压缩比例等内容
•10抓取的数据包的请求内容的信息显示。
•11设置网络请求过滤条件
移动端APP抓包
抓取APP端上的数据非常的简单,首先使手机和电脑在一个局域网内,不一定非要是一个ip段,只要是同一个路由器下就可以了。按照上面说的把证书安装好,然后找到电脑的IP。
接下来打开Charles的代理设置:Proxy->ProxySettings,设置一下端口号,默认的是8888,这个只要不和其他程序的冲突即可,并且勾选Enable transparent HTTP proxying。
在手机上连接上和电脑在同一局域网的网络上设置HTTP代理。端口号就是刚刚在Charles上设置的那个。
然后在手机上随便打开一个网址,这是Charles会弹出一个框让你确认是否代理,点击allow就可以了,如此手机上发送的请求,都会被charles截获