Charles配合手机模拟器抓取APP数据包教程

12 篇文章 1 订阅

本教程演示在Mac OS Monterey 12.2.1版本的操作系统上,使用的Charles的版本是1.9.56,模拟器为网易MuMu模拟器,版本号4.6.2

Charles的设置

相关软件的安装此处不再展开描述,正常来说,安装Charles和MuMu模拟器(大家也可以选用自己熟悉的模拟器)的过程是比较顺利的,如果安装过程遇到困难,可以自行搜索错误信息解决。软件安装好之后,打开Charles,并依次选择Proxy -> macOS Proxy,这时Charles就会监听电脑的所有网络请求,用浏览器随便访问几个网站,会看到如下图所示的界面。
Charles抓包界面

区域①显示了不同的请求地址的数据包,点击区域②的按钮可用于清除区域①的内容,点击区域③的按钮可用于控制开始抓包和暂停抓包,点击区域④的按钮可用于开始和暂停SSL代理。

我们注意到,区域①中的每一个网址都是被折叠起来了,随便展开某个网址,然后点击其中的某条数据(也就是一次网络请求),可以在右部看到这个请求的详细信息,如下图所示。
在这里插入图片描述

在上图中我们好像看到了一个不太友好的标志,在https://csdning.cn这个域名下的三个网络请求都是一个红色的,后面跟着<unknown>。这时如果用浏览器访问csdn的官网的话,正常情况下是访问不了的,它会提示你连接是不安全的,这是因为Charles默认只能代理http类型的请求,而对csdn的访问是https类型的,因此这种访问会被禁止。

上述问题的解决方案是安装CA证书。在Charles中,依次点击Help -> SSL Proxying -> Install Charles Root Certificate,如下图所示。
在这里插入图片描述

现在我们可以在Certificates中看到Charles代理,默认它是不被信任的,如下图所示。
在这里插入图片描述

双击Charles的证书,会弹出一个新的窗口,将这个窗口Trust下的所有选项都设为Always Trust,如下图所示。
在这里插入图片描述
证书设置完毕之后,再确认一下自己的代理设置是否正确。依次点击Proxy -> Proxy Settings,然后设置代理的端口,默认为8888(需要保证这个端口没有被其它应用程序占用),并且勾选Support HTTP/2Enable transparent HTTP proxying选项,如下图所示。
在这里插入图片描述

通过上面的设置,Charles应该已经可以抓到http请求的数据包了,但如果想要抓取https的数据包,还需要进一步的设置。依次选择Proxy -> SSL Proxying Settings,在弹出的窗口中勾选Enable SSL Proxying选项,并在Include中添加要抓取哪些HostPort的网络请求,如果不是百分百的确定,可以将这两项都设置为*,表示抓取所有的数据流,如下图所示。
在这里插入图片描述

现在我们回到Charles的主界面中,为了美观起见,先点一下区域②的清除按钮,将之前抓到的包都清除一下。然后再用浏览器访问csdn官网,如果之前都配置正确的话,此时就已经可以正常访问了,Charles抓到的包如下图所示。
在这里插入图片描述

如果抓取某个地址的数据流有问题,那么可以通过Notes选项卡来查看提示信息。假如我没有进行SSL Proxying Settings这一步,那么浏览器可以正常上网,但是Chales却不能正常抓取数据包。比如访问https://www.baidu.com,会发现抓取到的数据名称为<unknown>,在Overview选项卡中有Notes信息,当然也可以点击单独的Notes选项卡来查看相关信息,如下图所示。

在这里插入图片描述

Notes给出的信息中,已经很明确的告诉我们了,对当前访问的host,SSL代理不可用,你可以在代理设置中激活SSL代理,并且设置需要走代理的host。

模拟器的设置

到目前为止,Charles已经可以在电脑上抓包了,但我们的最终目的是抓取手机APP上的数据包,因此还需要继续设置。在模拟器中安装Android操作系统时需要注意,因为安卓7.0之后对第三方证书增加了限制,会导致证书不起作用,因此需要安装6.0及以下版本的操作系统。我用于本教程演示的是6.0版本的安卓系统。

回到Charles中,依次选择Help -> SSL Proxying -> Install Charles Root Certiticate on a Mobile Device or Remote Browser,会弹出一个窗口,根据上面的提示信息,去模拟器中做相应的操作。
在这里插入图片描述

首先在模拟器中设置代理,依次点击设置 -> WLAN,然后长按网络名称,会弹出一个窗口,选择此窗口中的修改网络,如下图所示。
在这里插入图片描述

将代理方式设置为手动,代理服务器主机名和端口设置为之前提示信息中显示的114.212.22.2158888,如下图所示。
在这里插入图片描述

保存之后,打开模拟器中的浏览器,访问chls.pro/ssl,此时会在Charles中弹出一个提示窗,询问你是否允许连接,点击Allow。
在这里插入图片描述

如果一切设置正常,现在模拟器中的浏览器会下载安全证书。打开下载的证书,并且给它起个名字,然后点击确定即可完成证书的安装。此时可能会让你设置锁屏密码,按照提示设置即可。
在这里插入图片描述

效果演示

证书安装成功之后,在模拟器的浏览器中看看能不能打开百度首页,如果可以,那么所有的配置就都完成了,如果不可以,那么需要再回到之前的步骤中找原因。
在这里插入图片描述

现在在模拟器中的所有网络请求都能被Charles捕获。首先点一下扫把形状的清除按钮,然后在模拟器的浏览器中访问bilibili.com,在Charles中可以捕获到此过程的数据流。
在这里插入图片描述

到此为止,已经实现了手机APP的抓包操作。关于Charles界面右部的这几个选项卡,即OverviewContentsSummaryChartNotes等的使用,大家可以从网络上搜索其它资料做更进一步的学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值