抓包神器Charles简单使用

什么是Charles

Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers包含cookies与caching信息)。

Charles安装

去Charles的官方网站(http://www.charlesproxy.com)下载最新版的相应操作系统的Charles安装包安装即可。Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。

破解Charles收费功能

链接:https://pan.baidu.com/s/1uPvSvrP9mApG76ttssIPxg  密码:ih46 下载charles.jar。MAC OS中将下载的jar替换掉/Applications/Charles.app/Contents/Java文件夹中的charles.jar

获取pc端网络请求包

Charles 是通过将自己设置成代理服务器来完成抓包的,勾选系统代理后,系统本地发出去的请求都能被截取下来。如果只抓取APP的包的话,可关闭此配置,这样不会出现太多的数据看着比较乱。

获取移动端网络请求包 

我们在调试移动APP时,需要抓取APP发送的数据包,首先进行设置,Proxy -> Proxy Settings默认端口是8888,根据实际情况可修改。

 

查看本机IP地址:Help -> Local IP Addresses

 

然后配置手机代理:

填写pc端ip已经刚才设置的端口号

打开要调试的APP,请求就会先发送到Charles,然后验证是否允许访问。

 

 查看网络请求

 

过滤请求:在Sequence界面的中部的Filter栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:*.leautolink.com,那么只需要在Filter栏中填入leautolink即可。(一般用于临时过滤)

 代理转发

实际开发时,有这样的场景,服务端线上版本有bug,你在本地修改程序后,需要模拟实际的线上环境,来验证程序的正确性,最笨的方法就是让客户端修改一下APP的调用地址到你本机,然后重新打一个版本供你模拟测试,这样虽然可以,但每次遇到bug都要这么做的话,那效率极其低下,然而Charles为我们解决了这个问题。

请求转发,把调用方调用的地址转发到你本机地址的程序进行执行

右键请求 -> Map Remote ...

 

并且配置Tools -> Map Romote

Https请求抓包

默认我们是看不到https的请求数据的。我们需要安装证书。

mac

 双击打开Charles Proxy CA

 手机配置完代理(必须的操作)后,浏览器打开http://chls.pro/ssl下载证书并安装

 然后配置Proxy -> SSL Proxying Settings... 添加要抓取的https请求,两个都写,*代表所有

 

 配置完成

参考文章:https://www.jianshu.com/p/993bc794138d

原文地址:https://www.cnblogs.com/idktp/p/10213697.html