如何使用fiddler 4进行手机模拟器抓包详细教程

写在前面的废话

博主本来一开始使用的是最新版本的 fiddler 也就是 fiddler everywhere 这个工具,这个工具时 telerik 公司最新研发的,支持 win,mac,linux 三个主流系统,下载下来之后发现新的软件的界面效果比之前的 fiddler 4 提升的不是一两个等级,看起来非常的赞,然后尝试使用了一下,发现与之前的 fiddler 4 比起来精简了不少,没有以前的 fiddler 那么繁琐,显得非常精炼,精炼的让人觉得仿佛阉割了不少,其实这本是好事,但是唯一一点我不满意的是,这个 fiddler everywhere 在 mock responder 的时候显得极为麻烦,一定要通过 match 和 action 才能进行 mock,有时候想改一个响应体的小数据压根就不知如何去改,相比而言,以前的 fiddler 4 直接把请求拖进 autoresponder 里头,再直接原处编辑保存即可,这是 fiddler everywhere 做不到,而且 fiddler everywhere 也没法直接设置断点,然后我翻遍了官网的英文文档也没有找到,很可惜 fiddler everywhere 是一个好个工具,但是在某一个关键问题上没有处理好,所以不得不放弃

工具背景

  • 使用最新的 fiddler classic 也就是 fiddler 4
  • 使用了集成在 idea 的模拟器设备,用的 android 9 系统 pixel 其中一个款机型

详细操作

第一步:fiddler 4 配置

配置 https 接收

在 Tools->Options->Https 处配置 https 可接收,配置成下图这样既可
在这里插入图片描述

配置远程设备可以连接访问
在这里插入图片描述

重启 fiddler

需要重启 fiddler 生效,否则不会生效(尝试经验)

第二步:配置模拟器代理

开启模拟器,测试代理地址

我们先打开模拟器,等其开机后,点击设备的代理选项,输入代理 ip 和端口,如下图所示
在这里插入图片描述
最后点击 apply,如果显示的是 success 表示该台设备测试连接代理是成功的。

代理地址怎么看呢,通过 win+R 打开命令控制台,ipconfig 查看 无线局域网适配器 WLAN 中的 ipv4 地址

在这里插入图片描述

在模拟器内部配置代理

进入模拟器内,我们长按 wifi 按钮可以看到一个已经存在的 wifi 网络,我点进去设置它

在这里插入图片描述

我们编辑它,并且选择高级选项,代理选择手动设置,填入代理的 ip 和端口号,最后保存

在这里插入图片描述

第三步:安装模拟器证书

安装模拟器证书

我先大致说一下为什么要模拟器安装证书,因为 https 请求一般先要拿到服务的证书,然后本机通过上层证书(这里理解为要安装的证书)中的公钥对服务器发过来证书的数字签名解密,如果解密之后的结果和服务器发送过来的证书中的数字指纹匹配,那么本机就是别对面的服务器是一个安全可信的来源,这里所说的服务器就是指代理服务器 fiddler,因为 fiddler 已经在客户机和真正的服务器之间架起了一个关口,所以证书由 fiddler 给你,之后响应也是由 fiddler 转给你,所以 fiddler 自己的数字证书当然可以被自己的根证书所解密,详细的 https 原理还请见博主的另一篇博文:数字证书?https?超详细描述https传输过程!

怎么操作呢?对于 fiddler 4 而言我们在这里安装证书,打开浏览器,输入如下地址

自己的代理服务器地址:8888

然后我们点击下方红框来安装证书,直接安装即可
在这里插入图片描述
在这里插入图片描述

证书在哪查看呢,在 settings->安全->加密与凭据->信任的凭据(显示信任的 CA 证书)->用户
在这里插入图片描述

结束:尝试访问网站

访问没有问题!fiddler 4 中的 https 也悉数被捕获
在这里插入图片描述
在这里插入图片描述

最后要注意的事

关于安卓版本对于抓 htttps 的影响

给模拟器安装证书时候,对于 android 7 以及 android 7 以上的版本是只支持系统级别的访问,不支持用户级别的访问,android 7 以上访问系统浏览器的 https 是没有问题,但是要是访问一些下载的 app 页面会发现 fiddler 抓不到 https,这是因为 android 7 及以上版本系统更安全了,要想抓 app 的 https 只能请求开发在代码中加上支持用户了,如下需要加上 user

在这里插入图片描述

©️2020 CSDN 皮肤主题: 撸撸猫 设计师:设计师小姐姐 返回首页