Add: 2026-05-29-熔岩之海与云鲸之梦

This commit is contained in:
Chen Gu
2026-08-13 17:00:22 +08:00
parent 4658b96406
commit 18ae0ae72b
1124 changed files with 55162 additions and 206829 deletions
+368
View File
@@ -0,0 +1,368 @@
# 2026-05-07
## maqt-backend 项目
### 项目背景
- 逆向分析「码枪堂」(MaQiangTang v7.0.4) 游戏优化工具,自建后端替换原版 API
- 软件为 Electron + React 架构,反编译产物在 Windows 机器上
- 无源码,只有编译后的 JS 文件,通过修改 minified JS 来替换 API URL
### 技术栈选型
- **后端**: Express + Prisma + PostgreSQL
- **数据库**: PostgreSQL 16-alpine (Docker)
- **镜像拉取**: 国内环境需用 DaoCloud 镜像 `docker.m.daocloud.io`Docker Hub 超时)
- **认证**: JWT (`maqt-jwt-secret-key-2026-change-in-production`)
- **加密**: `maqt-encryption-key-32bytes!`
### 基础设施
- **后端地址**: `http://localhost:3001` (Mac 本机)
- **Tailscale 访问**: Mac `100.105.17.52` → Windows `100.99.186.30`
- **Windows 远程**: `nplx@100.99.186.30` (SSH 端口 22)
- **后端项目路径**: `/Users/guchen/.openclaw/workspace/maqt-backend/`
- **Docker 容器**: `maqt-postgres``postgresql://maqt:maqt123456@localhost:5432/maqt`
- **后端运行**: `tsx watch src/index.ts`(开发模式,热重载)
### 数据库结构
Prisma Schema 11 张表:User, VipCard, Scheme, SchemeAob, FilterShare, Favorite, Like, Category, UserLog, DeviceBinding
种子数据:14 个分类 + 170 张 VIP 卡密
### API 端点(已验证)
- `POST /api/login` ✅ 正常(testuser/123456 返回 JWT
- `POST /api/register`
- `POST /api/activate-vip`
- `GET /api/session-status`
- `GET /api/vip-status`
### 前端改动
- 替换 `CfKCgw5l.js` 中 API URL`https://maqt.top``http://100.105.17.52:3001`
- 变量 `Te` 定义为新地址
- 其他 JS 文件(`2rOwIVQn.js`, `BFRCeBkE.js`, `BShhLx-D.js`)无 API URL 引用
- 前端需在 Windows 上通过 `npm install electron --save-dev` 运行
### 关键问题与解决
- **CORS 跨域**: Electron 使用 `file://` 协议,默认 CORS 拒绝 → 改为 `app.use(cors({ origin: true, credentials: true }))` 允许所有来源
- **网络错误**: 用户登录时遇到「网络错误」,已修复 CORS 配置(待验证)
- **Windows 编码**: 启动脚本必须用 GBK 编码避免中文乱码
- **`$PLUGINSDIR`**: 是批处理变量名,不是真实文件夹名
### 学习记录
- **Windows minified JS 替换**: 远程 SSH grep `findstr``Select-String` 更稳定
- **Electron 调试**: `Ctrl+Shift+I` / `F12` 打开开发者工具查看 Console
- **tsx watch 模式**: 文件修改后自动重启,适合开发迭代
---
## 桌面端复刻构想(待实施)
### 背景
反编译的代码高度混淆,修补困难。建议从零重写 Electron 桌面端,复用核心优化程序。
### 可复用的核心资产
**原生程序(位于 `$PLUGINSDIR/app-64/resources/`):**
| 文件 | 用途 |
|------|------|
| `MaqiangTangh1.exe` | 主优化程序 |
| `MaqiangTangh2.exe` | 辅助优化程序 |
| `MaqiangTangHardwareMonitor.exe` | 硬件监控 |
| `nvidiaProfileInspector.exe` | NVIDIA 显卡配置 |
| `apply-gamma-force.ps1` | Gamma 校准脚本 |
| `restore-gamma-force.ps1` | Gamma 恢复脚本 |
| `Delta Force.nip` | 游戏优化配置 |
| `Argyll/` | 色彩管理工具 |
| `icc-profiles/` | ICC 配置文件 |
| `CustomSettingNames.xml` | 设置名称映射 |
| `Reference.xml` | 参考配置 |
| `bin/` | 其他工具 |
| `xixi-haha-media/` | 媒体资源 |
### 新项目结构
```
maqt-desktop/
├── electron/ # 主进程(新写)
│ ├── main.ts # 窗口管理、IPC
│ ├── preload.ts # 干净的 electronAPI
│ └── ipc/ # IPC 处理器
├── src/ # React UI(新写)
│ ├── App.tsx # 主应用
│ ├── components/ # macOS 风格组件
│ ├── pages/ # 各功能页面
│ └── hooks/ # 状态管理
├── native/ # 复用原版程序
│ ├── MaqiangTangh1.exe
│ ├── nvidiaProfileInspector.exe
│ └── ...
├── package.json
└── electron-builder.yml
```
### 实施阶段
**阶段 1:基础框架 + UI(需新写)**
- Electron 主进程:窗口管理、IPC、原生功能
- React 前端:macOS 风格桌面 UI、导航、Dock
- preload 脚本:干净的 electronAPI 接口
- 登录/VIP 状态管理
**阶段 2+:功能对接(复用现有)**
- 调用 `MaqiangTangh1.exe` 执行优化
- 调用 PowerShell 脚本做 Gamma 校准
- 使用现有的 maqt-backend API
### 技术栈
- **Electron**: 最新稳定版
- **React**: Vite + TypeScript
- **UI**: Tailwind CSS + macOS 风格组件
- **状态管理**: Zustand 或 Jotai(轻量)
- **IPC**: electronAPI 暴露原生功能
# 2026-05-07
## maqt-backend 项目
### 项目背景
- 逆向分析「码枪堂」(MaQiangTang v7.0.4) 游戏优化工具,自建后端替换原版 API
- 软件为 Electron + React 架构,反编译产物在 Windows 机器上
- 无源码,只有编译后的 JS 文件,通过修改 minified JS 来替换 API URL
### 技术栈选型
- **后端**: Express + Prisma + PostgreSQL
- **数据库**: PostgreSQL 16-alpine (Docker)
- **镜像拉取**: 国内环境需用 DaoCloud 镜像 `docker.m.daocloud.io`Docker Hub 超时)
- **认证**: JWT (`maqt-jwt-secret-key-2026-change-in-production`)
- **加密**: `maqt-encryption-key-32bytes!`
### 基础设施
- **后端地址**: `http://localhost:3001` (Mac 本机)
- **Tailscale 访问**: Mac `100.105.17.52` → Windows `100.99.186.30`
- **Windows 远程**: `nplx@100.99.186.30` (SSH 端口 22)
- **后端项目路径**: `/Users/guchen/.openclaw/workspace/maqt-backend/`
- **Docker 容器**: `maqt-postgres``postgresql://maqt:maqt123456@localhost:5432/maqt`
- **后端运行**: `tsx watch src/index.ts`(开发模式,热重载)
### 数据库结构
Prisma Schema 11 张表:User, VipCard, Scheme, SchemeAob, FilterShare, Favorite, Like, Category, UserLog, DeviceBinding
种子数据:14 个分类 + 170 张 VIP 卡密
### API 端点(已验证)
- `POST /api/login` ✅ 正常(testuser/123456 返回 JWT
- `POST /api/register`
- `POST /api/activate-vip`
- `GET /api/session-status`
- `GET /api/vip-status`
### 前端改动
- 替换 `CfKCgw5l.js` 中 API URL`https://maqt.top``http://100.105.17.52:3001`
- 变量 `Te` 定义为新地址
- 其他 JS 文件(`2rOwIVQn.js`, `BFRCeBkE.js`, `BShhLx-D.js`)无 API URL 引用
- 前端需在 Windows 上通过 `npm install electron --save-dev` 运行
### 关键问题与解决
- **CORS 跨域**: Electron 使用 `file://` 协议,默认 CORS 拒绝 → 改为 `app.use(cors({ origin: true, credentials: true }))` 允许所有来源
- **网络错误**: 用户登录时遇到「网络错误」,已修复 CORS 配置(待验证)
- **Windows 编码**: 启动脚本必须用 GBK 编码避免中文乱码
- **`$PLUGINSDIR`**: 是批处理变量名,不是真实文件夹名
### 学习记录
- **Windows minified JS 替换**: 远程 SSH grep `findstr``Select-String` 更稳定
- **Electron 调试**: `Ctrl+Shift+I` / `F12` 打开开发者工具查看 Console
- **tsx watch 模式**: 文件修改后自动重启,适合开发迭代
---
## 桌面端复刻构想(待实施)
### 背景
反编译的代码高度混淆,修补困难。建议从零重写 Electron 桌面端,复用核心优化程序。
### 可复用的核心资产
**原生程序(位于 `$PLUGINSDIR/app-64/resources/`):**
| 文件 | 用途 |
|------|------|
| `MaqiangTangh1.exe` | 主优化程序 |
| `MaqiangTangh2.exe` | 辅助优化程序 |
| `MaqiangTangHardwareMonitor.exe` | 硬件监控 |
| `nvidiaProfileInspector.exe` | NVIDIA 显卡配置 |
| `apply-gamma-force.ps1` | Gamma 校准脚本 |
| `restore-gamma-force.ps1` | Gamma 恢复脚本 |
| `Delta Force.nip` | 游戏优化配置 |
| `Argyll/` | 色彩管理工具 |
| `icc-profiles/` | ICC 配置文件 |
| `CustomSettingNames.xml` | 设置名称映射 |
| `Reference.xml` | 参考配置 |
| `bin/` | 其他工具 |
| `xixi-haha-media/` | 媒体资源 |
### 新项目结构
```
maqt-desktop/
├── electron/ # 主进程(新写)
│ ├── main.ts # 窗口管理、IPC
│ ├── preload.ts # 干净的 electronAPI
│ └── ipc/ # IPC 处理器
├── src/ # React UI(新写)
│ ├── App.tsx # 主应用
│ ├── components/ # macOS 风格组件
│ ├── pages/ # 各功能页面
│ └── hooks/ # 状态管理
├── native/ # 复用原版程序
│ ├── MaqiangTangh1.exe
│ ├── nvidiaProfileInspector.exe
│ └── ...
├── package.json
└── electron-builder.yml
```
### 实施阶段
**阶段 1:基础框架 + UI(需新写)**
- Electron 主进程:窗口管理、IPC、原生功能
- React 前端:macOS 风格桌面 UI、导航、Dock
- preload 脚本:干净的 electronAPI 接口
- 登录/VIP 状态管理
**阶段 2+:功能对接(复用现有)**
- 调用 `MaqiangTangh1.exe` 执行优化
- 调用 PowerShell 脚本做 Gamma 校准
- 使用现有的 maqt-backend API
### 技术栈
- **Electron**: 最新稳定版
- **React**: Vite + TypeScript
- **UI**: Tailwind CSS + macOS 风格组件
- **状态管理**: Zustand 或 Jotai(轻量)
- **IPC**: electronAPI 暴露原生功能
---
## Dock 消失问题调试(进行中)
### 问题现象
解包后的 Electron 桌面应用与原版相比,首页 dock(底部导航栏)消失了。
### 已确认的代码逻辑
- **dock 组件**`$t` 只在 `Ee = "home" !== t` 时渲染(即不在首页时才显示)
- **状态定义**`[j,N]=ye.useState("home")`j 是当前页面,N 是设置函数
- **桌面图标数组**:包含"快速优化"、"画面滤镜"、"滤镜社区"、"改枪方案"等
- **点击处理**:每个图标有 `action: ()=>A(targetId,{vipRequired:!0})`
- **登录检查**`We()` 返回 token`qe()` 返回是否已登录
- **VIP 上下文**`gt()` 返回 `{isVip, vipExpireAt, refreshVipStatus}`
### 问题根因(待验证)
- dock 不显示是**设计如此**:只在离开首页后才显示
- 真正问题:点击桌面图标后导航不工作,状态停留在 "home",导致 dock 永远不显示
- 导航函数 `A` 的完整实现尚未找到
### 关键标识
- localStorage 键名:`Lt="desktop_custom_shortcuts_v1"`, `Dt="desktop_builtin_shortcuts_v1"`
- VIP 检查集合:`vt=new Set(["game-crosshair","xixi-haha","forbidden-force","resolution","one-click-optimization"])`
- 桌面图标 ID`"desktop-one-click-optimization"`, `"desktop-exposure"`, `"desktop-filter-community"`, `"desktop-weapon"`
### 下一步
1. 搜索正确的导航函数 `A`(处理 VIP/登录检查后调用 `N` 设置页面)
2. 检查为何点击图标后状态不更新
3. 对比原版打包应用和 `npx electron .` 运行环境的差异
---
## MaqiangTang 原生程序详细分析
### 程序概览
| 程序 | 大小 | 技术栈 | 功能 |
|------|------|--------|------|
| **MaqiangTangh1.exe** | 364 KB | 未知(C++/Go? | 主优化程序 |
| **MaqiangTangh2.exe** | 180 KB | 未知 | 辅助优化程序 |
| **MaqiangTangHardwareMonitor.exe** | 5.2 MB | 较大,完整功能 | 硬件监控服务 |
| **MaqiangTangXiXiOverlay.exe** | 152 KB | **.NET 8.0 + WebView2** | 游戏内 Overlay UI |
### Electron 服务架构
```
main.js (Electron 主进程)
├── SystemOptimizationService
│ ├── optimizeItem() → 执行优化
│ └── restoreItem() → 恢复默认
├── HardwareMonitorService
│ └── 调用 MaqiangTangHardwareMonitor.exe
├── XiXiOverlayNativeService
│ └── 调用 MaqiangTangXiXiOverlay.exe(游戏内 Overlay
└── ResolutionService / PowerManagementService 等
```
### 工具程序(tools/ 目录)
| 文件 | 用途 |
|------|------|
| **VibranceBridge.exe** (62MB) | 颜色振动控制,有对应 vibranceDLL.dll |
| **DVChange.exe** | 分辨率切换 |
| **nvidiaProfileInspector.exe** | NVIDIA 配置管理(含 CustomSettingNames.xml |
| **gsynctoggle.exe** | G-Sync 开关控制 |
| **dbInstaller.exe** | 驱动安装工具 |
### 色彩管理工具
| 工具 | 功能 |
|------|------|
| **Argyll/bin/iccvcgt.exe** | ICC VCGT 工具,处理显卡 Gamma Tag |
| **bin/x64/dispwin.exe** | Argyll CMS 显示窗口控制 |
### 配置文件
| 文件 | 用途 |
|------|------|
| **CustomSettingNames.xml** | NVIDIA 设置名称映射(含 3D Vision 等隐藏设置) |
| **Reference.xml** | 参考配置 |
---
## 学习记录
### Windows 远程调试技巧
- `findstr` 比 PowerShell `Select-String` 更稳定,适合在混淆 JS 中搜索
- Electron DevTools`Ctrl+Shift+I` / `F12` 打开
- 远程 SSH 执行批处理脚本需注意编码(GBK)
### React 混淆代码分析技巧
- 搜索特征字符串(如 `"home"`, `"one-click-optimization"`)定位关键代码
- useState 返回的解构模式:`[state, setState]` → 通常 `N` 是 setter
- 条件渲染模式:`condition && <Component />` 或三元表达式
## 后端部署完成(2026-05-08 凌晨)
### Git 仓库
- 仓库名: mqsrv
- 地址: https://git.gch3n.online/gch3n/mqsrv
- 代码已推送(含 API 分析文档)
### 生产环境
- 服务器: gch3n.online(腾讯云)
- Docker 容器:maqt-postgres (PostgreSQL 16) + maqt-backend (Node.js)
- 内部端口: 3002
- 公网代理: https://gch3n.online/delta/* → localhost:3002
- Caddy 反向代理已配置
### 字段差异修复
- User 模型字段: favoritesCount(非 favoritedCount, downloadsCount(非 uses
- req.user 类型: userId(非 id
- 预存 jwt.ts 类型错误已修复(expiresIn 兼容)
### 桌面端复刻规划
- 完整开发规划文档: maqt-desktop/DEVELOPMENT_PLAN.md
- 涵盖: 页面线框图、组件树、API 清单、UI 设计规范、7 阶段开发计划
- 设计风格: 军工战术风 HUD
## Fiddler 抓包关键发现
### 关键 POST Body 格式
- 注册: {"username","password","email"}
- 登录: {"username","password","installId","deviceHash","platform","osVersion","appVersion"}
- VIP 激活: {"cardKey":"xxx"}
### 原版注册端点和数据
- POST /api/register → 字段: username, password, email
- 示例: {"username":"sixteenth","password":"@WT65eijh10","email":"sixteenth@126.com"}