Skip to content

API REVERSE

未竟 edited this page Aug 8, 2026 · 3 revisions

一、背景知识

1.1 为什么需要抓包?

米游社、原神、星穹铁道等米哈游应用的接口均为非公开 REST API。
社区工具(如 UIGF 组织的 mihoyo-api-collect)中的接口文档,几乎全部来自对官方客户端的网络抓包 + 逆向分析

通过抓包可以获得:

  • 完整的请求 URL
  • 请求头(尤其是 DSx-rpc-* 系列)
  • Cookie(SToken、LToken、cookie_token 等)
  • 请求体与返回数据结构

1.2 抓包面临的核心障碍

障碍 说明 解决思路
HTTPS 加密 所有流量均加密 使用中间人代理(mitmproxy)并安装其 CA 证书
Android 7+ 证书信任策略 系统默认不信任“用户证书” 使用 Magisk 模块将用户证书提升为系统信任
SSL Pinning(证书固定) App 代码中硬编码了服务器证书指纹,拒绝非官方证书 需要额外使用 Frida 或 LSPosed 模块绕过
代理检测 部分 App 会检测是否设置了系统代理 模拟器环境下相对宽松,真机更严格

1.3 本方案整体思路

  1. 使用 雷电模拟器(方便 Root 与模块安装)
  2. 使用 mitmproxy 作为中间人代理
  3. 通过 Magisk + AlwaysTrustUserCerts 解决证书信任问题
  4. (后续)再处理 SSL Pinning

二、所需工具

工具 用途 备注
雷电模拟器 9 运行米游社 App 推荐 Android 9 或 11 版本
mitmproxy 抓包代理 使用 mitmweb 命令获得网页界面
Kitsune Mask(狐狸面具) Magisk 变种 雷电模拟器上比原版 Magisk 更稳定
AlwaysTrustUserCerts Magisk 模块 自动将用户证书复制到系统信任目录
MT 管理器(可选) 文件管理 用于排查证书与 su 问题

三、完整操作流程

3.1 电脑端准备 mitmproxy

  1. 安装 mitmproxy(已安装可跳过):

    pip install mitmproxy
  2. 启动带网页界面的代理(推荐固定端口):

    mitmweb -p 8082
  3. 浏览器访问 http://127.0.0.1:8081,确认界面正常。

  4. 查看电脑局域网 IP:

    ipconfig

    记录当前使用的网卡 IPv4 地址(例如 192.168.1.105)。

提示:可创建 启动mitmweb.bat 文件,内容如下,方便以后一键启动:

@echo off
mitmweb -p 8082
pause

3.2 雷电模拟器基础设置

  1. 打开雷电多开器,新建或选择一个模拟器实例。
  2. 点击右侧 设置
    • Root 权限 → 开启
    • 磁盘共享 / 系统盘 → 设置为 可写入(如有该选项)
  3. 保存并重启模拟器。
  4. 进入模拟器后,打开 设置 → WLAN
  5. 长按当前 Wi-Fi → 修改网络高级选项
    • 代理:手动
    • 主机名:电脑 IP(例如 192.168.1.105
    • 端口:8082
  6. 保存。

此时模拟器所有网络流量已指向电脑上的 mitmproxy。


3.3 安装 Magisk(Kitsune Mask)

  1. 下载 Kitsune Mask(狐狸面具)最新 APK。
  2. 将 APK 拖入模拟器并安装。
  3. 打开 Kitsune Mask,授予 Root 权限。
  4. 点击 安装 → 选择 直接安装(系统分区)
  5. 安装完成后强制关闭模拟器窗口并重新启动(不要使用 App 内重启)。
  6. 重启后再次打开 Kitsune Mask,确认已正常识别 Root。

如果提示 su 异常,可使用 MT 管理器删除 /system/xbin/su 后再打开 Magisk。


3.4 安装证书信任模块(AlwaysTrustUserCerts)

  1. 从 GitHub 下载最新版:

    • 仓库:NVISOsecurity/AlwaysTrustUserCerts
    • 下载 .zip 文件(不要解压)
  2. .zip 文件拖入模拟器(共享文件夹或下载目录)。

  3. 打开 Magisk → 底部 模块从本地安装

  4. 选择下载的 AlwaysTrustUserCerts-xxx.zip 并安装。

  5. 安装完成后重启模拟器


3.5 安装 mitmproxy 证书

  1. 确保 mitmweb -p 8082 正在运行,且模拟器代理已正确设置。
  2. 在模拟器浏览器中访问:http://mitm.it
  3. 点击 Android,下载证书。
  4. 安装时选择 CA 证书(安装为用户证书)。
  5. 安装完成后再次重启模拟器

重启后,AlwaysTrustUserCerts 模块会自动将用户证书复制到系统信任目录。


3.6 验证证书是否生效

  1. 打开模拟器 设置 → 安全 → 加密与凭据 → 信任的凭据
  2. 切换到 系统 选项卡。
  3. 向下查找,应能看到 mitmproxy 相关证书。

如果能看到,说明证书信任已成功处理。


3.7 初步测试抓包

  1. 保持 mitmweb 运行,浏览器打开 http://127.0.0.1:8081
  2. 在模拟器中打开任意浏览器访问网页(如百度、知乎)。
  3. 观察 mitmweb 界面是否出现对应请求。

如果普通网页流量已能抓取,说明代理与证书部分已配置正确。


四、关于 SSL Pinning(重要)

即使证书已正确信任,米游社 App 仍大概率抓不到包,因为其实现了 SSL Pinning(证书固定)。

常见解决方式(按推荐程度):

  1. Frida 动态注入(灵活,适合单次分析)
  2. LSPosed + TrustMeAlready / JustTrustMe(持久化,适合长期使用)

本手册暂不展开详细步骤。当证书信任确认无误后,再单独处理 Pinning 即可。


五、常见问题与排查

问题 可能原因 处理建议
mitmweb 启动报端口占用 8080/8082 被其他程序占用 换端口或结束占用进程
模拟器无法上网 代理设置错误或 mitmweb 未启动 检查 IP、端口与 mitmweb 状态
证书安装后系统信任列表中没有 模块未生效或未重启 确认模块已安装并完整重启
普通网页能抓,米游社不能 SSL Pinning 未绕过 进入 Pinning 绕过阶段
Magisk 安装失败 使用了原版 Magisk 改用 Kitsune Mask

六、注意事项

  1. 仅用于个人学习与技术研究,请勿用于任何违反服务条款或法律法规的行为。
  2. 米哈游会不定期更新 salt、DS 算法与设备校验逻辑,抓到的接口可能随时失效。
  3. 模拟器环境相对安全,但仍建议不要登录重要账号。
  4. 完成抓包后,记得关闭模拟器代理设置,避免影响正常使用。

七、流程总结(快速回顾)

  1. 启动 mitmweb -p 8082
  2. 雷电模拟器开启 Root + 设置代理
  3. 安装 Kitsune Mask
  4. 安装 AlwaysTrustUserCerts 模块并重启
  5. 访问 http://mitm.it 安装证书并再次重启
  6. 验证系统信任列表中出现 mitmproxy 证书
  7. 测试普通网页流量
  8. (后续)处理米游社 SSL Pinning

八、电脑软件抓包

启动 mitmweb(端口建议用 8082):Bashmitmweb -p 8082 安装 mitmproxy 证书到 Windows「受信任的根证书颁发机构」(本地计算机)。 系统代理或者tun都行。

proxies:
  - name: "mitmproxy"
    type: http
    server: 127.0.0.1
    port: 8082

prepend-rules:
  - PROCESS-NAME,你的软件名.exe,mitmproxy
  - PROCESS-NAME,另一个软件.exe,mitmproxy
  - IP-CIDR,127.0.0.0/8,DIRECT
  - IP-CIDR,198.18.0.0/16,DIRECT

文档版本:2026-08
适用环境:Windows + 雷电模拟器 9 + mitmproxy
维护说明:接口与反抓包策略会持续变化,实际使用中请结合最新社区经验调整。

Clone this wiki locally