xuemian168/qqpet_automation

GitHub: xuemian168/qqpet_automation

这是一个通过逆向分析并移植 QQ 宠物怀旧服,实现 macOS/Windows 跨平台运行及基于 Python CLI 自动化养护的项目。

Stars: 1 | Forks: 0

# QQ 宠物管家 (WorkBuddy) QQ 宠物(怀旧服 v1.2.4)的逆向分析与桌面移植项目(macOS / Windows),附带 OpenClaw Skill 实现宠物自动管理。 QQ宠物 ## 项目概述 本项目完成了三件事: 1. **逆向分析** — 完整分析了 QQ 宠物的通信架构(Express + WebSocket + RSA 上报) 2. **桌面移植** — 提取 Electron 源码,移除遥测/指纹采集,用 Ruffle WASM 替代 Flash,适配 macOS 和 Windows 3. **自动化管理** — Python CLI 直接读写 electron-store 数据文件,实现宠物状态监控与养护 image ## 快速开始 ### 1. 启动宠物 从 [Releases](https://github.com/xuemian168/qqpet_automation/releases) 下载对应平台的安装包: | 平台 | 文件 | 说明 | |------|------|------| | macOS (Apple Silicon) | `QQ宠物-x.x.x-arm64.dmg` | DMG 安装包 | | Windows (64位) | `QQ宠物 Setup x.x.x.exe` | NSIS 安装程序 | | Windows (64位) | `QQ宠物-x.x.x-portable.exe` | 免安装便携版 | #### macOS 安装 双击 `.dmg` 文件,将应用拖入 Applications 文件夹。 #### Windows 安装 - **安装版**:双击 `QQ宠物 Setup x.x.x.exe`,可自定义安装目录 - **便携版**:双击 `QQ宠物-x.x.x-portable.exe` 直接运行,无需安装 #### 从源码运行 cd qq-pet-macos && npm install && npx electron . 宠物会出现在桌面上,可拖动、右键菜单、状态栏图标。 ### 2. 安装管理工具 python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ### 3. 查看宠物状态 .venv/bin/python -m src.qq_pet.cli status 输出示例: { "name": "爹", "host": "主", "level": 1, "hunger": 3034, "hunger_max": 3100, "clean": 3026, "clean_max": 3100, "health": 5, "mood": 969, "mood_max": 1000, "is_hungry": false, "is_dirty": false, "is_sick": false } ## CLI 命令 # 状态查询 .venv/bin/python -m src.qq_pet.cli status # 宠物状态概览 .venv/bin/python -m src.qq_pet.cli info # 详细信息(等级/成长/属性) .venv/bin/python -m src.qq_pet.cli inventory # 背包物品 # 养护操作 .venv/bin/python -m src.qq_pet.cli feed # 喂食(+1000 饥饿值) .venv/bin/python -m src.qq_pet.cli bath # 洗澡(+1000 清洁值) .venv/bin/python -m src.qq_pet.cli play # 逗玩(+100 心情值) .venv/bin/python -m src.qq_pet.cli feed --amount 2000 # 指定数量 # 医疗 .venv/bin/python -m src.qq_pet.cli diagnose # 疾病诊断 .venv/bin/python -m src.qq_pet.cli heal # 自动治病(匹配背包药物) # 一键养护 .venv/bin/python -m src.qq_pet.cli auto # 按优先级自动处理所有问题 # 数据管理 .venv/bin/python -m src.qq_pet.cli backup # 备份数据文件 .venv/bin/python -m src.qq_pet.cli raw # 查看原始数据(调试) ## OpenClaw Skill 将 `skills/qq-pet/` 复制到 skill 目录后,AI 助手可通过自然语言管理宠物: cp -r skills/qq-pet ~/.openclaw/skills/ 触发关键词:`QQ宠物`、`宠物状态`、`喂食`、`洗澡`、`治病`、`一键养护` ## 移植版改动 相比 Windows 原版(QQ 宠物怀旧服),桌面移植版做了以下修改: | 修改项 | 说明 | |--------|------| | 遥测移除 | 移除 RSA 数据上报、machineId 采集、sysInfo 采集 | | Flash 替代 | PepFlash DLL → Ruffle WASM(最新 nightly) | | 自动更新 | 禁用远程更新检查 | | 存储加密 | 改为明文 JSON(方便 CLI 读写) | | 截图功能 | PrintScr.exe → macOS `screencapture` | | 窗口适配 | 修复透明窗口白框、托盘图标 ICO→PNG | | 拖动修复 | 鼠标事件监听提升到 document 级别 | | IP 获取 | 修复 Darwin 平台网络接口枚举 | ## 游戏机制(逆向所得) ### 属性临界值 - **饥饿 < 720**:进入饥饿状态 - **清洁 < 1080**:进入脏污状态 - **心情 < 100**:心情低落 - **健康 = 5** 正常,**4→1** 逐级生病,**0** = 死亡 ### 疾病系统 三条独立疾病链,不治疗会逐级恶化: 感冒(板蓝根) → 发烧(退烧药) → 重感冒(银翘丸) → 肺炎(金色消炎药水) → 死亡 咳嗽(枇杷糖浆) → 支气管炎(甘草剂) → 哮喘(定喘丸) → 肺结核(通风散) → 死亡 肚子胀(消食片) → 胃炎(蓝色消炎药水) → 胃溃疡(龙胆草) → 胃癌(仙人汤) → 死亡 ### 属性衰减(每60秒) - 饥饿/清洁:-5~8(心情<600 额外-2) - 心情:-2~4 ## 数据文件位置 | 平台 | 路径 | |------|------| | macOS(移植版) | `~/Library/Application Support/qq-pet-macos/config-macos.json` | | Windows(移植版) | `%APPDATA%/qq-pet-macos/config-macos.json` | | Windows(原版) | `%APPDATA%/pet/config.json`(AES 加密) | ## 项目结构 workbuddy/ ├── qq-pet-macos/ # macOS 移植版 Electron 应用 │ ├── main.js # 入口(已清理遥测) │ ├── package.json │ └── src/ # 源码(从 app.asar 解包修改) ├── skills/qq-pet/SKILL.md # OpenClaw Skill 定义 ├── src/qq_pet/ # Python 管理工具 │ ├── cli.py # CLI 入口 │ ├── pet_client.py # 数据客户端 │ ├── store_reader.py # electron-store 读写 │ ├── actions.py # 养护动作 │ ├── game_data.py # 游戏常量(逆向) │ └── models.py # 数据模型 ├── config.yaml # 配置文件 ├── requirements.txt # Python 依赖 └── pyproject.toml ## 配置 编辑 `config.yaml`: store_path: "" # 留空自动检测 encryption_key: "aes-256-cbc" # Windows 原版加密密钥 thresholds: hunger: 720 clean: 1080 mood: 100 health: 5
标签:Aarch64, CLI, DNS解析, Electron, Flash, MITM代理, Python, QQ宠物, RSA, Ruffle, WASM, WebSocket, WiFi技术, 云资产清单, 依赖分析, 协议分析, 开源项目, 怀旧服, 无后门, 无线安全, 权限提升, 桌面移植, 游戏外挂, 网络安全, 网络调试, 脱壳, 自动化, 自动挂机, 自定义脚本, 逆向分析, 逆向工具, 逆向工程, 遥测移除, 隐私保护