v1.3.8

SYSTEM 权限客户端 & 主控可用性增强 & Bug 修复

历时约 16 天,跨 12 次提交。本版本最重要突破是客户端完整支持以 SYSTEM 权限运行并实现远程桌面控制——突破桌面交互隔离,双模式(SYSTEM / 用户态)自动适配,锁屏界面、无用户会话等场景全覆盖。其余改动围绕主控可用性增强(日志搜索栏 / 客户端运行日志对话框 / View Windows / 拉黑用户 / 调试菜单)与多项关键 Bug 修复(32/64 位切换崩溃、Safari 移动端卡死等)。

SYSTEM 权限客户端与远程控制

  • 双模式自动适配:客户端启动时检测自身权限等级(SYSTEM / Admin / User),注册表 Winlogon + Run 双路径注册,适配服务启动(SYSTEM)和用户登录启动两种场景
  • SYSTEM 下远程桌面完整支持ScreenManager 无用户会话时自动切换 DXGI 捕获,KernelManager 绕过用户态 API 以 NT 路径直接操作
  • 跨会话 DLL 注入:新增 session.cpp(176 行),支持从 SYSTEM 会话向用户会话注入控制模块,解决 SYSTEM 进程无法直接操作用户桌面的历史难题
  • 权限列显示:在线主机列表新增「权限」列,实时显示 SYSTEM(蓝色高亮)/ Admin / User,一眼识别受控端权限上下文

安全边界:以 SYSTEM 权限运行的客户端拥有操作系统最高权限,请确保仅部署在受信任的受管设备上。

主控可用性增强

违禁用户拉黑

  • 主机列表右键新增「禁止连接」(Forbidden),服务端发送 COMMAND_FORBIDDEN
  • 客户端收到后断开连接并拒绝重连同一服务端;被拉黑主机列表中显示特殊状态

远程窗口管理(View Windows)

  • 远程桌面新增 View Windows 菜单项,枚举目标机器所有顶层窗口
  • 支持最大化、最小化、隐藏、关闭操作,无需离开远程桌面视图

客户端运行日志对话框

  • ClientLogManager 每 3 秒增量推送日志到主控(TOKEN_REPORT_LOG
  • CClientLog 对话框自动刷新显示;自带图标与菜单位图
  • 推送线程 join() 防 use-after-free;IOCP → UI PostMessage 防止增量包被静默丢弃

消息日志搜索栏

  • LogSearchBar 独立组件(286 行):关键字高亮、Prev/Next 导航跳转、Clear 一键清除
  • 搜索栏位于消息日志面板底部,即搜即用

调试菜单

  • 主菜单新增 YAMA_DBG 入口,可动态输入调试环境变量值,无需重启主控

改进

  • 光标设置持久化:远程桌面中的自定义光标设置保存到注册表,下次自动恢复偏好

Bug 修复

  • 32/64 位主控切换崩溃KeyboardManager 键盘钩子回调参数类型对 32/64 位不兼容;修复为使用标准 WPARAM / LPARAM 类型,服务端增加位数兼容检查
  • Safari 移动端切回卡死:iOS Safari 切换 App 再切回后 Web 远程桌面画面冻结;修复为前台切回时强制清理重建 WebSocket,服务端新增 30s 宽限期保留会话
  • 文件传输误杀主屏幕会话RunFileReceiver 错误注册了 ReconnectProcess 回调,导致文件传输完成时触发重连流程意外终止远程桌面会话
  • 隐私壁纸切换菜单行为修正:已设置隐私壁纸时,再次点击菜单项执行清除而非重新弹框

升级提示

  • SYSTEM 权限客户端为可选功能:传统用户权限客户端行为完全不变;仅在需要 SYSTEM 级权限(锁屏界面控制、无用户会话操作)时才需升级并配置服务启动
  • 客户端运行日志:需客户端升级到 v1.3.8 才能向主控推送日志;旧版客户端右键「运行日志」无数据
  • 32/64 位兼容:混合使用 32/64 位主控的部署建议全部升级到 v1.3.8 消除崩溃风险
  • Safari 修复:服务端和 Web 前端均有更新,Go 主控用户需重新编译部署
  • 拉黑不可逆:被拉黑客户端无法通过常规方式重新连接同一服务端,需管理员手动解除