24 KiB
SimpleRemoter
Warning
重要法律聲明
本軟體僅供教育目的及授權使用情境:組織內遠端 IT 管理、經授權的滲透測試與安全研究、個人裝置管理與技術學習。
未經授權存取電腦系統屬違法行為。 使用者須對遵守所有適用法律承擔全部責任。開發者對任何濫用行為概不負責。
目錄
專案簡介
SimpleRemoter 是一個端到端跨平台的遠端控制解決方案。
專案核心基於經典 Gh0st 架構,最早始於 2019 年 1 月。歷經 7 年持續迭代——從 IOCP 通訊核心重構、x264 視訊級編碼、V2 檔案傳輸協定、多層授權體系,到 Linux 與 macOS 用戶端的引入——本版本最終完成用戶端 + 伺服端的全平台閉環:三大桌面作業系統(Windows / Linux / macOS)在任一側都可作為受控端或主控端。
原始來源: zibility/Remote | 起始日期: 2019.1.1
本版本亮點:全平台閉環
本專案長期以 C++ MFC 主控(YAMA.exe)為核心交付形態——經典 Gh0st 架構、IOCP 高效能核心、完整的遠端桌面 / 檔案 / 程序 / 媒體功能堆疊、多層授權體系、品牌客製化——至今仍是主要使用的主控。MFC 主控內建了基於 WebSocket 的 Web 遠端桌面服務,從 v1.3.1 起就已經支援任意平台的瀏覽器遠控被管裝置(手機 / 平板 / Linux / macOS 桌面均可)。
本版本(v1.3.4)補上了最後一塊拼圖——Go 主控:一個功能簡潔、聚焦於「遠端桌面 + 遠端終端 + 多使用者分級」 的輕量伺服端,跨 Windows / Linux / macOS 編譯執行。它的定位不是取代 MFC,而是為那些不方便執行 Windows VPS 的使用者提供原生的 Linux / macOS 主控落腳點——例如純 Linux 伺服器、ARM Mac 長駐、嵌入式主控盒等情境。
兩種主控形態如何選擇
| 形態 | GUI | 功能覆蓋 | 平台 | 定位 |
|---|---|---|---|---|
C++ MFC 主控 (YAMA.exe) |
原生 Windows GUI + 內建 Web 服務 | ✅ 全部功能 | Windows | 主推方案。日常運維、檔案管理、媒體擷取、多層授權、品牌客製化等都用它 |
| Go 主控(新) | Web UI(任何瀏覽器) | 遠端桌面 + 遠端終端 + 多使用者 | Windows / Linux / macOS | 補充方案。需要「零 Windows 依賴」的純 Linux / macOS 主控部署 |
Tip
兩種主控使用同一套用戶端——可以混搭,例如一台 Windows MFC 主控 + 一台 Linux Go 主控並行管理同一批裝置群。
Go 主控的核心能力(v1.3.4 新增)
- 遠端桌面:H.264 流透過 WebSocket 直接推送瀏覽器,WebCodecs 硬體解碼,1080P @ 20fps 流暢
- 遠端終端:xterm.js + ConPTY/PTY,支援調整尺寸、Tab 自動補全
- 多使用者體系:管理員 / 一般使用者分級、Challenge-Response 登入、不透明 token、按裝置群授權
- 生產部署:Nginx 反向代理 + Let's Encrypt + Keyboard Lock + 全螢幕控制,防止 ESC / F11 誤退出
- 刻意保持輕量:不包含檔案管理、媒體擷取、登錄檔、服務管理等 MFC 主控專屬功能——這些請走 MFC 主控
全平台支援矩陣
| 用戶端 (受控端) | 主控端 | |
|---|---|---|
| Windows | ✅ 完整功能 | ✅ MFC YAMA.exe(推薦)/ Go |
| Linux (X11) | ✅ 螢幕 + 終端 + 檔案 + 剪貼簿 | ✅ Go |
| macOS (Intel + Apple Silicon) | ✅ 螢幕 + 終端 + 檔案 + 剪貼簿 | ✅ Go |
合規與反濫用
本專案長期堅持「明確的合規姿態」立場。本版本進一步收緊反濫用邊界。
內建技術措施
原始碼層面構築多道獨立可驗證的反濫用屏障,詳見 反濫用技術措施清單:
- 入站連線 IP 區段校驗:試用版若被部署到公網會觸發可見告警 latch
- 監聽埠數量上限:試用版限制 ≤ 2 個監聽埠,防多租戶中轉改造
- 應用層 RTT 反代理:LAN 內 RTT 閾值偵測,反向代理 / 隧道會被識別
- 多層授權架構:V2 ECDSA 離線 + V1 連線 + 試用版分級,每一層限制獨立
- Web 主控驗證:強制 Challenge-Response 登入、登入限流、不透明 token、操作可稽核
合規文件
| 文件 | 內容 |
|---|---|
| 📖 反濫用與合規使用政策 | 完整的發行方-使用方責任劃分 |
| 📖 反濫用技術措施清單 | 每一道屏障的原始碼位置、設計動機、已知侷限 |
Important
使用本軟體即視為您已閱讀、理解並接受上述合規文件全部條款。 如您不能或不願接受任一條款,請立即停止使用並銷毀本軟體副本。
網路連線與隱私
| 版本類型 | 連線行為 |
|---|---|
| 試用版本 | 維持與授權伺服器的持續連線 |
| V1/V2 授權版本 | 啟動時連線驗證,通過後中斷 |
| V2 離線授權版本 | 無需連線授權伺服器 |
除獲得離線授權外,主控程式會與授權伺服器進行必要的資料互動(如偵測破解行為、驗證授權有效性)。
功能特性
遠端桌面
- 多種螢幕擷取:GDI / DXGI / 虛擬桌面(Windows)、X11 + XShm(Linux)、CGDisplayStream(macOS)
- 智慧壓縮:DIFF 差分(SSE2 最佳化)/ RGB565(節省 50% 頻寬)/ H.264(視訊級壓縮,x264 + VideoToolbox + WebCodecs)/ 灰階模式
- 自適應品質:根據 RTT 自動調節影格率(5-30 FPS)、解析度、壓縮演算法
- 多顯示器:多螢幕切換 + 多螢幕上牆
- 跨裝置檔案拖曳:Ctrl+C/V 跨裝置複製貼上檔案
- Web 遠端桌面:瀏覽器直接存取,手機 / 平板可用(設定指南)
檔案管理
- V2 傳輸協定:支援 >4GB 大檔、斷點續傳、SHA-256 校驗
- C2C 傳輸:用戶端之間直接傳輸,無需經過主控
- 批次操作:搜尋、壓縮、批次傳輸
終端管理
- 互動式 Shell:Tab 自動補全、ANSI escape、調整尺寸
- 現代終端:Windows ConPTY、Linux / macOS PTY
- Web 終端:xterm.js + WebSocket,與原生體驗一致
其他功能
| 模組 | 能力 |
|---|---|
| 程序管理 | 程序清單、CPU / 記憶體佔用、終止、DLL 注入 |
| 視窗管理 | 最大化 / 最小化 / 隱藏 / 關閉 |
| 媒體擷取 | 網路攝影機、雙向語音、鍵盤記錄 |
| 系統控制 | 服務管理、登錄檔、工作階段登出 / 關機 |
| 網路功能 | SOCKS 代理、FRP 穿透、埠映射 |
| 程式碼執行 | 遠端執行 DLL、記憶體載入、熱更新 |
全平台支援
Windows 用戶端
系統需求:Windows 7 SP1 及以上 功能完整性:✅ 全部功能支援
Linux 用戶端(v1.2.5+)
系統需求:
- 顯示伺服器:X11/Xorg(暫不支援 Wayland)
- 必需函式庫:libX11;推薦函式庫:libXtst(XTest 擴充)、libXss(閒置偵測)
| 功能 | 狀態 | 實作 |
|---|---|---|
| 遠端桌面 | ✅ | X11 螢幕擷取 + libx264 H.264 硬體編碼 |
| 遠端終端 | ✅ | PTY 互動式 Shell |
| 檔案管理 | ✅ | V2 協定、雙向傳輸、大檔 |
| 程序管理 | ✅ | 清單 + 終止 |
| 剪貼簿同步 | ✅ | xclip / xsel 外部工具,支援檔案 URI |
| 心跳 / RTT | ✅ | RFC 6298 RTT 估算 |
| 常駐程序 | ✅ | 雙 fork 守護化 |
編譯:cd linux && cmake . && make
macOS 用戶端(v1.3.2+)
系統需求:
- macOS 10.15 (Catalina) 及以上
- 架構:Intel (x64) 和 Apple Silicon (arm64) 通用二進位檔
- 系統權限:螢幕錄影、輔助功能、完整磁碟存取
| 功能 | 狀態 | 實作 |
|---|---|---|
| 遠端桌面 | ✅ | CGDisplayStream + VideoToolbox H.264 硬體編碼 |
| 鍵鼠控制 | ✅ | CGEvent,支援雙擊、拖曳 |
| 遠端終端 | ✅ | PTY 互動式 Shell(zsh/bash) |
| 檔案管理 | ✅ | V2 協定、大檔 |
| 程序管理 | ✅ | proc_listpids + 終止 |
| 剪貼簿同步 | ✅ | NSPasteboard,支援檔案 URL + NSFilenamesPboardType |
| 常駐模式 | ✅ | -d 後台執行、電源管理、閒置偵測 |
編譯:cd macos && ./build.sh
Go 主控(v1.3.4+)
系統需求:Go 1.21+(僅編譯時);二進位執行無依賴
| 能力 | 實作 |
|---|---|
| 遠端桌面 | H.264 → WebSocket → WebCodecs,1080P @ 20fps |
| 遠端終端 | xterm.js + PTY/ConPTY 透明轉發 |
| 多使用者 | Challenge-Response + 不透明 token + 按群授權 |
| 部署 | Nginx 反向代理 / Let's Encrypt / systemd unit / /etc/environment |
編譯:cd server/go && go build -o server_linux_amd64 ./cmd
系統架構
全平台拓撲
┌────────────────────────────────────────────────────────┐
│ 主控層 │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ C++ MFC 主控 │ │ Go 主控 │ │
│ │ YAMA.exe │ │ (Win/Linux/Mac) │ │
│ │ Windows only │ │ Web UI 全平台 │ │
│ └────────┬─────────┘ └────────┬─────────┘ │
└────────────┼──────────────────────────┼─────────────────┘
│ │
│ TCP (自訂二進位協定) │ TCP (裝置) + WS (瀏覽器)
└────────┬─────────────────┘
│
┌──────────────┼──────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Windows │ │ Linux │ │ macOS │
│ 用戶端 │ │ 用戶端 │ │ 用戶端 │
│ (DXGI) │ │ (X11) │ │ (CG) │
└─────────┘ └─────────┘ └─────────┘
多層授權(簡化視圖)
超級管理員(授權伺服器)
│ V2 授權 (ECDSA P-256)
▼
第一層主控 ──┬── 第一層主控 ──┬── 第一層主控 ◄── 獨立營運 / 完全隔離
│ V1 │ V1 │ V1
▼ ▼ ▼
下級主控 → 用戶端 (10,000+) → 裝置群
| 授權 | 驗證 | 特點 |
|---|---|---|
| V2 授權 | ECDSA P-256 簽章 | 離線驗證、下級連線數限制 |
| V1 授權 | HMAC + 連線驗證 | 連接上級伺服器驗證 |
| 試用版 | 連線驗證 | 功能受限、連線限制(詳見 合規文件) |
完整說明:多層授權方案
快速開始
5 分鐘快速體驗
無需編譯,下載即用:
- 下載發行版 - 從 Releases 下載最新版本
- 啟動主控 - 執行
YAMA.exe(或 Linux 上的server_linux_amd64),輸入授權資訊 - 生成用戶端 - 工具列「生成」設定伺服器 IP 和埠
- 部署用戶端 - 複製到目標機器執行
- 開始控制 - 用戶端上線後雙擊遠端桌面
Tip
首次測試建議在同一台機器上執行主控和用戶端,使用
127.0.0.1作為伺服器位址。
Go 主控部署(VPS)
參見 Web 遠端桌面設定。最小步驟:
# 1. 在 VPS 上跑 Go 主控
nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 &
# 2. nginx 反代 9001 到 HTTPS
# 詳見 docs/WebHTTPS.md
# 3. 瀏覽器開啟 https://yourdomain.com/,登入、新增用戶端
試用授權(v1.2.4+)
提供 2 年有效期、20 並發連線、僅限內網的試用口令:
主控 IP:127.0.0.1
序號:12ca-17b4-9af2-2894
密碼:20260201-20280201-0020-be94-120d-20f9-919a
驗證碼:6015188620429852704
有效期:2026-02-01 至 2028-02-01
Note
多層授權方案
支援代理商 / 開發者獨立營運:第一層使用者獲得授權後可完全離線使用,下級使用者只連線到您的伺服器。完整說明:多層授權方案
編譯
- C++ 主控 & Windows 用戶端:VS 2019/2022/2026 開啟
SimpleRemoter.sln→ Release | x64 - Linux 用戶端:
cd linux && cmake . && make - macOS 用戶端:
cd macos && ./build.sh - Go 主控:
cd server/go && go build ./cmd
使用者文件
| 文件 | 適用對象 | 內容 |
|---|---|---|
| 📖 快速部署指南 | 首次使用者 | 10 分鐘首次部署 |
| 📖 多級網路搭建指南 | 需要管理下級的使用者 | 多級網路架構 |
| 📖 日常使用手冊 | 所有使用者 | 全功能詳解 |
| 📖 代理商營運手冊 | 代理商 / 經銷商 | 下級授權、FRP 設定 |
| 📖 客製化開發指南 | 技術型客戶 | 品牌客製化、二次開發 |
| 📖 Web 遠端桌面設定 | 行動端 / Go 主控使用者 | HTTPS 反代、網域設定 |
| 📖 反濫用政策 | 所有使用方 | 合規邊界、責任劃分 |
| 📖 反濫用技術措施 | 合規稽核方 | 屏障原始碼位置 + 設計動機 |
更新日誌
v1.3.5 (2026.5.31)
硬體編碼擴充(H.264 / AV1)& 多客戶授權生產化 & FRP 子級自動化
新功能:
- 用戶端硬體編碼:新增 FFmpeg 路徑的
CFFmpegH264Encoder/CFFmpegAV1Encoder,可呼叫 NVENC / Quick Sync / AMF 等 GPU 編碼器;EncoderFactory執行時自動優選 - 靜畫跳編碼:擷取層比對前後影格,完全相同時跳過編碼與傳輸——硬體編碼器在靜畫時不再被強行餵入相同影格
- 選單驅動的壓縮 / 解壓:自訂檔案 + 資料夾選擇器(
ZstaPickerDlg),可從遠端主機直接選混合目錄樹打包或解壓到目標路徑 - 下級主控自動啟動 frp client:上級簽發 V2 授權時一併下發 frp 設定,子級主控啟動即接通中繼鏈路,無需人工設定
frpc.toml - 合規可裁剪建置:
DISABLE_X264/DISABLE_FFMPEG編譯開關,可在不動原始碼的前提下產出完全不含 x264 / FFmpeg 的二進位,搭配LICENSE-THIRD-PARTY.txt
改進:
- 多客戶授權伺服端硬化:
licenses.inihot-path 互斥鎖 + 30s 節流,寫入頻率從 0.6 → 0.07 次/秒(外推 100 在線:~160 → ~3.3 次/秒);閉環「預設續期配額消失」的 read-modify-write 競態 licenses.iniIP 清單 4KB 截斷修復:分段寫入避免溢出尾部被永久丟棄- 匯入 SN 按
BindType嚴格校驗:避免離線版 / 連線版 / 試用版 SN 串庫 - 用戶端 SCLoader 大瘦身:移除一萬行硬編碼 stub(
SCLoader.cpp),改用主控執行時下發 DLL 注入 - 用戶端 logger 優雅退出:程序結束時刷出佇列裡的日誌並記錄退出訊號
- IOCPClient 早期封包防護:
setManagerCallBack之前抵達的封包不再觸發空回呼崩潰 - 多顯示器游標位置修正 & MJPEG 錄製翻轉修復:trace cursor 跨螢幕座標系修正;MJPEG 上下顛倒回放修正 + 編碼失敗 0 位元組 AVI 殘留清理
- FRP
privilegeKey改用 UTC 時間戳:跨時區主控 / 中繼 / 用戶端不再因本地時區讓 frp auth 失效 - Linux 用戶端
install.sh/uninstall.sh:補齊一鍵部署 / 解除安裝指令稿 - Go 伺服端建置管線:
build.ps1/build.cmd把 Go 主控納入主建置流程 - Release / Download 連結全面遷移到 Gitea:v1.3.4+ 不再發行到 GitHub
Bug 修復:
- Web 檔案管理觸控雙擊不穩:觸控閾值放寬避免誤判拖曳 + 兩次
click模擬實體雙擊;修復跨平台資料夾重新命名 / 點擊無回應 - 向 sub-master 發送 AUTH 時密碼產生路徑錯誤,下級始終認證失敗
- 試用 SN 誤進入 V2 / V1 授權下發分支
v1.3.4 (2026.5.20)
Go 主控 & 全平台主控閉環 & Linux/macOS 用戶端剪貼簿
新功能:
- Go 主控:Go 語言實作的跨平台輕量主控服務(Windows / Linux / macOS),聚焦於「遠端桌面 + 遠端終端 + 多使用者分級」——不取代 MFC 主控,為需要純 Linux/macOS 落地的運維情境兜底
- Web 遠端桌面(Go 主控):H.264 → WebSocket → WebCodecs 解碼、1080P @ 20fps、桌面 + 行動端全適配;遠端游標同步、Keyboard Lock 防 ESC/F11 誤退、控制態下 F11/Esc 直傳目標
- Web 遠端終端(Go 主控):xterm.js + PTY/ConPTY 透明轉發、調整尺寸、中斷自動清理面板
- 多使用者體系(Go 主控):管理員 / 一般使用者分級、按裝置群授權、Challenge-Response 登入、登入限流(IP + 使用者名)、不透明 token
- Linux 用戶端剪貼簿:基於 xclip / xsel 的雙向剪貼簿同步,支援
text/uri-list檔案路徑 - macOS 用戶端剪貼簿:基於 NSPasteboard 的雙向剪貼簿同步,檔案 URL + 舊版 API 相容
改進:
- Web 工作階段自適應品質被 clamp 到 H264-only 等級(≥ Good),避免 Ultra/High(DIFF/RGB565)讓瀏覽器無法解碼
- Linux 用戶端預設
QualityLevel改為QUALITY_GOOD(對齊 Windows/macOS),不再請求伺服端自適應 - 登入文字欄位按用戶端能力位條件解碼 UTF-8 / GBK,修正德文 / 法文等帶變音符的主機名 / 地理位置亂碼
- 裝置清單穩定排序(按上線時間),避免每次心跳 / WS 推播都洗牌
- RDP 重置按鈕接通到裝置端
CMD_RESTORE_CONSOLE - MFC 主控開啟 Web 遠控工作階段時不再短暫閃一下視窗(OnInitDialog 工作階段判定上移)
Bug 修復:
- Web 工作階段從全螢幕點關閉後裝置清單點擊失靈(fullscreen 子樹規則,
showPage統一退全螢幕) - 用戶端突然中斷後 Web 遠控頁面停留在 "Connected" 永不更新(新增
device_offline通知) - 多顯示器輪詢導致兩路螢幕子連線同時灌影格,畫面在兩個顯示器間跳變(
BindScreenConn退役舊 sub-conn) - Go 主控
ListDevices因 map 迭代隨機化導致清單亂序
v1.3.3 (2026.5.10)
Linux/macOS 用戶端深化 & 雙層認證安全
- 伺服端身份校驗(Layer 1):Linux/macOS 用戶端 HMAC-SHA256 校驗伺服端身份
- 子連線認證(Layer 2,TOKEN_CONN_AUTH):所有子連線首封簽章 + clientID 釘死
- Linux 用戶端:H.264 硬體編碼、XFixes 游標類型偵測、UTF-8 協定能力位
- macOS 用戶端:檔案管理器、遠端終端、剪貼簿同步、常駐程序模式
- 主控:螢幕預覽縮圖、區域截圖、遠端桌面縮放、Web 使用者按群過濾
- 共用程式碼抽到
common/(rtt_estimator / client_auth_state / posix_net_helpers)
v1.3.2 (2026.5.1)
macOS 用戶端 & Web 遠端桌面增強
- 全新 macOS 原生用戶端:螢幕擷取、H.264 編碼、鍵鼠控制
- Web 遠端桌面游標同步
- 觸發器功能、使用者管理(角色權限)
- DLL 執行增強、遠端桌面輸入法切換
v1.3.1 (2026.4.15)
Web 遠端桌面(MFC 主控)& 多主控共享增強
- Web 遠端桌面:基於 WebSocket 實作,手機 / 平板瀏覽器存取
- 多顯示器停用自適應、狀態列到期日期自動更新
- 多層授權自動更新、DLL 快取重用
v1.3.0 (2026.4.8)
多層級 FRP 架構 & 品牌客製化
- 本機 FRPS 伺服器、多層級架構自動 FRP 整合
- V2 授權下級連線數限制、授權檔匯入 / 匯出
- 增強型硬體 ID (V2)、UI 品牌客製化
- 執行時功能限制可設定
更早版本
v1.2.x 系列(郵件通知、遠端音訊 Opus、V2 授權協定、V2 檔案傳輸、現代 Web 終端 xterm.js、遠端桌面工具列重寫、自適應品質控制、Linux 用戶端初版……)及 2019 年以來的全部演進,請見 history.md。
相關專案
- HoldingHands - 全英文介面遠端控制
- Gh0st - 經典 Gh0st 實作
聯絡方式
| 管道 | 連結 |
|---|---|
| 962914132 | |
| Telegram | @doge_grandfather |
| yuanyuanxiang163@gmail.com | |
| Issues | 問題回報 |
| PR | 貢獻程式碼 |
贊助支持
本專案源於技術學習與興趣愛好,作者將根據業餘時間不定期更新。如果本專案對您有所幫助,歡迎贊助支持:
如果您喜歡這個專案,請給它一個 ⭐ Star!



