Release v1.3.4

This commit is contained in:
yuanyuanxiang
2026-05-20 15:15:08 +02:00
parent d808462fe1
commit 6e743ada0b
14 changed files with 889 additions and 1592 deletions

View File

@@ -12,9 +12,9 @@
<a href="https://github.com/yuanyuanxiang/SimpleRemoter/releases">
<img src="https://img.shields.io/github/v/release/yuanyuanxiang/SimpleRemoter?style=flat-square" alt="GitHub Release">
</a>
<img src="https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-blue?style=flat-square" alt="Platform">
<img src="https://img.shields.io/badge/language-C%2B%2B17-orange?style=flat-square&logo=cplusplus" alt="Language">
<img src="https://img.shields.io/badge/IDE-VS2019%2B-purple?style=flat-square&logo=visualstudio" alt="IDE">
<img src="https://img.shields.io/badge/client-Windows%20%7C%20Linux%20%7C%20macOS-blue?style=flat-square" alt="Client Platforms">
<img src="https://img.shields.io/badge/server-Windows%20%7C%20Linux%20%7C%20macOS-success?style=flat-square" alt="Server Platforms">
<img src="https://img.shields.io/badge/language-C%2B%2B17%20%2F%20Go-orange?style=flat-square&logo=cplusplus" alt="Language">
<img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="License">
</p>
@@ -29,10 +29,7 @@
> [!WARNING]
> **重要法律聲明**
>
> 本軟**僅供教育目的及授權使用場景**,包括:
> - 在您的組織內進行遠端 IT 管理
> - 經授權的滲透測試和安全研究
> - 個人設備管理和技術學習
> 本軟**僅供教育目的及授權使用情境**:組織內遠端 IT 管理、經授權的滲透測試與安全研究、個人裝置管理與技術學習。
>
> **未經授權存取電腦系統屬違法行為。** 使用者須對遵守所有適用法律承擔全部責任。開發者對任何濫用行為概不負責。
@@ -41,12 +38,13 @@
## 目錄
- [專案簡介](#專案簡介)
- [免責聲明](#免責聲明)
- [本版本亮點:全平台閉環](#本版本亮點全平台閉環)
- [合規與反濫用](#合規與反濫用)
- [功能特性](#功能特性)
- [技術亮點](#技術亮點)
- [全平台支援](#全平台支援)
- [系統架構](#系統架構)
- [快速開始](#快速開始)
- [用戶端支援](#用戶端支援)
- [使用者文件](#使用者文件)
- [更新日誌](#更新日誌)
- [相關專案](#相關專案)
- [聯絡方式](#聯絡方式)
@@ -55,25 +53,9 @@
## 專案簡介
**SimpleRemoter** 是一個功能完整的遠端控制解決方案,基於經典的 Gh0st 框架重構,採用現代 C++17 開發。專案始於 2019 年,經過持續迭代已發展為支援 **Windows + Linux + macOS** 三平台的企業級遠端管理工具
**SimpleRemoter** 是一個端到端跨平台的遠端控制解決方案。
### 核心能力
| 類別 | 功能 |
|------|------|
| **遠端桌面** | 即時螢幕控制、多顯示器支援、H.264 編碼、自適應品質 |
| **檔案管理** | 雙向傳輸、斷點續傳、C2C 傳輸、SHA-256 校驗 |
| **終端管理** | 互動式 Shell、ConPTY/PTY 支援、現代 Web 終端 |
| **系統管理** | 程序/服務/視窗管理、登錄檔瀏覽、工作階段控制 |
| **媒體擷取** | 網路攝影機監控、音訊監聽、鍵盤記錄 |
| **網路功能** | SOCKS 代理、FRP 穿透、埠映射 |
### 適用場景
- **企業 IT 運維**:批次管理內網設備,遠端故障排查
- **遠端辦公**:安全存取辦公電腦,檔案同步傳輸
- **安全研究**:滲透測試、紅隊演練、安全稽核
- **技術學習**網路程式設計、IOCP 模型、加密傳輸實踐
專案核心基於經典 **Gh0st 架構**,最早始於 2019 年 1 月。歷經 7 年持續迭代——從 IOCP 通訊核心重構、x264 視訊級編碼、V2 檔案傳輸協定、多層授權體系,到 Linux 與 macOS 用戶端的引入——本版本最終完成**用戶端 + 伺服端的全平台閉環**三大桌面作業系統Windows / Linux / macOS在任一側都可作為受控端或主控端。
**原始來源:** [zibility/Remote](https://github.com/zibility/Remote) | **起始日期:** 2019.1.1
@@ -81,36 +63,73 @@
---
## 免責聲明
## 本版本亮點:全平台閉環
**請在使用本軟件前仔細閱讀以下聲明:**
本專案長期以 **C++ MFC 主控**`YAMA.exe`)為核心交付形態——經典 Gh0st 架構、IOCP 高效能核心、完整的遠端桌面 / 檔案 / 程序 / 媒體功能堆疊、多層授權體系、品牌客製化——**至今仍是主要使用的主控**。MFC 主控內建了基於 WebSocket 的 Web 遠端桌面服務,從 v1.3.1 起就已經支援**任意平台的瀏覽器**遠控被管裝置(手機 / 平板 / Linux / macOS 桌面均可)。
1. **合法用途**:本專案僅供合法的技術研究、學習交流和授權的遠端管理使用。嚴禁將本軟件用於未經授權存取他人電腦系統、竊取資料、監控他人隱私等任何違法行為
本版本v1.3.4)補上了最後一塊拼圖——**Go 主控**:一個**功能簡潔、聚焦於「遠端桌面 + 遠端終端 + 多使用者分級」** 的輕量伺服端,跨 Windows / Linux / macOS 編譯執行。它的定位**不是取代 MFC**,而是為那些**不方便執行 Windows VPS** 的使用者提供原生的 Linux / macOS 主控落腳點——例如純 Linux 伺服器、ARM Mac 長駐、嵌入式主控盒等情境
2. **使用者責任**:使用者必須遵守所在國家/地區的法律法規。因使用本軟件而產生的任何法律責任,由使用者自行承擔。
### 兩種主控形態如何選擇
3. **無擔保聲明**:本軟件按「現狀」提供,不附帶任何明示或暗示的擔保,包括但不限於適銷性、特定用途適用性的擔保。
| 形態 | GUI | 功能覆蓋 | 平台 | 定位 |
|---|---|---|---|---|
| **C++ MFC 主控** (`YAMA.exe`) | 原生 Windows GUI + 內建 Web 服務 | ✅ **全部功能** | Windows | **主推方案**。日常運維、檔案管理、媒體擷取、多層授權、品牌客製化等都用它 |
| **Go 主控**(新) | Web UI任何瀏覽器 | 遠端桌面 + 遠端終端 + 多使用者 | Windows / Linux / macOS | **補充方案**。需要「零 Windows 依賴」的純 Linux / macOS 主控部署 |
4. **免責條款**:開發者不對因使用、誤用或無法使用本軟件而造成的任何直接、間接、偶然、特殊或後果性損害承擔責任。
> [!TIP]
> 兩種主控**使用同一套用戶端**——可以混搭,例如一台 Windows MFC 主控 + 一台 Linux Go 主控並行管理同一批裝置群。
5. **版權聲明**:本專案採用 MIT 協議開源,允許自由使用、修改和分發,但必須保留原始版權聲明。
### 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 |
---
## 合規與反濫用
本專案長期堅持「明確的合規姿態」立場。本版本進一步收緊反濫用邊界。
### 內建技術措施
原始碼層面構築多道獨立可驗證的反濫用屏障,詳見 [反濫用技術措施清單](./docs/Compliance_TechnicalMeasures.md)
- **入站連線 IP 區段校驗**:試用版若被部署到公網會觸發可見告警 latch
- **監聽埠數量上限**:試用版限制 ≤ 2 個監聽埠,防多租戶中轉改造
- **應用層 RTT 反代理**LAN 內 RTT 閾值偵測,反向代理 / 隧道會被識別
- **多層授權架構**V2 ECDSA 離線 + V1 連線 + 試用版分級,每一層限制獨立
- **Web 主控驗證**:強制 Challenge-Response 登入、登入限流、不透明 token、操作可稽核
### 合規文件
| 文件 | 內容 |
|---|---|
| 📖 [反濫用與合規使用政策](./docs/Compliance_AntiAbuse.md) | 完整的發行方-使用方責任劃分 |
| 📖 [反濫用技術措施清單](./docs/Compliance_TechnicalMeasures.md) | 每一道屏障的原始碼位置、設計動機、已知侷限 |
> [!IMPORTANT]
> **網路連線與隱私聲明**
>
> 主控程式(伺服器端)會根據授權狀態與授權伺服器進行網路通訊:
>
> | 版本類型 | 連線行為 |
> |---------|---------|
> | 試用版本 | 維持與授權伺服器的持續連線 |
> | V1/V2 授權版本 | 啟動時連線驗證,通過後斷 |
> | V2 離線授權版本 | 無需連線授權伺服器 |
>
> 除獲得離線授權外,主控程式會與授權伺服器進行必要的資料互(如偵測破解行為、驗證授權有效性)。
>
> **使用本軟體即表示您接受主控程式與授權伺服器之間的資料傳輸。如您不同意,請勿使用本軟體。**
> **使用本軟體即視為您已閱讀、理解並接受上述合規文件全部條款。** 如您不能或不願接受任一條款,請立即停止使用並銷毀本軟體副本。
### 網路連線與隱私
| 版本類型 | 連線行為 |
|---|---|
| 試用版本 | 維持與授權伺服器的持續連線 |
| V1/V2 授權版本 | 啟動時連線驗證,通過後斷 |
| V2 離線授權版本 | 無需連線授權伺服器 |
除獲得離線授權外,主控程式會與授權伺服器進行必要的資料互(如偵測破解行為、驗證授權有效性)。
---
@@ -120,240 +139,149 @@
![遠端桌面](./images/Remote.jpg)
- **多種截圖方式**GDI相容性強、DXGI高效能、虛擬桌面背景執行
- **智慧壓縮演算法**
- DIFF 差分演算法 - SSE2 優化,僅傳輸變化區域
- RGB565 演算法 - 節省 50% 頻寬
- H.264 編碼 - 視訊級壓縮,適合高幀率場景
- 灰階模式 - 極低頻寬消耗
- **自適應品質**:根據網路 RTT 自動調整幀率5-30 FPS、解析度和壓縮演算法
- **多顯示器**:支援多螢幕切換和多螢幕牆顯示
- **隱私螢幕**:被控端螢幕可隱藏,支援鎖定畫面狀態下控制
- **檔案拖放**Ctrl+C/V 跨設備複製貼上檔案
- **Web 遠端桌面**:透過瀏覽器存取遠端桌面,支援手機/平板([設定指南](./docs/WebHTTPS.md)
- **多種螢幕擷取**GDI / DXGI / 虛擬桌面Windows、X11 + XShmLinux、CGDisplayStreammacOS
- **智慧壓縮**DIFF 差分SSE2 最佳化)/ RGB565節省 50% 頻寬)/ **H.264**視訊級壓縮x264 + VideoToolbox + WebCodecs/ 灰階模式
- **自適應品質**:根據 RTT 自動調節影格率5-30 FPS、解析度、壓縮演算法
- **多顯示器**:多螢幕切換 + 多螢幕上牆
- **跨裝置檔案拖曳**Ctrl+C/V 跨裝置複製貼上檔案
- **Web 遠端桌面**:瀏覽器直接存取,手機 / 平板可用([設定指南](./docs/WebHTTPS.md)
![Web遠端桌面](./images/WebRemote.png)
### 檔案管理
![檔案管理](./images/FileManage.jpg)
- **V2 傳輸協定**全新設計,支援大檔案(>4GB
- **斷點續傳**:網路中斷後自動恢復,狀態持久化
- **V2 傳輸協定**支援 >4GB 大檔、斷點續傳、SHA-256 校驗
- **C2C 傳輸**:用戶端之間直接傳輸,無需經過主控
- **完整性校驗**SHA-256 雜湊驗證,確保檔案完整
- **批次操作**:支援檔案搜尋、壓縮、批次傳輸
- **批次操作**:搜尋、壓縮、批次傳輸
### 終端管理
![終端管理](./images/Console.jpg)
![終端管理](./images/LinuxClient.png)
- **互動式 Shell**完整的命令列體驗,支援 Tab 補全
- **ConPTY 技術**Windows 10+ 原生虛擬終端支援
- **現代 Web 終端**基於 WebView2 + xterm.jsv1.2.7+
- **終端尺寸調整**:自適應視窗大小
### 程序與視窗管理
| 程序管理 | 視窗管理 |
|---------|---------|
| ![程序](./images/Process.jpg) | ![視窗](./images/Window.jpg) |
- **程序管理**檢視程序清單、CPU/記憶體佔用、啟動/終止程序
- **程式碼注入**:向目標程序注入 DLL需系統管理員權限
- **視窗控制**:最大化/最小化/隱藏/關閉視窗
### 媒體功能
| 視訊管理 | 音訊管理 |
|---------|---------|
| ![視訊](./images/Video.jpg) | ![音訊](./images/Voice.jpg) |
- **網路攝影機監控**:即時視訊串流,支援解析度調整
- **音訊監聽**:遠端聲音擷取,支援雙向語音
- **鍵盤記錄**:線上/離線記錄模式
- **互動式 Shell**Tab 自動補全、ANSI escape、調整尺寸
- **現代終端**Windows ConPTY、Linux / macOS PTY
- **Web 終端**xterm.js + WebSocket與原生體驗一致
### 其他功能
- **服務管理**:檢視和控制 Windows 服務
- **登錄檔瀏覽**:唯讀方式瀏覽登錄檔內容
- **工作階段控制**:遠端登出/關機/重新啟動
- **SOCKS 代理**:透過用戶端建立代理通道
- **FRP 穿透**:內建 FRP 支援,輕鬆穿透內網
- **程式碼執行**:遠端執行 DLL支援熱更新
| 模組 | 能力 |
|---|---|
| **程序管理** | 程序清單、CPU / 記憶體佔用、終止、DLL 注入 |
| **視窗管理** | 最大化 / 最小化 / 隱藏 / 關閉 |
| **媒體擷取** | 網路攝影機、雙向語音、鍵盤記錄 |
| **系統控制** | 服務管理、登錄檔、工作階段登出 / 關機 |
| **網路功能** | SOCKS 代理、FRP 穿透、埠映射 |
| **程式碼執行** | 遠端執行 DLL、記憶體載入、熱更新 |
---
## 技術亮點
## 全平台支援
### 高效能網路架構
### Windows 用戶端
```
┌─────────────────────────────────────────────────────────┐
│ IOCP 通訊模型 │
├─────────────────────────────────────────────────────────┤
│ • I/O 完成埠Windows 最高效的非同步 I/O 模型 │
│ • 單主控支援 10,000+ 並行連線 │
│ • 支援 TCP / UDP / KCP 三種傳輸協定 │
│ • 自動分塊處理大資料封包(最大 128KB 傳送緩衝) │
└─────────────────────────────────────────────────────────┘
```
**系統需求**Windows 7 SP1 及以上
**功能完整性**:✅ 全部功能支援
### 自適應品質控制
### Linux 用戶端v1.2.5+
基於 RTTRound-Trip Time的智慧品質調整系統
**系統需求**
- 顯示伺服器X11/Xorg暫不支援 Wayland
- 必需函式庫libX11推薦函式庫libXtstXTest 擴充、libXss閒置偵測
| RTT 延遲 | 品質等級 | 幀率 | 解析度 | 壓縮演算法 | 適用場景 |
|---------|---------|------|--------|-----------|---------|
| < 30ms | Ultra | 25 FPS | 原始 | DIFF | 區域網路辦公 |
| 30-80ms | High | 20 FPS | 原始 | RGB565 | 一般辦公 |
| 80-150ms | Good | 20 FPS | ≤1080p | H.264 | 跨網/視訊 |
| 150-250ms | Medium | 15 FPS | ≤900p | H.264 | 跨網辦公 |
| 250-400ms | Low | 12 FPS | ≤720p | H.264 | 較差網路 |
| > 400ms | Minimal | 8 FPS | ≤540p | H.264 | 極差網路 |
| 功能 | 狀態 | 實作 |
|---|---|---|
| 遠端桌面 | ✅ | X11 螢幕擷取 + libx264 H.264 硬體編碼 |
| 遠端終端 | ✅ | PTY 互動式 Shell |
| 檔案管理 | ✅ | V2 協定、雙向傳輸、大檔 |
| 程序管理 | ✅ | 清單 + 終止 |
| 剪貼簿同步 | ✅ | xclip / xsel 外部工具,支援檔案 URI |
| 心跳 / RTT | ✅ | RFC 6298 RTT 估算 |
| 常駐程序 | ✅ | 雙 fork 守護化 |
- **零額外開銷**:複用心跳封包計算 RTT
- **快速降級**2 次偵測即觸發,回應網路波動
- **謹慎升級**5 次穩定後才提升品質
- **冷卻機制**:防止頻繁切換
**編譯**`cd linux && cmake . && make`
### V2 檔案傳輸協定
### macOS 用戶端v1.3.2+
```cpp
// 77 位元組協定標頭 + 檔案名稱 + 資料載荷
struct FileChunkPacketV2 {
uint8_t cmd; // COMMAND_SEND_FILE_V2 = 85
uint64_t transferID; // 傳輸工作階段 ID
uint64_t srcClientID; // 來源用戶端 ID (0=主控端)
uint64_t dstClientID; // 目標用戶端 ID (0=主控端, C2C)
uint32_t fileIndex; // 檔案編號 (0-based)
uint32_t totalFiles; // 總檔案數
uint64_t fileSize; // 檔案大小(支援 >4GB
uint64_t offset; // 目前區塊位移
uint64_t dataLength; // 本區塊資料長度
uint64_t nameLength; // 檔案名稱長度
uint16_t flags; // 標誌位元 (FFV2_LAST_CHUNK 等)
uint16_t checksum; // CRC16 校驗(可選)
uint8_t reserved[8]; // 預留擴充
// char filename[nameLength]; // UTF-8 相對路徑
// uint8_t data[dataLength]; // 檔案資料
};
```
**系統需求**
- macOS 10.15 (Catalina) 及以上
- 架構Intel (x64) 和 Apple Silicon (arm64) 通用二進位檔
- 系統權限:螢幕錄影、輔助功能、完整磁碟存取
**特性**
- 大檔案支援uint64_t 突破 4GB 限制)
- 斷點續傳(狀態持久化到 `%TEMP%\FileTransfer\`
- SHA-256 完整性校驗
- C2C 直傳(用戶端到用戶端)
- V1/V2 協定相容
| 功能 | 狀態 | 實作 |
|---|---|---|
| 遠端桌面 | ✅ | CGDisplayStream + VideoToolbox H.264 硬體編碼 |
| 鍵鼠控制 | ✅ | CGEvent支援雙擊、拖曳 |
| 遠端終端 | ✅ | PTY 互動式 Shellzsh/bash |
| 檔案管理 | ✅ | V2 協定、大檔 |
| 程序管理 | ✅ | proc_listpids + 終止 |
| 剪貼簿同步 | ✅ | NSPasteboard支援檔案 URL + NSFilenamesPboardType |
| 常駐模式 | ✅ | `-d` 後台執行、電源管理、閒置偵測 |
### 螢幕傳輸優化
**編譯**`cd macos && ./build.sh`
- **SSE2 指令集**:像素差分計算硬體加速
- **多執行緒並行**:執行緒池分塊處理螢幕資料
- **捲動偵測**:識別捲動場景,減少 50-80% 頻寬
- **H.264 編碼**:基於 x264GOP 控制,視訊級壓縮
### Go 主控v1.3.4+
### 安全機制
**系統需求**Go 1.21+(僅編譯時);二進位執行無依賴
| 層級 | 措施 |
|------|------|
| **傳輸加密** | AES-256 資料加密,可設定 IV |
| **身分驗證** | 簽章驗證 + HMAC 認證 |
| **授權控制** | 序號綁定IP/網域),多級授權 |
| **檔案校驗** | SHA-256 完整性驗證 |
| **工作階段隔離** | Session 0 獨立處理 |
| 能力 | 實作 |
|---|---|
| 遠端桌面 | H.264 → WebSocket → WebCodecs1080P @ 20fps |
| 遠端終端 | xterm.js + PTY/ConPTY 透明轉發 |
| 多使用者 | Challenge-Response + 不透明 token + 按群授權 |
| 部署 | Nginx 反向代理 / Let's Encrypt / systemd unit / `/etc/environment` |
### 相依套件
| 套件 | 版本 | 用途 |
|------|------|------|
| zlib | 1.3.1 | 通用壓縮 |
| zstd | 1.5.7 | 高速壓縮 |
| x264 | 0.164 | H.264 編碼 |
| libyuv | 190 | YUV 轉換 |
| HPSocket | 6.0.3 | 網路 I/O |
| jsoncpp | 1.9.6 | JSON 解析 |
**編譯**`cd server/go && go build -o server_linux_amd64 ./cmd`
---
## 系統架構
### 全平台拓撲
```
┌─────────────────────────────────────────────────────────────────────────────
多層授權架構 (Multi-Layer Authorization)
├─────────────────────────────────────────────────────────────────────────────┤
┌─────────────────────┐
超級管理員 │
│ (授權伺服器) │
│ Super Admin │
│ └─────────┬───────────┘ │
│ │
┌──────────────┼──────────────┐ │
│ V2 授權 │ V2 授權 │ V2 授權 │
│ (ECDSA) │ (ECDSA) │ (ECDSA)
▼ ▼ ▼ │
┌───────────┐ ┌───────────┐ ┌───────────┐
│ │ 第一層 A │ │ 第一層 B │ │ 第一層 C │ ◄── 獨立營運 │
│ │ Layer-1 A │ │ Layer-1 B │ │ Layer-1 C │ 完全隔離
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │ │
│ ┌────────┴────────┐ │ ┌──────┴──────┐ │
│ │ V1 授權 │ │ │ V1 授權 │ │
│ ▼ ▼ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ... ┌──────────┐ ┌──────────┐ │
│ │ 下級 A1 │ │ 下級 A2 │ │ 下級 C1 │ │ 下級 C2 │ │
│ │ Master │ │ Master │ │ Master │ │ Master │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ 用戶端 │ │ 用戶端 │ │ 用戶端 │ │ 用戶端 │ │
│ │ 10,000+ │ │ 10,000+ │ │ 10,000+ │ │ 10,000+ │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ │
├─────────────────────────────────────────────────────────────────────────────┤
│ 授權類型 驗證方式 特點 │
│ ───────────────────────────────────────────────────────────────────────── │
│ V2 授權 ECDSA P-256 簽名 支援離線驗證,下級連線數限制 │
│ V1 授權 HMAC + 線上驗證 連線上級伺服器驗證 │
│ 試用版 線上驗證 功能受限,需保持連線 │
└─────────────────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────┐
主控層
│ │
┌──────────────────┐ ┌──────────────────┐
C++ MFC 主控 Go 主控 │
YAMA.exe (Win/Linux/Mac) │
│ Windows only │ │ Web UI 全平台 │
└────────┬─────────┘ └────────┬─────────┘
└────────────┼──────────────────────────┼─────────────────┘
│ TCP (自訂二進位協定) │ TCP (裝置) + WS (瀏覽器)
└────────┬─────────────────┘
┌──────────────┼──────────────┐
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Windows │ │ Linux │ │ macOS
│ 用戶端 │ 用戶端 │ │ 用戶端
│ (DXGI) (X11) │ │ (CG)
└─────────┘ └─────────┘ └─────────┘
```
### 架構優勢
### 多層授權(簡化視圖)
| 特性 | 說明 |
|------|------|
| **層級控制** | 超級使用者可管理任意主控程式,支援無限層級 |
| **完全隔離** | 不同第一層使用者的授權、資料、用戶端完全隔離 |
| **獨立營運** | 第一層使用者可獨立定價、發放授權,打造專屬品牌 |
| **水平擴充** | 單 Master 支援 10,000+ 用戶端,多層架構可達百萬級 |
| **離線支援** | V2 授權支援完全離線驗證,無需依賴上游服務 |
```
超級管理員(授權伺服器)
│ V2 授權 (ECDSA P-256)
第一層主控 ──┬── 第一層主控 ──┬── 第一層主控 ◄── 獨立營運 / 完全隔離
│ V1 │ V1 │ V1
▼ ▼ ▼
下級主控 → 用戶端 (10,000+) → 裝置群
```
### 主控程式Server
| 授權 | 驗證 | 特點 |
|---|---|---|
| V2 授權 | ECDSA P-256 簽章 | 離線驗證、下級連線數限制 |
| V1 授權 | HMAC + 連線驗證 | 連接上級伺服器驗證 |
| 試用版 | 連線驗證 | 功能受限、連線限制(詳見 [合規文件](./docs/Compliance_AntiAbuse.md) |
主控程式 **YAMA.exe** 提供圖形化管理介面:
![主介面](./images/Yama.jpg)
- 基於 IOCP 的高效能伺服器
- 用戶端分組管理
- 即時狀態監控RTT、地理位置、活動視窗
- 一鍵產生用戶端
### 受控程式Client
![用戶端產生](./images/TestRun.jpg)
**執行形式**
| 類型 | 說明 |
|------|------|
| `ghost.exe` | 獨立可執行檔,無外部相依 |
| `TestRun.exe` + `ServerDll.dll` | 分離載入,支援記憶體載入 DLL |
| Windows 服務 | 背景執行,支援鎖定畫面控制 |
| Linux 用戶端 | 跨平台支援v1.2.5+ |
| macOS 用戶端 | 跨平台支援v1.3.2+ |
完整說明:[多層授權方案](./docs/MultiLayerLicense.md)
---
@@ -363,62 +291,34 @@ struct FileChunkPacketV2 {
無需編譯,下載即用:
1. **下載發** - 從 [Releases](https://github.com/yuanyuanxiang/SimpleRemoter/releases/latest) 下載最新版本
2. **啟動主控** - 執行 `YAMA.exe`,輸入授權資訊(見下方試用口令)
3. **生用戶端** - 點擊工具列「產生」按鈕,設定伺服器 IP 和連接
4. **部署用戶端** - 將產生的用戶端複製到目標機器執行
5. **開始控制** - 用戶端上線後雙擊即可開啟遠端桌面
1. **下載發** - 從 [Releases](https://github.com/yuanyuanxiang/SimpleRemoter/releases/latest) 下載最新版本
2. **啟動主控** - 執行 `YAMA.exe`(或 Linux 上的 `server_linux_amd64`,輸入授權資訊
3. **生用戶端** - 工具列「生成」設定伺服器 IP 和埠
4. **部署用戶端** - 複製到目標機器執行
5. **開始控制** - 用戶端上線後雙擊遠端桌面
> [!TIP]
> 首次測試建議在同一台機器上執行主控和用戶端,使用 `127.0.0.1` 作為伺服器位址。
### 編譯要求
### Go 主控部署VPS
- **作業系統**Windows 10/11 或 Windows Server 2016+
- **開發環境**Visual Studio 2019 / 2022 / 2026
- **SDK**Windows 10 SDK (10.0.19041.0+)
### 編譯步驟
參見 [Web 遠端桌面設定](./docs/WebHTTPS.md)。最小步驟:
```bash
# 1. 複製程式碼(必須使用 git clone不要下載 zip
git clone https://github.com/yuanyuanxiang/SimpleRemoter.git
# 1. 在 VPS 上跑 Go 主控
nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 &
# 2. 開啟方案
# 使用 VS2019+ 開啟 SimpleRemoter.sln
# 2. nginx 反代 9001 到 HTTPS
# 詳見 docs/WebHTTPS.md
# 3. 選擇組態
# Release | x86 或 Release | x64
# 4. 編譯
# 建置 -> 建置方案
# 3. 瀏覽器開啟 https://yourdomain.com/,登入、新增用戶端
```
**常見問題**
- 相依套件衝突:[#269](https://github.com/yuanyuanxiang/SimpleRemoter/issues/269)
- 非中文系統亂碼:[#157](https://github.com/yuanyuanxiang/SimpleRemoter/issues/157)
- 編譯器相容性:[#171](https://github.com/yuanyuanxiang/SimpleRemoter/issues/171)
### 試用授權v1.2.4+
### 部署方式
#### 內網部署
主控與用戶端在同一區域網路,用戶端直連主控 IP:Port。
#### 外網部署FRP 穿透)
提供 2 年有效期、20 並發連線、僅限內網的試用口令:
```
用戶端 ──> VPS (FRP Server) ──> 本機主控 (FRP Client)
```
詳細設定請參考:[反向代理部署說明](./反向代理.md)
### 授權說明
自 v1.2.4 起提供試用口令2 年有效期20 並行連線,僅限內網):
```
授權方式:按電腦 IP 綁定
主控 IP127.0.0.1
序號12ca-17b4-9af2-2894
密碼20260201-20280201-0020-be94-120d-20f9-919a
@@ -429,271 +329,100 @@ git clone https://github.com/yuanyuanxiang/SimpleRemoter.git
> [!NOTE]
> **多層授權方案**
>
> SimpleRemoter 採用企業級多層授權架構,支援代理商/開發者獨立運營:
> - **離線驗證**:第一層使用者獲得授權後可完全離線使用
> - **獨立控制**:您的下級使用者只連接到您的伺服器,資料完全由您掌控
> - **自由定制**:支援二次開發,打造您的專屬版本
>
> 📖 **[查看完整授權方案說明](./docs/MultiLayerLicense.md)**
> 支援代理商 / 開發者獨立營運:第一層使用者獲得授權後可完全離線使用,下級使用者只連線到您的伺服器。完整說明:[多層授權方案](./docs/MultiLayerLicense.md)
### 編譯
- **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`
---
## 用戶端支援
## 使用者文件
### Windows 用戶端
**系統要求**Windows 7 SP1 及以上
**功能完整性**:✅功能支援
### Linux 用戶端v1.2.5+
**系統要求**
- 顯示伺服器X11/Xorg暫不支援 Wayland
- 必需套件libX11
- 建議套件libXtstXTest 擴充、libXss閒置偵測
**功能支援**
| 功能 | 狀態 | 實作 |
|------|------|------|
| 遠端桌面 | ✅ | X11 螢幕擷取,滑鼠/鍵盤控制 |
| 遠端終端 | ✅ | PTY 互動式 Shell |
| 檔案管理 | ✅ | 雙向傳輸,大檔案支援 |
| 程序管理 | ✅ | 程序清單、終止程序 |
| 心跳/RTT | ✅ | RFC 6298 RTT 估算 |
| 常駐程式 | ✅ | 雙 fork 常駐化 |
| 剪貼簿 | ⏳ | 開發中 |
| 工作階段管理 | ⏳ | 開發中 |
**編譯方式**
```bash
cd linux
cmake .
make
```
### macOS 用戶端v1.3.2+
**系統要求**
- macOS 10.15 (Catalina) 及以上
- 架構支援Intel (x64) 和 Apple Silicon (arm64) 通用二進位
- 需要授予系統權限:螢幕錄製、輔助使用、完全磁碟存取
**功能支援**
| 功能 | 狀態 | 實作 |
|------|------|------|
| 遠端桌面 | ✅ | CoreGraphics 螢幕擷取VideoToolbox H.264 硬體編碼 |
| 滑鼠控制 | ✅ | CGEvent 模擬,支援雙擊、拖曳 |
| 鍵盤控制 | ✅ | CGEvent 模擬,完整鍵碼對應 |
| 游標同步 | ✅ | 即時同步遠端游標樣式 |
| 遠端終端 | ✅ | PTY 互動式 Shellzsh/bash |
| 檔案管理 | ✅ | 雙向傳輸、V2 協定、大檔案支援 |
| 心跳/RTT | ✅ | RFC 6298 RTT 估算 |
| 分組管理 | ✅ | 持久化設定檔 |
| 程序管理 | ⏳ | 開發中 |
| 剪貼簿 | ⏳ | 開發中 |
**編譯方式**
```bash
cd macos
./build.sh
# 或手動編譯:
# mkdir build && cd build && cmake .. && make
```
| 文件 | 適用對象 | 內容 |
|---|---|---|
| 📖 [快速部署指南](./docs/QuickStart.md) | 首次使用者 | 10 分鐘首次部署 |
| 📖 [多級網路搭建指南](./docs/NetworkSetup.md) | 需要管理下級的使用者 | 多級網路架構 |
| 📖 [日常使用手冊](./docs/UserManual.md) | 所有使用者 | 全功能詳解 |
| 📖 [代理商營運手冊](./docs/AgentManual.md) | 代理商 / 經銷商 | 下級授權、FRP 設定 |
| 📖 [客製化開發指南](./docs/CustomizationGuide.md) | 技術型客戶 | 品牌客製化、二次開發 |
| 📖 [Web 遠端桌面設定](./docs/WebHTTPS.md) | 行動端 / Go 主控使用者 | HTTPS 反代、網域設定 |
| 📖 [反濫用政策](./docs/Compliance_AntiAbuse.md) | 所有使用方 | 合規邊界、責任劃分 |
| 📖 [反濫用技術措施](./docs/Compliance_TechnicalMeasures.md) | 合規稽核方 | 屏障原始碼位置 + 設計動機 |
---
## 更新日誌
### v1.3.3 (2026.5.10)
### v1.3.4 (2026.5.20)
**Linux/macOS 用戶端深化 & 雙層認證安全 & 跨平台共享程式碼重構**
**Go 主控 & 全平台主控閉環 & Linux/macOS 用戶端剪貼簿**
**新功能:**
- **服務端身分校驗Layer 1**Linux/macOS 用戶端 HMAC-SHA256 校驗服務端身分,未授權服務端無法觸發任何子連線
- **子連線認證Layer 2TOKEN_CONN_AUTH**:所有子連線首包簽章 + clientID 鎖定,解決 NAT/127.0.0.1 路由錯位
- **Linux 用戶端**H.264 硬體編碼(動態載入 libx264、XFixes 游標類型偵測、UTF-8 協議能力位
- **macOS 用戶端**檔案管理員、遠端終端機(共享 PTYHandler、剪貼簿同步、守護程序模式 (-d)、電源管理、螢幕鎖定/閒置偵測、CGDisplayStream 推送模式最佳化
- **主控**螢幕預覽縮圖、區域截圖、遠端桌面縮放、Web 使用者依群組過濾、嵌入式現代終端、自適應螢幕演算法、外部資源覆蓋、群組持久化、Build Dialog 支援產生 macOS 用戶端
**重構:**
- Linux/macOS 用戶端共享程式碼抽到 `common/`rtt_estimator / client_auth_state / posix_net_helpers / sub_conn_thread減少約 300 行重複
- **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 相容
**改進:**
- 現代終端 SYSTEM 相容:自動回退到經典終端,資訊列表給出精確原因
- `build.ps1` 新增 `vswhere` 兜底VS 裝在非預設磁碟也能找到)
- 強制 `/source-charset:utf-8 /execution-charset:.936` 解決英語 Windows 編譯中文亂碼
- macOS `install.sh` 來源 binary 優先順序最佳化(命令列 → 同目錄 → build/bin適配分發場景
- Web 工作階段自適應品質被 clamp 到 H264-only 等級(≥ Good避免 Ultra/HighDIFF/RGB565讓瀏覽器無法解碼
- Linux 用戶端預設 `QualityLevel` 改為 `QUALITY_GOOD`(對齊 Windows/macOS不再請求伺服端自適應
- 登入文字欄位按用戶端能力位條件解碼 UTF-8 / GBK修正德文 / 法文等帶變音符的主機名 / 地理位置亂碼
- 裝置清單穩定排序(按上線時間),避免每次心跳 / WS 推播都洗牌
- RDP 重置按鈕接通到裝置端 `CMD_RESTORE_CONSOLE`
- MFC 主控開啟 Web 遠控工作階段時不再短暫閃一下視窗OnInitDialog 工作階段判定上移)
**Bug 修復:**
- V2 檔案傳輸在檔案管理器對話方塊雙向均損壞(上傳 IP 路由錯亂 + 下載 chunk 未分發
- 現代終端在 SYSTEM 權限下空白WebView2 不支援 LocalSystem
- Linux 用戶端 UTF-8 路徑/作用視窗在服務端亂碼
- 日誌列表表頭點擊錯誤排序到主機列表
- LVM_SETUNICODEFORMAT 後表頭排序失效(補充 HDN_ITEMCLICKW 對應)
- 服務+代理 Release 模式系統匣圖示不顯示
- macOS/Linux 用戶端群組變更後未重發 LOGIN_INFOR
- 檔案對話方塊 map 中野指標導致崩潰
- 重連時未清回呼導致存取已銷毀 handler 崩潰
- MFC 與 Web 遠端桌面工作階段未完全獨立
- macOS 鎖屏狀態遠端桌面啟動時未喚醒顯示器
- MFC 遠端桌面觸控板雙指捲動失效
- Web 工作階段從全螢幕點關閉後裝置清單點擊失靈fullscreen 子樹規則,`showPage` 統一退全螢幕
- 用戶端突然中斷後 Web 遠控頁面停留在 "Connected" 永不更新(新增 `device_offline` 通知
- 多顯示器輪詢導致兩路螢幕子連線同時灌影格,畫面在兩個顯示器間跳變(`BindScreenConn` 退役舊 sub-conn
- Go 主控 `ListDevices` 因 map 迭代隨機化導致清單亂序
### v1.3.3 (2026.5.10)
**Linux/macOS 用戶端深化 & 雙層認證安全**
- 伺服端身份校驗Layer 1Linux/macOS 用戶端 HMAC-SHA256 校驗伺服端身份
- 子連線認證Layer 2TOKEN_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 用戶端支援:全新實現的 macOS 原生用戶端支援螢幕擷取、H.264 編碼、鍵鼠控制、系統權限管理
- Web 遠端桌面游標同步:瀏覽器端即時顯示遠端主機游標樣式
- 觸發器功能:支援主機上線事件觸發自訂操作
- 使用者管理功能:新增角色權限管理,支援多使用者分級控制
- DLL 執行增強:參數持久化儲存、支援自動執行設定
- 遠端桌面輸入法切換:支援遠端切換被控端輸入語言
**改進:**
- Web 遠端桌面手勢最佳化改進雙指手勢識別、雙擊拖曳、Shift 組合鍵支援
**Bug 修復:**
- 修復 Web 遠端桌面在 macOS 用戶端上雙擊無法開啟檔案的問題
- 修復 macOS 完全磁碟存取權限偵測不準確的問題
- 修復 RestoreMemDLL 因 DLL 資訊大小錯誤導致還原失敗
- 修復多個 DLL 同時執行可能因全域變數衝突而失敗
- 修復滑鼠雙擊和遠端桌面切換問題
- 修復 Linux 用戶端編譯缺少 libzstd.a 的問題
- 全新 macOS 原生用戶端螢幕擷取、H.264 編碼、鍵鼠控制
- Web 遠端桌面游標同步
- 觸發器功能、使用者管理(角色權限)
- DLL 執行增強、遠端桌面輸入法切換
### v1.3.1 (2026.4.15)
**Web 遠端桌面 & 多主控共享增強**
**Web 遠端桌面MFC 主控)& 多主控共享增強**
**新功能:**
- Web 遠端桌面:基於 WebSocket 實現,支援手機/平板透過瀏覽器存取遠端桌面([設定指南](./docs/WebHTTPS.md)
- 撤銷共享選單:支援撤銷已共享給其他主控的用戶端
- 工具列音訊控制:遠端桌面工具列新增系統音訊開關圖示
**改進:**
- 多顯示器停用自適應:用戶端有多個顯示器時自動停用自適應品質
- 狀態列過期日期自動更新:授權續期後狀態列立即重新整理
- 減少無效離線日誌:用戶端不在主機清單時減少離線日誌輸出
- 多層授權自動更新:第二層及以下主控的授權自動同步更新
- 使用提示增強:新增多處操作提示改善使用者體驗
- DLL 快取復用:將 DLL 儲存到登錄檔,下次啟動時直接復用
**Bug 修復:**
- 修復共享用戶端時鍵盤記錄可能無法正常運作的問題
- Web 遠端桌面:基於 WebSocket 實作,手機 / 平板瀏覽器存取
- 多顯示器停用自適應、狀態列到期日期自動更新
- 多層授權自動更新、DLL 快取重用
### v1.3.0 (2026.4.8)
**多層級 FRP 架構 & 品牌定制**
**多層級 FRP 架構 & 品牌客製化**
**新功能:**
- 本地 FRPS 伺服器支援(僅 64 位元):內建 FRP 伺服端,簡化部署
- 多層級架構自動 FRP 整合:下級主控自動取得上級 FRP 設定
- V2 授權下級連線數限制:支援控制下級並發連線數
- 許可證檔案匯入/匯出支援(.lic 格式)
- 過期授權續期支援:無需重新產生許可證
- 增強型硬體 ID (V2):解決 VPS 重複 SN 問題
- MaxDepth 控制:限制分級 Master 層級深度
- 許可證管理增強:配額支援、動態對話框、刪除功能
- IP 定位 API 多提供商回退:提高定位成功率
- UI 品牌定制支援自訂程式名稱、Logo、版權等
- 執行時功能限制:試用版功能限制可設定
- 輸入歷史下拉框:快速選擇歷史輸入
- 產生用戶端新增選項:更多自訂設定
- 支援動態修改專案連結:無需重新編譯更換說明/回饋連結
- 本機 FRPS 伺服器、多層級架構自動 FRP 整合
- V2 授權下級連線數限制、授權檔匯入 / 匯出
- 增強型硬體 ID (V2)、UI 品牌客製化
- 執行時功能限制可設定
**Bug 修復:**
- 修復 RebuildFilteredIndices 的 Use-after-free 崩潰
- 修復 CLock::Lock 中 IOCP 競態條件崩潰 (#215)
- 修復崩潰保護服務清理和代理提升問題
- 修復訊息日誌無限增長導致的潛在崩潰
- 修復 FeatureFlags 引入後 UpperHash 字串長度問題
- 修復用戶端 SN 產生以支援 HWIDVersion 設定
### 更早版本
**改進:**
- 重構 res/ 目錄結構,新增選單圖示
- 過期密碼不再被自動清除
- 保持下級主控與第一層主控的連線穩定
### v1.0.2.9 (2026.3.27)
**網路安全 & 穩定性增強**
**新功能:**
- 網路設定對話框IP 白名單/黑名單管理,即時生效
- 可設定的連線限流DLL 請求限流、IP 封禁閾值可調
- IP 歷史記錄對話框:檢視授權 IP 登入歷史
- 狀態列顯示 MTBF/執行時間和授權到期日期
- 代理崩潰保護5 分鐘內 3 次崩潰自動切換一般模式
- 用戶端搜尋功能Ctrl+F 快速搜尋 IP、位置、電腦名稱
- 自動封禁異常 IP60 秒內超過 15 次連線自動封禁 1 小時
- Proxy Protocol v2 支援FRP 代理後取得真實用戶端 IP
- Linux 剪貼簿同步和 V2 檔案傳輸支援
- 右鍵選單執行用戶端程式
- 多層授權混淆支援
**Bug 修復:**
- 修復 OnUserOfflineMsg 競態條件導致的崩潰
- 修復用戶端請求 FRPC DLL 時 FrpcParam 遺失
- 最大資料封包從 10MB 增加到 50MB
- 支援 mstsc 遠端工作階段讀取使用者登錄檔
- 修復遠端桌面最小化時剪貼簿誤觸發
- 修復操作程序對話框時主控崩潰
- 狀態列主機數量即時更新
- Linux select() 呼叫前重設 timeval
- 授權碼格式驗證,過濾垃圾資料
**改進:**
- 增強授權檢查,新增 IP 封禁提示
- 支援主控程式以使用者權限執行
- 大型 DLL 自動使用 TinyRun 回退方案
### v1.2.8 (2026.3.11)
**郵件通知 & 遠端音訊**
- 主機上線郵件通知SMTP 配置、關鍵字匹配、右鍵快捷添加)
- 遠端音訊播放WASAPI Loopback+ Opus 壓縮24:1
- 多 FRPS 伺服器同時連接支援
- 自訂游標顯示和追蹤
- V2 授權協定ECDSA 簽名)
- 修復非中文 Windows 系統亂碼問題
- Linux 用戶端螢幕壓縮演算法優化
### v1.2.7 (2026.2.28)
**V2 檔案傳輸協定**
- 支援 C2C用戶端到用戶端直接傳輸
- 斷點續傳和大檔案支援(>4GB
- SHA-256 檔案完整性校驗
- WebView2 + xterm.js 現代終端
- Linux 檔案管理支援
- 主機清單批次更新優化,減少 UI 閃爍
### v1.2.6 (2026.2.16)
**遠端桌面工具列重寫**
- 狀態視窗顯示 RTT、幀率、解析度
- 全螢幕工具列支援 4 個位置和多顯示器
- H.264 頻寬優化
- 授權管理 UI 完善
### v1.2.5 (2026.2.11)
**自適應品質控制 & Linux 用戶端**
- 基於 RTT 的智慧品質調整
- RGB565 演算法(節省 50% 頻寬)
- 捲動偵測優化(節省 50-80% 頻寬)
- Linux 用戶端初版發佈
完整更新歷史請檢視:[history.md](./history.md)
v1.2.x 系列(郵件通知、遠端音訊 Opus、V2 授權協定、V2 檔案傳輸、現代 Web 終端 xterm.js、遠端桌面工具列重寫、自適應品質控制、Linux 用戶端初版……)及 2019 年以來的全部演進,請見 [history.md](./history.md)。
---