背景介绍
Charles是一款很实用,界面很友好(至少跟fiddler比起来),功能强大的抓包神器,因为它是基于 java 开发的,所以跨平台,Mac、Linux、Windows下都是可以使用的,并且在Android和iOS设备上通用。它的原理是通过成为电脑或者移动设备的代理截取请求和请求结果达到分析抓包的目的。本文将介绍Charles的安装,如何配置代理和一些基础功能的使用介绍以及本人使用过程中踩到的坑。如有错误,欢迎指正。
首先,Charles提供两种不同视图方式,structure视图是将网络请求按访问的域名分类;
Sequence 视图是将网络请求按访问的时间排序。
Charles安装
官网下载地址:https://www.charlesproxy.com/
官方版为试用版,启动时有10秒等待,每隔30min会有提示,这个版本emmmmm~试用一下就好
For Windows:https://www.7down.com/soft/133829.html
For Mac:http://www.xue51.com/mac/2527.html
本人私藏版下载(For Windows V4.0.2)
链接: https://pan.baidu.com/s/1OeBJUB4fbfOPSkkI-acLzQ
密码: zba5
【注】安装完后,替换”安装路径->Charleslib”文件夹下的charles.jar文件成破解版jar文件,如果再次启动未弹出30天试用的提示,说明破解成功。
Charles代理配置使用
配置代理
【注】这一步的目的是为了移动设备连接到Charles,这样移动设备发起的所有请求才能在Charles中看到。以下所有演示截图皆来自Android设备,iOS设备大同小异。
1)使用Charles工具查看PC本地IP和端口号(端口号默认为8888,也可自行修改),选择“Help->Local IP Address”
查看默认端口号“Proxy->Proxy Settings”
2)长按Android设备当前连接的WiFi,选择”Modify network”->”Advanced options”->“Proxy”->”Manual”,如下图所示,输入”Proxy hostname”和”Proxy port”(即上一步查看的IP地址和端口号)然后点击保存,见下图:
3)点击保存后,Charles会弹出connection确认弹窗,选择”Allow”,见下图:
4)注意,如果首次连接时,Charles未出现该提示,请手动进入Charles的设置选项,添加当前手机的IP,选择“Proxy->Access Control Settings”
点击“Add”手动添加IP
移动设备证书安装
上述操作只是完成了代理配置的一半,想要Charles抓到包还需要在移动设备上安装证书。
1)手机浏览器访问链接http://www.charlesproxy.com/getssl/(链接名字长,注意不要写错),也可以在Charles中查看下载证书的地址,见下图红框标注的位置
2)安装动态证书(证书名称随意填写即可),凭据用途默认即可,证书安装时需要设置系统锁,设置锁屏成功后证书会提示证书安装成功。到此,你的设备和Charles就建立了连接,可以尝试在设备上访问一个地址,在Charles左侧视图就能实时看到请求啦~但你会发现,有些请求为什么会显示成红叉unknown呢?请接着往下看~
【注】此步操作不成功的请下滑页面到底看【踩坑】部分。
ps:
注意,有一些应用使用的网络框架是不允许通过代理访问的,此时通过charles抓包显示的地址仍是unknown,或者手机上访问该应用会提示网络连接错误等信息,此时取消勾选charles的SSL Proxying settings中的勾选框就可以正常访问了
最后,抓取工作完成后,记得把手机上的代理设置恢复原样,否则当电脑上的charles关闭时,手机将无法正常访问网络
参考:
https://blog.csdn.net/manypeng/article/details/79475870