yml2213 0c6aff6a6d docs(huya): 逆向定位 32hex hdid = NativeEntry.getGUID() + 真机注入通道证据
核心结论:
- 32hex hdid (WUP 登录帧 field1.tag0) = com.huya.security.hydeviceid.NativeEntry.getGUID()
- 金样本 ed0db8 为金样本设备 GUID; 当前真机 M2102J2SC getGUID()=0a7dfaa882938a6ab502511452142c57(稳定)
- NativeEntry 全字段: getGUID(32hex)/getCDID(40hex)/getHDID(40hex)/getMID(16hex)/getSDID(base64 safedeviceid)
- 单机不可铸造: 改 serialno/ANDROID_ID/删files/hydevice持久化 均不变(硬锚底层硬件)
- libhydeviceid.so 为 OLLVM+datadiv 壳; 用 dlopen->JNI_OnLoad->RegisterNatives(env表索引215) 绕开混淆

脚本: phone_probe_registernatives2(注册表)/phone_java_call_nativeentry(Java读getGUID)/phone_read_hdid(native hook)
      phone_dump_hydev(dump解密so)/phone_probe_login_frame(登录帧)/arm64_disasm(反汇编)
证据: hdid_regtable/java_nativeentry/hdid_read/login_frames/hdid_probe* + libhydeviceid_{original,dump}.so
2026-08-28 12:30:34 +08:00
2026-08-14 11:27:53 +08:00
2026-08-12 17:59:26 +08:00
2026-08-14 14:43:21 +08:00
2026-08-13 15:47:07 +08:00
2026-08-12 17:59:26 +08:00
2026-08-12 17:59:26 +08:00
2026-08-12 17:59:26 +08:00
2026-08-12 17:59:26 +08:00

斗鱼批量登录 Web 后台

全自动登录斗鱼账号、获取 Cookie 的 Web 管理平台。

功能特性

  • 极验 v3 滑块自动识别
  • 邮箱验证码自动获取(IMAP
  • 批量登录 + 实时日志推送(WebSocket
  • 代理 & 白名单自动管理
  • 角色权限控制(超级管理员 / 运营 / 客服)

项目结构

douyu_login_py/
├── core/                       # 核心业务逻辑
│   ├── models.py              # Account, ProxyConfig 数据类
│   ├── douyu/                 # 斗鱼登录模块
│   │   ├── login.py           # 登录流程
│   │   ├── crypto.py          # 密码加密
│   │   ├── email_verifier.py  # 邮箱验证码
│   │   ├── proxy.py           # 代理管理
│   │   └── whitelist.py       # 白名单管理
│   └── geetest/               # 极验验证码求解
│       ├── common/            # 公共工具(网络/加密/图像/轨迹)
│       └── v3_slide/          # v3 滑块求解器
├── web/                        # Web 后台
│   ├── backend/               # FastAPI 后端
│   │   ├── main.py            # 入口
│   │   ├── routers/           # API 路由
│   │   ├── migrations/        # Alembic 数据库迁移
│   │   └── services/          # 业务服务
│   └── frontend/              # React + Ant Design 前端
├── utils/                      # 通用工具
│   └── logger.py
├── data/                       # 运行时数据(gitignore
├── deploy.sh                   # 部署/重置工具
└── pyproject.toml

快速开始

# Docker 部署(推荐)
./deploy.sh

访问 http://localhost:8800,默认账号 admin / admin123

应用宝充值 Worker

应用宝充值 Worker 已合并到 Web 应用容器中,内部仅监听 127.0.0.1:8810,不发布额外端口。任务数据与应用数据一起保存在 data/yyb-worker-jobs/

cd /opt/douyu_login_py
python3 -c 'import secrets; print(secrets.token_urlsafe(32))'

将生成的值写入项目 .env

YYB_WORKER_KEY=随机密钥

随后执行 ./deploy.sh,它会构建并启动应用与 MySQL。Worker 不发布端口;扫码图片和支付二维码只经后台授权接口返回。服务器只需要此仓库,不需要部署 js_reverse

本机热更新调试使用 ./dev.sh(或 ./deploy.sh dev)。它会直接启动一个仅绑定 127.0.0.1:8810 的开发 Worker,后端自动使用该地址;Worker 动态数据写入 data/yyb-worker-dev/,按 Ctrl+C 会一并停止。

常用命令:

./deploy.sh          # 构建并部署
./deploy.sh logs     # 查看实时日志
./deploy.sh stop     # 停止服务
./deploy.sh restart  # 重启服务
./deploy.sh reset    # 重置所有数据(需二次确认)

敏感数据加密

账号密码、邮箱密码、Cookie、代理密钥等敏感字段会以密文形式落盘。生产环境请在 .env 中设置稳定的 APP_ENCRYPTION_KEY,并长期保留;更换该密钥会导致历史密文无法解密。

python -c "import secrets; print(secrets.token_urlsafe(32))"

邮件验证码服务

验证码读取默认使用内置的 Roundcube 服务地址;如部署自己的邮件读取服务,可在 .env 中设置 MAIL_ROUNDCUBE_URL 覆盖。

角色权限

角色 权限
超级管理员 全部功能 + 用户管理 + 权限分配
运营 账号管理 + 批量登录 + 代理配置 + Cookie 导出
客服 仅查看分配给自己的账号(只显示用户名)

登录流程

1. 获取极验参数 → 滑块验证 → 自动识别缺口
2. 获取邮箱验证 code → 发送验证邮件
3. IMAP 获取验证码 → 提交验证码 → 获取 Cookie

技术栈

  • 后端:FastAPI + SQLAlchemy + SQLite + JWT
  • 前端:React + Ant Design + Vite
  • 核心:Python + OpenCV + pycryptodome
  • 迁移:Alembic

许可证

MIT License

部署

Docker 部署

# 一键部署(自动构建镜像 + 启动服务)
./deploy.sh

# 重置所有数据(删除数据库/Cookie/日志,需二次确认)
./deploy.sh reset

部署完成后访问 http://服务器IP:8800,默认账号 admin / admin123

数据持久化: 数据库和日志通过 volume 挂载到宿主机 ./data./logs 目录,容器重建后数据不丢失。

代理配置说明

在 Web 界面"代理配置"页面设置:

  1. API 代理:填入代理 API 地址(支持返回 JSON 格式),系统自动获取并验证代理
  2. 白名单:如代理需要白名单,填入 UID 和 UKEY,系统自动同步出口 IP
  3. 出口 IP 漂移:移动网络出口 IP 频繁漂移时,系统会保留多个出口 IP 在白名单中

代理 API JSON 格式:

// 正常返回
{"code":0,"success":"true","msg":"","data":[{"IP":"1.2.3.4","Port":8080}]}

// 白名单错误
{"code":-1,"msg":"51.请先添加白名单:1.2.3.4","data":""}
S
Description
No description provided
Readme
161 MiB
Languages
Python 74.3%
TypeScript 22.4%
JavaScript 1.9%
Shell 1.1%
Dockerfile 0.2%