使用Fiddler配合夜神模拟器进行App抓包

本文所用环境及软件版本

  • Win10(22H2 19045.3031)
  • Fiddler(Progress Telerik Fiddler Classic v5.0.20211.51073 for .NET 4.6.1)
  • 夜神模拟器(v7.0.5.7001)

Ps: 列出以上环境仅给予参考,并不要求完全一致。

安装

配置

fiddler监听https

  • 菜单栏 Tools => Options => HTTPS
  • 勾选 Capture HTTPS Connects
  • 勾选 Decrypt HTTPS traffic
  • 勾选 Ignore server certificate errors(unsafe)

fiddler_https.png

fiddler允许远程连接

  • 菜单栏 Tools => Options => Connections
  • 勾选 Allow remote computers to connect

fiddler_connections.png

在模拟器中安装Xposed框架

  • 应用商店搜索Xposed,并下载安装Xposed安装器,安装完后显示的应用名为“Xposed鸭”。

yeshen_xposed_install01.png

  • 打开“Xposed鸭”,安装Xposed最新版本(Version 89)

yeshen_xposed_install02.png
yeshen_xposed_install03.png

  • 安装成功后重启模拟器,打开“Xposed鸭”将显示“已激活”字样

yeshen_xposed_install04.png

安装Xposed模块JustTrustMe(禁用SSL证书检查)

  • 下载,并安装。
  • 安装完成后进入“Xposed鸭”模块列表激活模块,勾选激活

yeshen_justTrustMe_install01.png
yeshen_justTrustMe_install02.png
yeshen_justTrustMe_install03.png
yeshen_justTrustMe_install04.png

  • 重启模拟器

在模拟器中安装fiddler证书

  • Win10中查看本地主机Ip(右键开始按钮 => Windows PowerShell => 键入ipconfig /all查看)
  • 打开夜神模拟器内置浏览器,取消安全警告(右上角三个点 => 设置 => 隐私和安全 => 取消“显示安全警告”后面的钩)

yeshen_browser_setting01.png
yeshen_browser_setting02.png
yeshen_browser_setting03.png

  • 在浏览器地址栏输入http://[本机ip]:[fiddler端口号(默认8888)],访问页面,下载证书

yeshen_browser_downloadCertificate.png

  • 点击下载好的证书文件安装证书

yeshen_browser_installCertificate.png

  • 设置WLAN代理(设置 => WLAN => 长按WiredSSID => 修改网络 => 展开高级选项,选手动代理,填入本机Ip和端口号)

yeshen_network_proxySetting01.png
yeshen_network_proxySetting02.png
yeshen_network_proxySetting03.png

使用fiddler代理后连不上网的解决方案(网络通畅可跳过)

  • 打开注册表(右键开始按钮 => 运行 => 键入“regedit” => 确定)
  • 计算机\HKEY_CURRENT_USER\Software\Microsoft\Fiddler2下新建一个DWORD(32位),值设置为80(十进制)

fiddler_regedit.png

  • fiddler中修改自定义规则(菜单 Rules => Customize Rules)
  • 将下面这段代码放入 OnBeforeRequest 方法的尾部(可用ctrl+f搜索):
    1
    2
    3
    if (oSession.host.toLowerCase() == "webserver:8888") {
    oSession.host = "webserver:80";
    }

fiddler_customizeRules.png

至此全部设置完成(恭喜

一些失败的补救

完成上述操作后就可以愉快地抓包了。但是由于Xposed框架项目早已冻结,且年久失修。系统和App的安全性越来越高的今天,不少App已经无法抓取,如发生此类情况,可尝试以下的一种方案或者多种方案配合以进行最后补救:

1.使用老版本App进行抓包

较新版本的App安全性的比较高,尝试下载老版本App进行抓取

2.使用更低的安卓版本

使用安卓5代替安卓7(理论上低版本系统安全等级更低一些),方法如下:

  • 打开模拟器多开助手

yeshen_createNewSimulator01.png

  • 添加模拟器,选择安卓5版本创建

yeshen_createNewSimulator02.png
yeshen_createNewSimulator03.png

3.使用 TrustMeAlready 代替 JustTrustMe

经过几个App测试,TrustMeAlready比JustTrustMe更稳定一些,但也存在JustTrustMe可用,TrustMeAlready不可用的情况。最好两个模块都尝试一下。【TrustMeAlready下载】

一些遗留问题(待后期解决)

  • 32位模拟器无法安装64位App,64位模拟器不支持Xposed安装,导致64位App无法使用本方案抓取。
  • Xposed框架年久失修,需寻求新的方案。

参考文档