Charles抓包使用教程

简介:

Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用,安装Charles的时候要先装好Java环境

Charles是在 常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析HTTP协议。

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。(可以自行网上查找破解版软件)

Charles破解charles.jar(去这个网站生产jar包,替换原来的jar包就可以了)

Charles 主要的功能包括:

截取 Http 和 Https 网络封包。

支持重发网络请求,方便后端调试。

支持修改网络请求参数。

支持网络请求的截获并动态修改。

支持模拟慢速网络。


1. Charles安装

前提先安装配置好Java环境,官网下载安装Charles:https://www.charlesproxy.com/download/

2. HTTP抓包

查看ip地址

方法一: 打开”运行”(快捷键:win+R键;或者在任务栏的”搜索”按钮中查找并点击”运行”),输入“cmd”后进入命令行窗口,在命令行窗口中输入”ipconfig”命令查看IP 


Charles抓包使用教程_第1张图片

方法二: 在charles中查看 :Help -> Local IP Address


Charles抓包使用教程_第2张图片


(2)Charles代理设置

接下来打开Charles的代理设置:Proxy->Proxy Settings,设置一下端口号,默认的是8888,这个只要不和其他程序的冲突即可,并且勾选Enable transparent HTTP proxying。


(3)在手机设备、模拟器或者远程浏览器上设置代理

抓取手机设备上的请求包(手机和电脑必须在同一个局域网内,并关闭电脑防火墙、其他代理或者翻墙软件)

第一步:在手机wifi 上设置代理 -> 长按无线网络-->修改网络-->高级选项-->代理 手动-->手动输入输入IP、端口号

服务器IP:PC机器的IP(通过之前介绍的查看IP的方法)

端口号:8888(通过之前介绍的查看端口的方法


Charles抓包使用教程_第3张图片



第二步:Charles弹出询问“allow”或者“deny”,点击“allow”按钮允许;出现手机的HTTP请求列表


Charles抓包使用教程_第4张图片



安装证书

第三步:抓取https数据需要在手机上安装证书,HTTPS的抓包需要在HTTP抓包基础上再进行设置

如果我们需要在iOS或Android机器上截取 Https 协议的通讯内容,还需要在手机上安装相应的证书。

设置前抓包HTTPS接口显示unknown(图左),设置后接口正常展示,如下图右


Charles抓包使用教程_第5张图片


Https请求出现乱码

这时候你就需要安装Charles的CA证书了

以下为在HTTP抓包基础上进行HTTP抓包的进一步设置步骤:

Help -> SSL proxying -> Install charles root certificate on a Mobile Device or remote browser…

出现弹窗得到地址chls.pro/ssl

在手机自带的系统浏览器输入地址chls.pro/ssl,出现证书安装页面,点击安装,手机设置有密码的输入密码进行安装。安装完证书后,就可以截取手机上的 Https 通讯内容了。不过同样需要注意,默认情况下 Charles 并不做截取,你还需要在要截取的网络请求上右击,选择 SSL proxy 菜单项。

注意2:iOS 10.3系统,需要在设置→通用→关于本机→证书信任设置里面启用完全信任Charles证书

ios安装证书

Charles抓包使用教程_第6张图片

Android安装证书

再次进入手机设置,点击“更多设置->系统安全->从存储设备安装->Download->.crt文件->确定”,在弹出窗,对证书命名为:Charles,点击确定(首次安装证书会让输入锁屏密码)。至此证书安装成功!立即在电脑端对手机网络进行抓包吧!

Charles设置Proxy代理

Proxy -> SSL Proxying Settings... 勾选Enable SSL Proxying,点击Add,点击Add,Host设置要抓取的https接口,  

Host : * (使用通配符表示检测所有网络请求;建议还是设置单个需要抓取的https host,尽量避免使用 * 通配符)

Port:443


Charles抓包使用教程_第7张图片



比如想抓这个,Host填写:https://api.weibo.cnPort填写:443


Charles抓包使用教程_第8张图片



!!!完成以上操作,就完成Charles抓取HTTP(S)数据包的所有配置了。查看Charles,我们可以看到数据包的内容了。


windows证书安装也是一样的


会出现证书安装的信息,我这边已经安装成功,第一次可能需要安装

Charles抓包使用教程_第9张图片
Charles抓包使用教程_第10张图片

将证书安装在“受信任的根证书颁发机构”,这步很重要

Charles抓包使用教程_第11张图片

最后提示导入成功,出现如上述证书信息显示说明证书安装成功,也可在证书路径中查看证书安装结果

Charles抓包使用教程_第12张图片

3.勾选Proxy——Windows Proxy

Charles抓包使用教程_第13张图片

4.选择Proxy——SSL Proxy Setting,添加Location

Charles抓包使用教程_第14张图片

Host和Port均设为*,

Charles抓包使用教程_第15张图片

5、想要对浏览器请求进行抓包,还要对浏览器的证书进行设置,如下图操作

Charles抓包使用教程_第16张图片

出现如下提示信息,提示你去路径 chls.pro/ssl 下载证书,访问路径可自动下载

Charles抓包使用教程_第17张图片
Charles抓包使用教程_第18张图片

6、导入浏览器证书,这里以Chrome浏览器为例,打开设置—高级—管理证书

Charles抓包使用教程_第19张图片

7、按如下步骤进行选择证书导入,记得第3步文件类型要选择所有,不然匹配不到pem格式的文件

Charles抓包使用教程_第20张图片

8、和工具端一样,将证书存储到“受信任的根证书颁发机构”下,后面直接下一步即可

Charles抓包使用教程_第21张图片


你可能感兴趣的:(Charles抓包使用教程)