Skip to content

[FEATURE] 希望文档中可以补充一个mitmproxy的捕包脚本 #159

@vx13

Description

@vx13

近期看到捕包分析功能更新,作为 mitmproxy 爱好者,希望可以简化一下文档中 mitmproxy 的使用流程,遂借助 ai 整理了一个适合 MuMu 12 的一键抓包脚本

脚本和 mitmproxy 12.2.1 打包成一个压缩包,可加入文档,供没有 python 环境的玩家下载使用。
FGO 数据保存工具懒人包 v2.0.zip 链接: https://pan.baidu.com/s/1PFn_IkjabF7_66DuhrGexA?pwd=3xju 提取码: 3xju

工作流程:


第一阶段:启动与说明 (run.bat)

这是用户交互的起点,确保运行环境正确。

  1. 路径定位run.bat 脚本自动进入自身所在文件夹,确保 mitmdump 和脚本能正确被调用。
  2. 前置引导:在控制台打印 MuMu 12 的 Root权限磁盘可写ADB调试 三项关键设置路径。
  3. 引擎加载:调用命令 mitmdump -qs fgo_cap.py 启动静默抓包模式。

第二阶段:环境自动化配置 (load 阶段)

脚本启动后,在拦截流量前会执行一系列自动化检测与配置。

1. 证书自动初始化

  • 检测:检查 ~/.mitmproxy/ 目录下是否有 CA 证书。
  • 生成:若无证书,后台静默启动一个监听 0 端口的 mitmdump 子进程,强行生成证书后立即杀掉进程,避免端口占用

2. 严格路径检索 (ADB)

  • 进程定位:通过 PowerShell 锁定 MuMuNxDevice 进程。
  • 同级查找:设备进程所在的文件夹内寻找 adb.exe,彻底避开系统或其他版本 ADB 的干扰。

3. ADB 握手

  • 连接重置:执行 kill-serverstart-server 确保连接通道干净。
  • 建立连接:连接到模拟器(默认 127.0.0.1:5555)并校验 device 状态。

4. 证书深度比对与推送 (核心逻辑)

  • MD5 计算:读取本地证书 MD5,并与模拟器系统目录 /system/etc/security/cacerts/ 下的文件进行散列值比对。
  • 强制覆盖:若散列值不匹配(证书过期或更新),先执行 rm -f 强删旧证书,再重新推送并赋予 644 权限。

第三阶段:抓包、捕获与自动清理 (response & done)

一切就绪后,脚本进入等待状态。

1. 全局代理配置

  • 动态 IP:自动获取本机局域网 IP。
  • 强制设置:通过 ADB 指令 settings put global http_proxy 强制模拟器流量经过抓包引擎,无需手动修改 Wi-Fi 代理。

2. 流量过滤与提取

  • 特征匹配:监控所有 HTTPS 响应,仅拦截以 _key=toplogin 结尾的请求。
  • 结果处理:将响应体(Base64 编码的登录数据)原样提取并写入 Windows 系统剪贴板

3. 自动引导与退出

  • 成功提示:打印 Chaldea 导入指引[Https抓包]-[导入源数据]-[从剪切板]
  • 环境还原:自动将模拟器代理还原为 :0(关闭状态),确保网络正常。
  • 程序自毁:自动结束 mitmdump 进程,返回 run.bat 等待用户按键结束。

流程总结图

步骤 执行动作 关键技术/路径
1. 启动 显示 MuMu 设置指引 run.bat
2. 证书 无证书时静默后台生成 mitmdump --listen-port 0
3. ADB 锁定 MuMuNxDevice 同级目录 powershell Get-Process
4. 校验 本地 MD5 vs 远程 MD5 adb shell md5sum
5. 推送 强制删除旧证书并更新 rm -f & chmod 644
6. 拦截 匹配 _key=toplogin mitmproxy response
7. 交付 复制到剪贴板并清理代理 clip.exe & http_proxy :0

只要 MuMu 12 按照引导开启了权限,玩家只需双击一次 BAT,再正常登录游戏,即可直接在 Chaldea 中从系统剪切板导入数据。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions