mitmproxy 抓包
原作者: vx13@github
本文详细介绍借助 mitmproxy 实现 https 抓包的步骤,仅在 Windows 上测试 MuMu 模拟器,其他平台理论可行。
若服务器地址未知或所有服务器地址无效,请使用Charles方法。
所需软件或工具
- 脚本: 蓝奏云网盘, 密码 chaldea, 下载并解压
mitmproxy抓包.zip
,压缩包中已包含 Windows 版 mitmproxy/dump.exe 可执行文件 - mitmproxy: 同样提供 Windows、macOS 以及 Linux 版,开源软件。若需要可从官网更新新版或下载其他系统版本:
- Android only:
- Android 版本需小于等于 6,现在手机基本见不到旧版本的安卓了,模拟器使用 Android 6 较多,可在
设置-关于
中查看 Android 版本 - 若Android版本大于6,则需要将抓包软件的证书从用户证书移到系统证书(需root)
- adb: https://stackoverflow.com/a/46569793
- 或各类框架: Magisk等,注意一般情况下模拟器不支持框架
- Android 版本需小于等于 6,现在手机基本见不到旧版本的安卓了,模拟器使用 Android 6 较多,可在
对于 iOS/Android 上的部分设置与 Charles 版教程类似,如有疑惑可前往带截图的 Charles 教程做参考。
设置服务器地址与本机地址
编辑fgoproxy.ini
:
- 将
server=***
的地址替换为简介-服务器地址中对应区服的地址 - 设置电脑的本机地址
ip
为:- Android: 同下一步的网关/DNS/电脑 ip
- iOS: 局域网下的电脑 ip
Android 模拟器流程
设置网络
启动 MuMu 模拟器
在模拟器中,依次点击“系统应用->设置->WLAN”,长按“已连接”,至弹出窗口,选择“修改网络”,
进行下列设置并保存:
- IP 设置=静态
- IP 地址=10.0.2.15
- 网关=10.0.2.2
- 网络前缀长度=24
- DNS 1=10.0.2.2
- DNS 2=(留空)
注意,若使用其他模拟器,可以尝试将上述的 10.0.2.* 替换成以下值
模拟器 | IP | DNS/网关 |
---|---|---|
10.0.2.15 | 10.0.2.2 | |
夜神 | 172.17.100.15 | 172.17.100.2 |
逍遥 | 10.0.3.15 | 10.0.3.2 |
百度搜的,除 MuMu 外的模拟器未验证,不确保可用性。模拟器IP一般可在模拟器的信息或安卓设置里查询到,网关与IP一般仅最后一位不同。
安装证书
编辑 fgoproxy.ini 文件,将[mode]/install_cert 后面的数字改为 1;
双击“运行.cmd”,出现黑色窗口,若遇到防火墙弹窗,点击“允许通过”;
回到模拟器首页,启动模拟器中“浏览器”,点击浏览器上方地址栏,输入“mitm.it”,回车,打开证书安装页面;
在证书安装页面,点击 Android 下的 Get mitmproxy-ca-cert.cer,下载证书;
⚠️若显示 traffic is not passing through mitmproxy 等英文,请检查“设置网络”步骤。
点击模拟器左上角下载图标,并选择下载完成的文件,开始安装证书,证书名称可以任意填写,随后点击确定;
若模拟器左上角出现警告图标,点击提示“网络可能会受到监控”,则证书安装成功。
抓取数据
- 打开 fgoproxy.ini 文件,确认(或修改)[mode]/install_cert 后面的数字为 0;
- 双击“运行.cmd”,出现黑色窗口,若遇到防火墙弹窗,点击“允许通过”;
- 启动 MuMu 模拟器,登录 fgo 游戏;
- 在文件夹下可找到以“区服日期时间.json”命名的登录数据,此时可关闭黑色窗口,并在 Chaldea 中导入该数据。
删除证书
- 启动 MuMu 模拟器;
- 点击模拟器右上角叹号图标,点击弹出消息,点击“查看信任的凭据”;
- 选择“mitmproxy”,将弹出页面拉到底,点击页面右下“删除”按钮,点击“确定”以删除证书。
还原网络
启动 MuMu 模拟器;
在模拟器中,依次点击“系统应用->设置->WLAN”,长按“已连接”,至弹出窗口,选择“修改网络”,
进行下列设置并保存:
- IP 设置=DHCP
iOS 设备流程
测试不充分,仍有待检验!
设置网络
- 与电脑处于同一局域网/路由器下,如 IP 均为 192.168.1.*
- 打开“设置-WiFi-已连接 WiFi 末尾的详情按钮-配置 DNS-手动”
- 删除默认 DNS 服务器,输入电脑 IP,保存
安装证书
编辑 fgoproxy.ini 文件,将[mode]/install_cert 后面的数字改为 1;
双击“运行.cmd”,出现黑色 cmd 窗口,若遇到防火墙弹窗,点击“允许通过”;
打开 Safari 浏览器,Safari,Safari,不能使用其他浏览器!点击浏览器上方地址栏,输入“mitm.it”,回车,打开证书安装页面;
在证书安装页面,点击 iOS 下的 Get mitmproxy-ca-cert.pem,下载证书;
⚠️若显示 traffic is not passing through mitmproxy 等英文,请检查“设置网络”步骤。
下载完证书后,前往“设置-已下载的描述文件”或“设置-通用-描述文件”,选择刚下载的证书安装。
前往“设置-通用-关于本机-证书信任设置”,打开证书信任开关。(iOS 10.4 以下无需此步骤)
抓取数据
- 打开 fgoproxy.ini 文件,确认(或修改)[mode]/install_cert 后面的数字为 0;
- 双击“运行.cmd”,出现黑色窗口,若遇到防火墙弹窗,点击“允许通过”;
- iOS 设备登录 fgo 游戏;
- 在文件夹下可找到以“区服日期时间.json”命名的登录数据,此时可关闭黑色窗口,并在 Chaldea 中导入该数据。
删除证书
- 打开“设置-通用-关于本机-证书信任设置”关闭信任开关(下次使用直接打开即可),或打开“设置-通用-描述文件”删除证书(下次使用需重新安装)
还原网络
- 打开“设置-WiFi-已连接 WiFi 末尾详情按钮-配置 DNS-自动”,选择自动后保存
FAQ
- FAQ
- 若出现 mitm.it 一直加载打不开,或 FGO 连不上等,可尝试在黑色 cmd 窗口中输入任意字符,有可能 cmd 卡住了