-
Notifications
You must be signed in to change notification settings - Fork 0
API REVERSE
米游社、原神、星穹铁道等米哈游应用的接口均为非公开 REST API。
社区工具(如 UIGF 组织的 mihoyo-api-collect)中的接口文档,几乎全部来自对官方客户端的网络抓包 + 逆向分析。
通过抓包可以获得:
- 完整的请求 URL
- 请求头(尤其是
DS、x-rpc-*系列) - Cookie(SToken、LToken、cookie_token 等)
- 请求体与返回数据结构
| 障碍 | 说明 | 解决思路 |
|---|---|---|
| HTTPS 加密 | 所有流量均加密 | 使用中间人代理(mitmproxy)并安装其 CA 证书 |
| Android 7+ 证书信任策略 | 系统默认不信任“用户证书” | 使用 Magisk 模块将用户证书提升为系统信任 |
| SSL Pinning(证书固定) | App 代码中硬编码了服务器证书指纹,拒绝非官方证书 | 需要额外使用 Frida 或 LSPosed 模块绕过 |
| 代理检测 | 部分 App 会检测是否设置了系统代理 | 模拟器环境下相对宽松,真机更严格 |
- 使用 雷电模拟器(方便 Root 与模块安装)
- 使用 mitmproxy 作为中间人代理
- 通过 Magisk + AlwaysTrustUserCerts 解决证书信任问题
- (后续)再处理 SSL Pinning
| 工具 | 用途 | 备注 |
|---|---|---|
| 雷电模拟器 9 | 运行米游社 App | 推荐 Android 9 或 11 版本 |
| mitmproxy | 抓包代理 | 使用 mitmweb 命令获得网页界面 |
| Kitsune Mask(狐狸面具) | Magisk 变种 | 雷电模拟器上比原版 Magisk 更稳定 |
| AlwaysTrustUserCerts | Magisk 模块 | 自动将用户证书复制到系统信任目录 |
| MT 管理器(可选) | 文件管理 | 用于排查证书与 su 问题 |
-
安装 mitmproxy(已安装可跳过):
pip install mitmproxy
-
启动带网页界面的代理(推荐固定端口):
mitmweb -p 8082
-
浏览器访问
http://127.0.0.1:8081,确认界面正常。 -
查看电脑局域网 IP:
ipconfig
记录当前使用的网卡 IPv4 地址(例如
192.168.1.105)。
提示:可创建
启动mitmweb.bat文件,内容如下,方便以后一键启动:@echo off mitmweb -p 8082 pause
- 打开雷电多开器,新建或选择一个模拟器实例。
- 点击右侧 设置:
- Root 权限 → 开启
- 磁盘共享 / 系统盘 → 设置为 可写入(如有该选项)
- 保存并重启模拟器。
- 进入模拟器后,打开 设置 → WLAN。
- 长按当前 Wi-Fi → 修改网络 → 高级选项:
- 代理:手动
- 主机名:电脑 IP(例如
192.168.1.105) - 端口:
8082
- 保存。
此时模拟器所有网络流量已指向电脑上的 mitmproxy。
- 下载 Kitsune Mask(狐狸面具)最新 APK。
- 将 APK 拖入模拟器并安装。
- 打开 Kitsune Mask,授予 Root 权限。
- 点击 安装 → 选择 直接安装(系统分区)。
- 安装完成后强制关闭模拟器窗口并重新启动(不要使用 App 内重启)。
- 重启后再次打开 Kitsune Mask,确认已正常识别 Root。
如果提示 su 异常,可使用 MT 管理器删除
/system/xbin/su后再打开 Magisk。
-
从 GitHub 下载最新版:
- 仓库:
NVISOsecurity/AlwaysTrustUserCerts - 下载
.zip文件(不要解压)
- 仓库:
-
将
.zip文件拖入模拟器(共享文件夹或下载目录)。 -
打开 Magisk → 底部 模块 → 从本地安装。
-
选择下载的
AlwaysTrustUserCerts-xxx.zip并安装。 -
安装完成后重启模拟器。
- 确保
mitmweb -p 8082正在运行,且模拟器代理已正确设置。 - 在模拟器浏览器中访问:
http://mitm.it - 点击 Android,下载证书。
- 安装时选择 CA 证书(安装为用户证书)。
- 安装完成后再次重启模拟器。
重启后,AlwaysTrustUserCerts 模块会自动将用户证书复制到系统信任目录。
- 打开模拟器 设置 → 安全 → 加密与凭据 → 信任的凭据。
- 切换到 系统 选项卡。
- 向下查找,应能看到 mitmproxy 相关证书。
如果能看到,说明证书信任已成功处理。
- 保持
mitmweb运行,浏览器打开http://127.0.0.1:8081。 - 在模拟器中打开任意浏览器访问网页(如百度、知乎)。
- 观察 mitmweb 界面是否出现对应请求。
如果普通网页流量已能抓取,说明代理与证书部分已配置正确。
即使证书已正确信任,米游社 App 仍大概率抓不到包,因为其实现了 SSL Pinning(证书固定)。
常见解决方式(按推荐程度):
- Frida 动态注入(灵活,适合单次分析)
- LSPosed + TrustMeAlready / JustTrustMe(持久化,适合长期使用)
本手册暂不展开详细步骤。当证书信任确认无误后,再单独处理 Pinning 即可。
| 问题 | 可能原因 | 处理建议 |
|---|---|---|
| mitmweb 启动报端口占用 | 8080/8082 被其他程序占用 | 换端口或结束占用进程 |
| 模拟器无法上网 | 代理设置错误或 mitmweb 未启动 | 检查 IP、端口与 mitmweb 状态 |
| 证书安装后系统信任列表中没有 | 模块未生效或未重启 | 确认模块已安装并完整重启 |
| 普通网页能抓,米游社不能 | SSL Pinning 未绕过 | 进入 Pinning 绕过阶段 |
| Magisk 安装失败 | 使用了原版 Magisk | 改用 Kitsune Mask |
- 仅用于个人学习与技术研究,请勿用于任何违反服务条款或法律法规的行为。
- 米哈游会不定期更新 salt、DS 算法与设备校验逻辑,抓到的接口可能随时失效。
- 模拟器环境相对安全,但仍建议不要登录重要账号。
- 完成抓包后,记得关闭模拟器代理设置,避免影响正常使用。
- 启动
mitmweb -p 8082 - 雷电模拟器开启 Root + 设置代理
- 安装 Kitsune Mask
- 安装 AlwaysTrustUserCerts 模块并重启
- 访问
http://mitm.it安装证书并再次重启 - 验证系统信任列表中出现 mitmproxy 证书
- 测试普通网页流量
- (后续)处理米游社 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
维护说明:接口与反抓包策略会持续变化,实际使用中请结合最新社区经验调整。