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 → UIPostMessage防止增量包被静默丢弃
消息日志搜索栏
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 主控用户需重新编译部署
- 拉黑不可逆:被拉黑客户端无法通过常规方式重新连接同一服务端,需管理员手动解除