项目架构

本项目作为系统编程练手,把 License、Master、Client 拆成多节点结构,支持单机部署也支持分布式拓扑。

Web Browser

PC / Tablet / Mobile

↓ WebSocket

License Server

ECDSA / HMAC

Root auth / Offline

MFC Master (C++)

Windows · All features

Built-in Web server

Go Master

Win / Linux / macOS

Desktop + Terminal

↓ ↓
◄──────────────────────────────► ↘ HMAC / sub-client auth ↙

↓

Client(受控端)

Windows / Linux / macOS / Android

可选:多节点授权拓扑 — 根节点 License Server 通过 HTTPS 向下游 Go Master (RemoteSigner) 签发 JWT (RS256);下游节点永远拿不到主 HMAC 密钥;24h 本地缓存兜底网络抖动。

两种主控形态

v1.3.4 起,主控端补齐 Linux/macOS 形态,作为 MFC 主控的补充而非替代。两种主控共用同一套客户端,可混搭部署。

形态平台功能覆盖适用场景
MFC 主控 (YAMA.exe)Windows✅ 全部功能(含文件管理 / 媒体采集 / 注册表 / 品牌定制)日常运维、主推方案
Go 主控(v1.3.4 新增)Win / Linux / macOS远程桌面 + 远程终端 + 多用户分级零 Windows 依赖的纯 Linux/macOS 主控部署

三种校验模式

模式校验方式鉴权版本技术特点
默认配置(开源版)在线校验V120 连接 / 2 年;可作为开箱即用的本地测试配置
HMAC 模式HMAC + 在线校验V1启动时一次性校验;适合自部署、独立 Master 节点
ECDSA 模式ECDSA P-256 离线签名V2完全离线校验;支持多 Master 拓扑,作为分布式部署的技术尝试

技术看点

  • 双校验模式:HMAC 适合在线场景;ECDSA 把校验逻辑下放到客户端,减少对 License Server 的依赖;
  • 节点隔离:不同 Master 节点的数据、客户端互相不可见,便于做家庭实验或多用户环境隔离;
  • 水平扩展:单 Master 节点可承载较大数量的客户端长连接;架构上可堆叠多节点;
  • 离线友好:ECDSA 模式下 Master 与 License Server 可长期断网运行;
  • 全平台闭环(v1.3.4):Go 主控补齐 Linux/macOS 服务端形态,与 MFC 主控共享同一套客户端,可同时挂在同一批设备群之上;
  • 密钥隔离的多节点拓扑(v1.3.4):Go 主控 RemoteSigner 模式下,每次新设备登录通过 HTTPS 向根节点的 License Server 拉签名,下游节点内存里永远不出现主 HMAC 密钥——作为分布式授权机制的技术尝试;
  • Android 受控端(v1.3.7):MediaProjection + MediaCodec H.264 推流,AccessibilityService 触控 / 按键注入;与 Windows / Linux / macOS 客户端共享同一套服务端协议,无需改动主控即可纳管安卓设备;APK 通过 BuildDlg binary patch 生成,不依赖 Android 构建环境。
  • SYSTEM 权限客户端(v1.3.8):客户端以 SYSTEM 最高权限运行,突破桌面交互隔离(跨会话 DLL 注入),锁屏界面 / 无用户会话场景全覆盖;双模式(SYSTEM / 用户态)自动适配,主控端「权限」列一眼识别受控端权限上下文。
  • MCP 服务端集成(v1.3.9):主控内置 MCP(Model Context Protocol)服务端(JSON-RPC 2.0 / Bearer Token,本地 127.0.0.1:6544),把远程管理能力封装成 23 个工具喂给本地大模型;复用现有 V2 文件传输与屏幕操控协议链路,形成「观测 → 执行 → 控制 → 传输」闭环。
  • 实验功能与远程交互增强(v1.4.0):将 SimplePlugins 的文件管理 / 隐私屏幕 / 远程画板原生迁入客户端(「实验功能」子菜单),补齐远程交谈、TCP/UDP 连接管理与主机管理;MCP 服务端扩展出设备管理控制工具,并带来德语支持与语言切换。
  • Web 运维控制台与传输安全(v1.4.1):MFC 与 Go 主控支持多设备屏幕墙(watch 集合 + 关键帧缓存回放)、安全审计日志与查询页、离线设备历史;设备端口在同一端口嗅探 TLS ClientHello,客户端以 Schannel + 严格信任锚接入;并加入每 IP 限流、入站缓冲上限、子连接源 IP 绑定与 ConnAuth HMAC 校验。
  • MCP 工具集扩展(v1.4.2):MCP 服务端由 27 个扩展到 60 个工具——新增连接管理与主机管理(进程 / 窗口 / 网络状态 / 软件 / 浏览记录 / 收藏夹 / 服务 / 计划任务 / HOSTS 及其写操作)、远程交谈、键盘记录、文件搜索、服务端状态、文件系统写入(delete_path / move_path / create_folder,独立开关 + 系统目录保护 + 执行后复核)、主机间直传(源主机自己发、目标主机自己收,服务端只中继不落盘)、键鼠锁定与会话排障(列出并取消在飞调用);为全部工具补上「只读 / 破坏性 / 幂等 / 开放世界」注解,并加入 initialize 说明、能力上报、取消与进度、dry-run 预演。查询侧加入离线主机记录、50 台批量读取、分页与过滤。失败不再一律超时:客户端新增 4 个结构化失败 token,把「目标不存在 / 权限不足」转成 -32009 / -32010 亚秒返回;工具放弃后迟到的首包由服务端吸收,调用 MCP 不再在主控弹出对话框。端点自身开始内置 HTTPS(同端口首字节嗅探、RSA / ECDSA、fail-closed),并加了请求体上限、Bearer 失败限流与审计落盘。
  • WebSocket 传输与远程协议切换(v1.4.2):新增 PROTO_WS(5) / PROTO_WSS(6),客户端把应用字节流套进 WS 帧,服务端在设备端口明文 / TLS 之外增加第三个嗅探分支,于是只有 80 / 443 被放行的网络也能上线;在线列表右键可按入口下发 COMMAND_SET_PROTO,让已在线客户端在直连 TCP / WS / WSS 之间切换(WSS 随包下发反代信任锚,5 分钟未成功登录自动回退)。反代后的每 IP 限流改为按升级时解析的真实设备 IP 计数。
  • 抓屏健壮性与 Web 渲染(v1.4.2):旋转显示器按真实纹理描述分配并直立图像;DXGI 在不推送复制通知的驱动、无头显示与 Session 0 上取不到首帧时整段会话回退 GDI;工作站锁定与断开会话在建采集器前就选 GDI,避免初始化卡死。Web 端画布改为固定铺满容器、每帧用 ctx.setTransform 绘制(消除 iOS 的幽灵竖线),光标覆盖层与画布共用包含块并按画布局部坐标定位(修正竖屏输入法打开时的指针错位)。

本页是作者个人开源项目的技术说明,不构成商业产品的功能承诺,也不附带任何 SLA。