IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Charles配合手机模拟器抓取APP数据包教程 -> 正文阅读

[网络协议]Charles配合手机模拟器抓取APP数据包教程

本教程演示在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等的使用,大家可以从网络上搜索其它资料做更进一步的学习。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 23:04:40  更:2022-03-15 23:06:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:41:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码