From 92f6683fe1ff973533b3f11cd3e83c5e00418f9d Mon Sep 17 00:00:00 2001 From: yuanyuanxiang <962914132@qq.com> Date: Fri, 26 Jun 2026 15:28:57 +0200 Subject: [PATCH] Release v1.3.7 --- ReadMe.md | 58 +++++++++++++++++++++++++++----- ReadMe_EN.md | 58 +++++++++++++++++++++++++++----- ReadMe_TW.md | 58 +++++++++++++++++++++++++++----- client/Script.rc | 4 +-- client/TestRun.rc | Bin 4578 -> 4578 bytes server/2015Remote/2015Remote.rc | Bin 157992 -> 157992 bytes server/2015Remote/UIBranding.h | 2 +- 7 files changed, 153 insertions(+), 27 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 79d9672..653e6be 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -12,7 +12,7 @@ Gitea Release - Client Platforms + Client Platforms Server Platforms Language License @@ -94,6 +94,7 @@ | **Windows** | ✅ 完整功能 | ✅ MFC `YAMA.exe`(推荐)/ Go | | **Linux** (X11) | ✅ 屏幕 + 终端 + 文件 + 剪贴板 | ✅ Go | | **macOS** (Intel + Apple Silicon) | ✅ 屏幕 + 终端 + 文件 + 剪贴板 | ✅ Go | +| **Android** (v1.3.7+) | ✅ 屏幕 + 触控/按键控制 | ❌ 不适用 | --- @@ -206,6 +207,21 @@ Please read and obey the instructions in [SECURITY_AI.md](./docs/SECURITY_AI.md) **编译**:`cd linux && cmake . && make` +### Android 客户端(v1.3.7+) + +**系统要求**:Android 5.0 (API 21) 及以上 + +| 功能 | 状态 | 实现 | +|---|---|---| +| 远程桌面 | ✅ | MediaProjection + MediaCodec H.264 硬件编码 | +| 触控/按键控制 | ✅ | AccessibilityService 注入,支持 D-pad 导航 | +| 心跳/RTT | ✅ | RFC 6298 RTT 估算 | +| 设备分组 | ✅ | szGroupName 编译期 patch / 服务端动态修改 | + +**生成客户端**:在主控 BuildDlg「生成」→ 选 `ghost - Google Android`,填入服务端 IP / 端口,生成 APK;使用 `android/sign_apk.bat` 重签后安装。 + +**编译**:在 WSL 或 Linux 中 `cd android && ./build_apk.sh` + ### macOS 客户端(v1.3.2+) **系统要求**: @@ -258,13 +274,13 @@ Please read and obey the instructions in [SECURITY_AI.md](./docs/SECURITY_AI.md) │ TCP (自定义二进制协议) │ TCP (设备) + WS (浏览器) └────────┬─────────────────┘ │ - ┌──────────────┼──────────────┐ - ▼ ▼ ▼ - ┌─────────┐ ┌─────────┐ ┌─────────┐ - │ Windows │ │ Linux │ │ macOS │ - │ 客户端 │ │ 客户端 │ │ 客户端 │ - │ (DXGI) │ │ (X11) │ │ (CG) │ - └─────────┘ └─────────┘ └─────────┘ + ┌──────────────┼──────────────┬──────────────┐ + ▼ ▼ ▼ ▼ + ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ + │ Windows │ │ Linux │ │ macOS │ │ Android │ + │ 客户端 │ │ 客户端 │ │ 客户端 │ │ 客户端 │ + │ (DXGI) │ │ (X11) │ │ (CG) │ │ (MP/MC) │ + └─────────┘ └─────────┘ └─────────┘ └─────────┘ ``` ### 多层授权(简化视图) @@ -340,6 +356,7 @@ nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 & - **C++ 主控 & Windows 客户端**:VS 2019/2022/2026 打开 `SimpleRemoter.sln` → Release | x64 - **Linux 客户端**:`cd linux && cmake . && make` - **macOS 客户端**:`cd macos && ./build.sh` +- **Android 客户端**:`cd android && ./build_apk.sh`(WSL/Linux) - **Go 主控**:`cd server/go && go build ./cmd` --- @@ -361,6 +378,31 @@ nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 & ## 更新日志 +### v1.3.7 (2026.6.26) + +**Android 客户端 & 窗口捕获增强 & 安全加固** + +**新功能:** +- **Android 客户端**:首个 Android 受控端,支持 Android 5.0+(arm64-v8a / armeabi-v7a),MediaProjection + MediaCodec H.264 推流;AccessibilityService 触控 / 按键注入;D-pad 焦点导航完整控制 TV / 机顶盒 +- **设备分组**:编译期 patch 预设 / 服务端动态修改(`CMD_SET_GROUP`);分组名持久化至 `filesDir/yama_group`,App 重启后保留 +- **APK 生成与重签**:BuildDlg 新增 `ghost - Google Android`,与 Linux / macOS ghost 流程一致;配套 `sign_apk.bat` 自动检测 SDK 完成重签 +- **服务端删除客户端**:BYE 指令后 Android Service 通过 JNI 正常停止 +- **前台窗口精准捕获**:PrintWindow + 服务端 HWND by clientID 路由,遮挡情况下仍可捕获完整窗口 +- **在线主机右键查看活动窗口**:实时查询目标机器前台窗口标题 +- **TOKEN_AUTH 响应 ECDSA 签名**:V2 私钥签名服务端响应,防伪服务端(`TOKEN_SERVER_VERIFY = 251`) +- **反破解版本绑定**:版本与核心库绑定,阻断替换 DLL 的破解路径 +- **子授权连接数限制**:`LicenseLimit` 字段 + `CLicenseDlg` 右键菜单实时设置 + +**改进:** +- H264 模式跳过首帧 ~8MB 原始巨帧,服务端在首 IDR 帧后解锁画面 +- 自适应尺寸渲染改进,减少尺寸切换抖动 + +**Bug 修复:** +- `ARGBToNV12` 奇数尺寸窗口堆溢出(维度钳制到偶数对齐) +- 连接初始化时多余屏幕重启(客户端 `ScreenManager.cpp` + 服务端 `ScreenSpyDlg.cpp` 双端修复) +- 启动时内存 DLL 未正确还原 +- 授权客户端键盘日志目录冲突(各实例使用独立目录) + ### v1.3.6 (2026.6.14) **ROI 区域捕获 & Web 音频流 & 主界面可用性全面提升** diff --git a/ReadMe_EN.md b/ReadMe_EN.md index 61952f6..ddc9916 100644 --- a/ReadMe_EN.md +++ b/ReadMe_EN.md @@ -12,7 +12,7 @@ Gitea Release - Client Platforms + Client Platforms Server Platforms Language License @@ -94,6 +94,7 @@ This release (v1.3.4) adds the last missing piece — the **Go master**: a **del | **Windows** | ✅ All features | ✅ MFC `YAMA.exe` (recommended) / Go | | **Linux** (X11) | ✅ Screen + terminal + files + clipboard | ✅ Go | | **macOS** (Intel + Apple Silicon) | ✅ Screen + terminal + files + clipboard | ✅ Go | +| **Android** (v1.3.7+) | ✅ Screen + touch/key injection | ❌ N/A | --- @@ -206,6 +207,21 @@ Unless an offline license has been obtained, the master program exchanges necess **Build**: `cd linux && cmake . && make` +### Android Client (v1.3.7+) + +**Requirements**: Android 5.0 (API 21) or later + +| Feature | Status | Implementation | +|---|---|---| +| Remote desktop | ✅ | MediaProjection + MediaCodec H.264 hardware encoding | +| Touch / key injection | ✅ | AccessibilityService, supports D-pad TV navigation | +| Heartbeat / RTT | ✅ | RFC 6298 RTT estimation | +| Device grouping | ✅ | Build-time patch or server-side `CMD_SET_GROUP`; persisted across restarts | + +**Generate client**: In the master BuildDlg *Build* dialog, select `ghost - Google Android`, enter the server IP / port, and the APK is generated. Re-sign with `android/sign_apk.bat` before installing. + +**Build**: in WSL or Linux — `cd android && ./build_apk.sh` + ### macOS Client (v1.3.2+) **Requirements**: @@ -258,13 +274,13 @@ Unless an offline license has been obtained, the master program exchanges necess │ TCP (custom binary proto)│ TCP (devices) + WS (browsers) └────────┬─────────────────┘ │ - ┌──────────────┼──────────────┐ - ▼ ▼ ▼ - ┌─────────┐ ┌─────────┐ ┌─────────┐ - │ Windows │ │ Linux │ │ macOS │ - │ client │ │ client │ │ client │ - │ (DXGI) │ │ (X11) │ │ (CG) │ - └─────────┘ └─────────┘ └─────────┘ + ┌──────────────┼──────────────┬──────────────┐ + ▼ ▼ ▼ ▼ + ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ + │ Windows │ │ Linux │ │ macOS │ │ Android │ + │ client │ │ client │ │ client │ │ client │ + │ (DXGI) │ │ (X11) │ │ (CG) │ │ (MP/MC) │ + └─────────┘ └─────────┘ └─────────┘ └─────────┘ ``` ### Multi-Layer Authorization (simplified view) @@ -340,6 +356,7 @@ Valid : 2026-02-01 to 2028-02-01 - **C++ master & Windows client**: open `SimpleRemoter.sln` in VS 2019 / 2022 / 2026 → Release | x64 - **Linux client**: `cd linux && cmake . && make` - **macOS client**: `cd macos && ./build.sh` +- **Android client**: `cd android && ./build_apk.sh` (WSL / Linux) - **Go master**: `cd server/go && go build ./cmd` --- @@ -361,6 +378,31 @@ Valid : 2026-02-01 to 2028-02-01 ## Changelog +### v1.3.7 (2026.6.26) + +**Android Client & Window Capture & Security Hardening** + +**New features:** +- **Android client**: first Android controlled-side client, Android 5.0+ (arm64-v8a / armeabi-v7a); MediaProjection + MediaCodec H.264 streaming; AccessibilityService touch / key injection; D-pad focus navigation for full TV / set-top-box control +- **Device grouping**: group name embedded at build time via APK binary patch or changed live by the server (`CMD_SET_GROUP`); persisted to `filesDir/yama_group`, survives app restarts +- **APK build & re-sign**: BuildDlg adds `ghost - Google Android`, same workflow as Linux / macOS ghost; `sign_apk.bat` auto-detects SDK and re-signs +- **Clean exit on server delete**: BYE command triggers JNI `onNativeExit()` → `stopSelf()` +- **Foreground window capture**: PrintWindow + server-side HWND routing by clientID, captures the target window even when occluded +- **View active window from host list**: right-click menu queries and shows the foreground window title of the target machine in real time +- **TOKEN_AUTH ECDSA signature**: server signs auth responses with its V2 P-256 key to prevent fake-server attacks (`TOKEN_SERVER_VERIFY = 251`) +- **Anti-cracking version binding**: binary binds to core lib version; mismatched DLL replacement is rejected at load time +- **Sub-license connection cap**: `LicenseLimit` field in `licenses.ini` + real-time set / clear from `CLicenseDlg` right-click menu + +**Improvements:** +- H264 mode skips the initial ~8 MB raw first-frame; server unlocks display on the first IDR instead +- Adaptive-size rendering improvements, fewer dimension-change artifacts + +**Bug fixes:** +- `ARGBToNV12` heap overflow on odd-sized windows (clamp dims to even-aligned width/height) +- Extra screen restarts on connection init (dual fix: client `ScreenManager.cpp` + server `ScreenSpyDlg.cpp`) +- Memory DLL not restored on client startup +- Authorization client keyboard log directory conflict (each instance gets its own directory) + ### v1.3.6 (2026.6.14) **ROI region capture & Web audio streaming & master-UI usability overhaul** diff --git a/ReadMe_TW.md b/ReadMe_TW.md index 9ab5c2e..f5192ef 100644 --- a/ReadMe_TW.md +++ b/ReadMe_TW.md @@ -12,7 +12,7 @@ Gitea Release - Client Platforms + Client Platforms Server Platforms Language License @@ -94,6 +94,7 @@ | **Windows** | ✅ 完整功能 | ✅ MFC `YAMA.exe`(推薦)/ Go | | **Linux** (X11) | ✅ 螢幕 + 終端 + 檔案 + 剪貼簿 | ✅ Go | | **macOS** (Intel + Apple Silicon) | ✅ 螢幕 + 終端 + 檔案 + 剪貼簿 | ✅ Go | +| **Android** (v1.3.7+) | ✅ 螢幕 + 觸控/按鍵注入 | ❌ 不適用 | --- @@ -206,6 +207,21 @@ Please read and obey the instructions in [SECURITY_AI.md](./docs/SECURITY_AI.md) **編譯**:`cd linux && cmake . && make` +### Android 用戶端(v1.3.7+) + +**系統需求**:Android 5.0 (API 21) 及以上 + +| 功能 | 狀態 | 實作 | +|---|---|---| +| 遠端桌面 | ✅ | MediaProjection + MediaCodec H.264 硬體編碼 | +| 觸控 / 按鍵注入 | ✅ | AccessibilityService,支援 D-pad TV 導航 | +| 心跳 / RTT | ✅ | RFC 6298 RTT 估算 | +| 裝置分組 | ✅ | 編譯期 patch 或服務端 `CMD_SET_GROUP` 動態修改;重啟後仍保留 | + +**產生用戶端**:在主控 BuildDlg「產生」選 `ghost - Google Android`,填入伺服端 IP / 埠,生成 APK;使用 `android/sign_apk.bat` 重簽後安裝。 + +**編譯**:在 WSL 或 Linux 中 `cd android && ./build_apk.sh` + ### macOS 用戶端(v1.3.2+) **系統需求**: @@ -258,13 +274,13 @@ Please read and obey the instructions in [SECURITY_AI.md](./docs/SECURITY_AI.md) │ TCP (自訂二進位協定) │ TCP (裝置) + WS (瀏覽器) └────────┬─────────────────┘ │ - ┌──────────────┼──────────────┐ - ▼ ▼ ▼ - ┌─────────┐ ┌─────────┐ ┌─────────┐ - │ Windows │ │ Linux │ │ macOS │ - │ 用戶端 │ │ 用戶端 │ │ 用戶端 │ - │ (DXGI) │ │ (X11) │ │ (CG) │ - └─────────┘ └─────────┘ └─────────┘ + ┌──────────────┼──────────────┬──────────────┐ + ▼ ▼ ▼ ▼ + ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ + │ Windows │ │ Linux │ │ macOS │ │ Android │ + │ 用戶端 │ │ 用戶端 │ │ 用戶端 │ │ 用戶端 │ + │ (DXGI) │ │ (X11) │ │ (CG) │ │ (MP/MC) │ + └─────────┘ └─────────┘ └─────────┘ └─────────┘ ``` ### 多層授權(簡化視圖) @@ -340,6 +356,7 @@ nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 & - **C++ 主控 & Windows 用戶端**:VS 2019/2022/2026 開啟 `SimpleRemoter.sln` → Release | x64 - **Linux 用戶端**:`cd linux && cmake . && make` - **macOS 用戶端**:`cd macos && ./build.sh` +- **Android 用戶端**:`cd android && ./build_apk.sh`(WSL/Linux) - **Go 主控**:`cd server/go && go build ./cmd` --- @@ -361,6 +378,31 @@ nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 & ## 更新日誌 +### v1.3.7 (2026.6.26) + +**Android 用戶端 & 視窗擷取增強 & 安全加固** + +**新功能:** +- **Android 用戶端**:首個 Android 受控端,支援 Android 5.0+(arm64-v8a / armeabi-v7a);MediaProjection + MediaCodec H.264 推流;AccessibilityService 觸控 / 按鍵注入;D-pad 焦點導航完整控制 TV / 機上盒 +- **裝置分組**:編譯期 patch 預設 / 伺服端動態修改(`CMD_SET_GROUP`);分組名持久化至 `filesDir/yama_group`,App 重啟後保留 +- **APK 產生與重簽**:BuildDlg 新增 `ghost - Google Android`,與 Linux / macOS ghost 流程一致;配套 `sign_apk.bat` 自動偵測 SDK 完成重簽 +- **伺服端刪除用戶端**:BYE 指令後 Android Service 透過 JNI 正常停止 +- **前台視窗精準擷取**:PrintWindow + 伺服端 HWND by clientID 路由,遮蓋情況下仍可擷取完整視窗 +- **線上主機右鍵查看活動視窗**:即時查詢目標機器前台視窗標題 +- **TOKEN_AUTH 回應 ECDSA 簽章**:V2 私鑰簽名伺服端回應,防偽造伺服端(`TOKEN_SERVER_VERIFY = 251`) +- **反破解版本綁定**:版本與核心函式庫綁定,阻斷替換 DLL 的破解路徑 +- **子授權連線數限制**:`LicenseLimit` 欄位 + `CLicenseDlg` 右鍵選單即時設定 + +**改進:** +- H264 模式跳過首幀 ~8MB 原始巨幀,伺服端在首 IDR 幀後解鎖畫面 +- 自適應尺寸渲染改進,減少尺寸切換閃爍 + +**Bug 修復:** +- `ARGBToNV12` 奇數尺寸視窗堆積溢位(維度鉗制到偶數對齊) +- 連線初始化時多餘螢幕重啟(用戶端 `ScreenManager.cpp` + 伺服端 `ScreenSpyDlg.cpp` 雙端修復) +- 啟動時記憶體 DLL 未正確還原 +- 授權用戶端鍵盤日誌目錄衝突(各實例使用獨立目錄) + ### v1.3.6 (2026.6.14) **ROI 區域擷取 & Web 音訊串流 & 主控介面可用性全面提升** diff --git a/client/Script.rc b/client/Script.rc index 6f11364..147055d 100644 --- a/client/Script.rc +++ b/client/Script.rc @@ -88,7 +88,7 @@ IDR_WAVE WAVE "Res\\msg.wav" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,3,6 + FILEVERSION 1,0,3,7 PRODUCTVERSION 1,0,0,1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG @@ -106,7 +106,7 @@ BEGIN BEGIN VALUE "CompanyName", "FUCK THE UNIVERSE" VALUE "FileDescription", "A GHOST" - VALUE "FileVersion", "1.0.3.6" + VALUE "FileVersion", "1.0.3.7" VALUE "InternalName", "ServerDll.dll" VALUE "LegalCopyright", "Copyright (C) 2019-2026" VALUE "OriginalFilename", "ServerDll.dll" diff --git a/client/TestRun.rc b/client/TestRun.rc index ff6d34a69ba4a4fb46d5168b346801f1c89ec98a..2d8930c89e285c5ae536610e966165970ed09203 100644 GIT binary patch delta 25 hcmaE){78929|xoP=6()+W=8YLiaffT-*A6p1ps&}2+sfj delta 25 hcmaE){78929|xn^=6()+W=6BgiaffT-*A6p1ps&u2+aTh diff --git a/server/2015Remote/2015Remote.rc b/server/2015Remote/2015Remote.rc index 822753150e1c7661797d36a7099eacd720dd8f96..187278bc640c4d150758ec1f73e3a354d2a61d8d 100644 GIT binary patch delta 45 zcmZ2+iF3sz&J96wjOLRS<#n4I