• v1.3.7 92f6683fe1

    v1.3.7 Stable

    yuanyuanxiang released this 2026-06-26 15:11:10 +00:00 | 12 commits to main since this release

    v1.3.7 (2026.6.26)

    ⚠️ 安全提示

    本软件涉及远程控制功能,请谨慎下载,建议在虚拟机中测试。主控程序会连接授权服务器进行必要的通讯和防破解检测。下载并使用本软件,即视为接受上述条款。

    Android 客户端 & 窗口捕获增强 & 安全加固

    本次发布历时约 12 天,跨 17 次提交,最重要的里程碑是首个 Android 受控端正式落地,打通安卓设备远程管理的完整链路。其余改动围绕三条副线:前台窗口精准捕获(PrintWindow + HWND 路由)、服务端安全加固(TOKEN_AUTH 签名 / 反破解版本绑定 / 子授权连接数限制),以及多项性能与稳定性修复。


    新功能

    Android 客户端(全新平台支持)

    • 屏幕实时推流:MediaProjection + MediaCodec H.264 硬件编码,推流至服务端;支持 arm64-v8a / armeabi-v7a,最低 Android 5.0 (API 21)
    • 触控 / 按键注入:基于 AccessibilityService,支持点击、长按、滑动、文本输入
    • TV / 机顶盒 D-pad 导航:利用 AccessibilityService 焦点导航机制,方向键精准控制焦点移动与确认,无需 root 即可完整操控 Android TV
    • 设备分组:分组名支持编译期 APK binary patch 预置,服务端可通过 CMD_SET_GROUP 动态修改;分组名持久化至应用私有目录 filesDir/yama_group,App 重启后仍保留
    • APK 生成与重签:主控 BuildDlg「生成」对话框新增 ghost - Google Android 选项,填入服务端 IP / 端口一键生成可部署 APK,流程与 Linux / macOS ghost 完全一致;配套 android/sign_apk.bat 自动检测本机 Android SDK 完成重签,支持读取 YAMA_PWD 环境变量免交互
    • 服务端删除客户端:服务端发起删除(BYE 指令)后,Android Service 通过 JNI 回调 onNativeExit() 正常停止,不留僵尸进程

    生成流程说明ghost.apk 模板文件提交到仓库;BuildDlg 在 APK 的 .so 中定位 FLAG_GHOST,直接 patch szServerIP / szPort / szGroupName,无需重新编译;patch 后需用 sign_apk.bat 重签才能安装。

    前台窗口精准捕获

    • PrintWindow 窗口捕获:客户端新增对服务端 HWND 路由指令的支持,可针对指定窗口句柄调用 PrintWindow 捕获,即便目标窗口被其他窗口遮挡也能获取完整画面;避免了原来 BitBlt 方案被遮挡时只能捕到背景的问题
    • 服务端 HWND 路由:服务端按 clientID 管理 HWND,精准将窗口捕获指令发送到持有该窗口的客户端连接
    • 在线主机右键查看活动窗口:主机列表右键菜单新增「查看活动窗口」,实时查询并显示当前目标机器前台窗口标题

    安全加固

    • TOKEN_AUTH 响应 ECDSA 签名:服务端持有 V2 私钥时,对 "SN|valid(0/1)" 以 ECDSA P-256 签名,将 sig:<base64> 写入响应 reserved 字段;客户端可验证服务端身份,防止中间人伪造授权响应,且不改变请求格式(向前兼容)
    • TOKEN_SERVER_VERIFY(cmd 251)commands.h 新增常量,配合服务端 Challenge-Response 身份校验路径
    • 反破解版本绑定:主控二进制与核心库建立版本绑定关系,检测到版本不匹配时拒绝加载,阻断替换 DLL 的破解路径;同步更新依赖库版本
    • 子授权连接数限制licenses.ini 新增 LicenseLimit 字段(0 = 不限制);超管向子级发出 TOKEN_AUTH 响应时附带 |lic:N,子级超出上限后拒绝新连接;CLicenseDlg 右键菜单支持实时查看和设置限额(1–9999,清空 = 不限制),修改后在子级下次鉴权时生效

    改进

    • H264 模式跳过首帧巨帧:H264 模式连接建立时,客户端之前会先发送一帧 ~8MB 的 ARGB 原始帧作为「首帧」;现已跳过该发送,服务端改为在收到首个 IDR 帧后自动解锁画面显示,减少约 8MB 的冗余初始传输
    • 自适应尺寸渲染改进:优化自适应分辨率模式下的渲染逻辑,减少尺寸切换时的画面抖动
    • ScanScreen 窗口捕获重构:将 ScanScreen 中的窗口捕获逻辑拆分为 3 个独立私有方法,提高可读性与后续维护性

    Bug 修复

    • ARGBToNV12 堆溢出ARGBToNV12 转换时未对输入维度做偶数对齐,奇数尺寸的窗口(如尺寸为奇数宽 / 高的应用)会导致写越界堆溢出;修复为将维度钳制到上下文的偶数对齐宽高
    • 连接初始化时多余屏幕重启(双端修复)
      • 客户端(ScreenManager.cpp):用本地保存的质量配置初始化 CScreenSpy 比特率,使服务端下发相同比特率的 CMD_QUALITY_LEVEL 时命中 SetBitRate 无变化分支,跳过重启
      • 服务端(ScreenSpyDlg.cpp):仅在自适应模式下且有缓存 maxWidth 时才发送 CMD_SCREEN_SIZE,避免固定质量等级连接时触发第二次重启
    • 启动时恢复内存 DLL:客户端程序启动时,内存 DLL 未被正确还原,导致依赖该 DLL 的功能不可用;修复初始化顺序
    • 授权客户端键盘日志目录冲突:多个授权客户端共享同一键盘日志目录时互相覆盖;现为每个授权客户端分配独立目录

    升级提示

    • Android 客户端为全新功能:已有 Windows / Linux / macOS 客户端不受影响;Android 客户端通过独立 APK 分发,需在 Android 设备上单独安装
    • APK 每次更新后须重新 patch + 重签:APK 中的 IP / 端口 / 分组是编译期写死的,服务端迁移后需重新用 BuildDlg 生成并用 sign_apk.bat 签名
    • TOKEN_AUTH 签名向前兼容:旧版客户端无法验证签名字段,但不会报错(保留字段被忽略);新版客户端对旧服务端签名缺失同样静默兼容,不强制校验
    • LicenseLimit 默认不限制:不设置 LicenseLimit 字段(或置 0)则行为与以往完全一致,不影响现有子授权部署
    Downloads