2026-06-03 19:03:32 +02:00
2026-05-20 15:23:08 +02:00
2026-05-20 15:23:08 +02:00
2026-05-31 17:34:30 +02:00
2026-05-31 17:34:30 +02:00
2026-05-31 17:34:30 +02:00

SimpleRemoter

简体中文 | 繁體中文 | English

GitHub Stars GitHub Forks Gitea Release Client Platforms Server Platforms Language License

Download Latest


Warning

Important Legal Notice

This software is intended solely for educational purposes and authorized use cases: remote IT administration within your own organization, authorized penetration testing and security research, personal device management, and technical learning.

Unauthorized access to computer systems is illegal. Users are fully responsible for compliance with all applicable laws. The developers assume no liability for misuse.


Table of Contents


Overview

SimpleRemoter is an end-to-end cross-platform remote control solution.

The project is built on the classic Gh0st architecture and was first started in January 2019. After 7 years of continuous iteration — from rebuilding the IOCP communication core, video-grade x264 encoding, the V2 file transfer protocol, the multi-layer authorization model, all the way to the introduction of Linux and macOS clients — this release finally completes the full-platform loop for both client and server: all three major desktop operating systems (Windows / Linux / macOS) can act as either the controlled side or the master side.

Original source: zibility/Remote | Started: 2019.1.1

Star History Chart


What's New: Full-Platform Loop Closed

The C++ MFC master (YAMA.exe) has been the project's core delivery form for years — classic Gh0st architecture, high-performance IOCP core, the complete remote desktop / file / process / media feature stack, multi-layer authorization, brand customization — and remains the primary master to this day. The MFC master also ships with a built-in WebSocket-based Web Remote Desktop service: since v1.3.1, a browser on any platform (phone / tablet / Linux / macOS desktop) can remote-control managed devices through it.

This release (v1.3.4) adds the last missing piece — the Go master: a deliberately small, focused server centered on remote desktop + remote terminal + multi-user roles, compiled and running across Windows / Linux / macOS. It is not a replacement for the MFC master. It exists for users who cannot reasonably run a Windows VPS and still want a native Linux / macOS landing point — for example pure Linux servers, always-on ARM Macs, or embedded master appliances.

Which Master Should You Use

Form GUI Feature coverage Platform Role
C++ MFC Master (YAMA.exe) Native Windows GUI + built-in Web service All features Windows Recommended. Daily operations, file management, media capture, multi-layer licensing, branding — all of these go through MFC
Go Master (new) Web UI (any browser) Remote desktop + remote terminal + multi-user Windows / Linux / macOS Supplementary. For zero-Windows-dependency Linux / macOS master deployments

Tip

Both masters speak to the exact same client binaries — you can mix and match: e.g. one Windows MFC master + one Linux Go master managing the same fleet of devices in parallel.

Go Master Capabilities (v1.3.4)

  • Remote Desktop: H.264 piped over WebSocket to the browser, hardware-decoded via WebCodecs, smooth 1080P @ 20fps
  • Remote Terminal: xterm.js + ConPTY/PTY, with resize and Tab-completion support
  • Multi-user: admin / regular user roles, Challenge-Response login, opaque tokens, per-device-group authorization
  • Production deployment: Nginx reverse proxy + Let's Encrypt + Keyboard Lock + fullscreen handling that prevents accidental ESC / F11 exit
  • Intentionally minimal: no file management, no media capture, no registry, no service management — those remain MFC-master features

Full Platform Support Matrix

Client (controlled) Master
Windows All features MFC YAMA.exe (recommended) / Go
Linux (X11) Screen + terminal + files + clipboard Go
macOS (Intel + Apple Silicon) Screen + terminal + files + clipboard Go

Compliance & Anti-Abuse

This project takes a deliberate "explicit compliance posture". This release tightens the anti-abuse boundary further.

Built-in Technical Measures

Multiple independently verifiable anti-abuse barriers are constructed at the source-code level. See the Anti-Abuse Technical Measures Inventory for the full catalog:

  • Inbound IP range check: trial builds deployed to the public Internet trip a visible warning latch
  • Listening port cap: trial builds are limited to ≤ 2 listening ports, blocking multi-tenant relay conversion
  • Application-layer RTT anti-proxy: LAN-only RTT thresholds detect reverse proxies / tunnels
  • Multi-layer authorization: V2 ECDSA offline + V1 online + trial — each tier has independent limits
  • Web master authentication: enforced Challenge-Response login, login rate limiting, opaque tokens, auditable operations

Compliance Documents

Document Content
📖 Anti-Abuse & Compliance Policy Full publisher / user responsibility allocation
📖 Anti-Abuse Technical Measures Inventory Source-code location, design motivation, known limitations of each barrier

Important

Using this software constitutes acknowledgment that you have read, understood, and accepted all terms in the above compliance documents. If you do not or cannot accept any term, stop using the software immediately and destroy all copies in your possession.

Network & Privacy

License type Connection behavior
Trial Maintains a persistent connection to the authorization server
V1 / V2 licensed Connects at startup for verification, disconnects after
V2 offline license No connection to the authorization server required

Unless an offline license has been obtained, the master program exchanges necessary data with the authorization server (e.g. detecting cracking attempts, validating license status).


Features

Remote Desktop

Remote Desktop

  • Multiple screen capture backends: GDI / DXGI / virtual desktop (Windows), X11 + XShm (Linux), CGDisplayStream (macOS)
  • Smart compression: DIFF (SSE2-optimized) / RGB565 (50% bandwidth savings) / H.264 (video-grade, via x264 + VideoToolbox + WebCodecs) / grayscale mode
  • Adaptive quality: framerate (530 FPS), resolution, and compression algorithm adjusted automatically based on RTT
  • Multi-monitor: monitor switching + multi-monitor wall display
  • Cross-device file drag-and-drop: copy/paste files across devices with Ctrl+C / Ctrl+V
  • Web Remote Desktop: browser-based access, mobile-ready (config guide)

Web Remote Desktop

File Management

File Management

  • V2 transfer protocol: large files (>4 GB), resumable transfers, SHA-256 verification
  • C2C transfer: client-to-client direct transfer without going through the master
  • Bulk operations: search, compress, batch transfer

Terminal

Console Management

  • Interactive shell: Tab completion, ANSI escape sequences, resizable
  • Modern terminals: ConPTY on Windows, PTY on Linux / macOS
  • Web terminal: xterm.js + WebSocket, parity with the native experience

Other Features

Module Capability
Process management Process list, CPU / memory usage, kill, DLL injection
Window management Maximize / minimize / hide / close
Media capture Webcam, two-way voice, keylogger
System control Service management, registry, session logoff / shutdown
Networking SOCKS proxy, FRP tunneling, port forwarding
Code execution Remote DLL execution, in-memory loading, hot update

Cross-Platform Support

Windows Client

Requirements: Windows 7 SP1 or later Feature completeness: All features supported

Linux Client (v1.2.5+)

Requirements:

  • Display server: X11/Xorg (Wayland not yet supported)
  • Required: libX11. Recommended: libXtst (XTest extension), libXss (idle detection)
Feature Status Implementation
Remote desktop X11 capture + libx264 H.264 hardware encoding
Remote terminal PTY interactive shell
File management V2 protocol, bidirectional, large files
Process management List + kill
Clipboard sync xclip / xsel external tools, supports file URIs
Heartbeat / RTT RFC 6298 RTT estimation
Daemon mode Double-fork daemonization

Build: cd linux && cmake . && make

macOS Client (v1.3.2+)

Requirements:

  • macOS 10.15 (Catalina) or later
  • Architecture: Intel (x64) and Apple Silicon (arm64) universal binary
  • Permissions: Screen Recording, Accessibility, Full Disk Access
Feature Status Implementation
Remote desktop CGDisplayStream + VideoToolbox H.264 hardware encoding
Mouse / keyboard CGEvent, supports double-click and drag
Remote terminal PTY interactive shell (zsh/bash)
File management V2 protocol, large files
Process management proc_listpids + kill
Clipboard sync NSPasteboard, file URLs + NSFilenamesPboardType
Daemon mode -d background mode, power management, idle detection

Build: cd macos && ./build.sh

Go Master (v1.3.4+)

Requirements: Go 1.21+ (build time only); binary runs without dependencies

Capability Implementation
Remote desktop H.264 → WebSocket → WebCodecs, 1080P @ 20fps
Remote terminal xterm.js + PTY/ConPTY transparent forwarding
Multi-user Challenge-Response + opaque token + per-group authorization
Deployment Nginx reverse proxy / Let's Encrypt / systemd unit / /etc/environment

Build: cd server/go && go build -o server_linux_amd64 ./cmd


Architecture

Cross-Platform Topology

┌────────────────────────────────────────────────────────┐
│                      Master Layer                       │
│                                                         │
│   ┌──────────────────┐      ┌──────────────────┐       │
│   │  C++ MFC Master  │      │   Go Master      │       │
│   │  YAMA.exe        │      │ (Win/Linux/Mac)  │       │
│   │  Windows only    │      │  Web UI, all OS  │       │
│   └────────┬─────────┘      └────────┬─────────┘       │
└────────────┼──────────────────────────┼─────────────────┘
             │                          │
             │ TCP (custom binary proto)│ TCP (devices) + WS (browsers)
             └────────┬─────────────────┘
                      │
       ┌──────────────┼──────────────┐
       ▼              ▼              ▼
  ┌─────────┐    ┌─────────┐    ┌─────────┐
  │ Windows │    │  Linux  │    │  macOS  │
  │ client  │    │ client  │    │ client  │
  │ (DXGI)  │    │  (X11)  │    │ (CG)    │
  └─────────┘    └─────────┘    └─────────┘

Multi-Layer Authorization (simplified view)

Super Admin (authorization server)
   │ V2 license (ECDSA P-256)
   ▼
Layer-1 Master ──┬── Layer-1 Master ──┬── Layer-1 Master  ◄── independent / fully isolated
   │ V1          │ V1                 │ V1
   ▼             ▼                    ▼
Sub-master → Clients (10,000+) → Device fleet
License Verification Notes
V2 license ECDSA P-256 signature Offline verification, sub-master connection cap
V1 license HMAC + online check Connects to upstream for verification
Trial Online check Feature- and connection-limited (see compliance docs)

Full description: Multi-Layer License


Getting Started

5-Minute Walkthrough

No compilation required — download and run:

  1. Download a release — grab the latest build from Releases
  2. Start the master — run YAMA.exe (or server_linux_amd64 on Linux), enter the license info
  3. Generate a client — click Build in the toolbar, configure server IP / port
  4. Deploy the client — copy to the target machine and run it
  5. Take control — once the client is online, double-click to open the remote desktop

Tip

For the first test, run both the master and the client on the same machine using 127.0.0.1 as the server address.

Go Master Deployment (VPS)

See the Web Remote Desktop config. The minimum recipe:

# 1. Run the Go master on the VPS
nohup ./server_linux_amd64 --port 6543 --http-port 9001 > yama.log 2>&1 &

# 2. nginx reverse proxy: 9001 → HTTPS
#    See docs/WebHTTPS.md

# 3. Open https://yourdomain.com/ in a browser, log in, add clients

Trial License (v1.2.4+)

A trial credential is provided — 2-year validity, 20 concurrent connections, LAN-only:

Master IP : 127.0.0.1
Serial    : 12ca-17b4-9af2-2894
Password  : 20260201-20280201-0020-be94-120d-20f9-919a
Token     : 6015188620429852704
Valid     : 2026-02-01 to 2028-02-01

Note

Multi-Layer Licensing

Supports independent operation by resellers / developers: Layer-1 users can operate fully offline once licensed, and their sub-users only connect to your server. Full description: Multi-Layer License

Build

  • 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
  • Go master: cd server/go && go build ./cmd

User Documentation

Document Audience Content
📖 Quick Start Guide First-time users First-time deployment in 10 minutes
📖 Multi-Tier Network Setup Users managing sub-tiers Multi-tier network architecture
📖 User Manual All users Complete feature walkthrough
📖 Reseller Operations Manual Resellers / distributors Sub-licensing, FRP setup
📖 Customization Guide Technical customers Branding, secondary development
📖 Web Remote Desktop Setup Mobile / Go-master users HTTPS reverse proxy, domain config
📖 Anti-Abuse Policy All users Compliance boundaries, responsibility allocation
📖 Anti-Abuse Technical Measures Compliance auditors Source-code location and motivation for each barrier

Changelog

v1.3.5 (2026.5.31)

Hardware encoding expansion (H.264 / AV1) & multi-tenant license hardening & FRP sub-master automation

New features:

  • Client hardware encoding: new CFFmpegH264Encoder / CFFmpegAV1Encoder on the FFmpeg path, driving NVENC / Quick Sync / AMF GPU encoders; EncoderFactory picks the best available encoder at runtime
  • Skip-encode on identical frames: capture layer compares consecutive frames and skips both encode and transmit when the picture is static — hardware encoders no longer get fed duplicate frames during idle desktops
  • Menu-driven compress / extract: custom file + folder picker (ZstaPickerDlg) lets you select a mixed directory tree on the remote host to zip up, or extract an archive to a target path
  • Auto-launch frp client for sub-masters: when upstream issues a V2 license, frp config is shipped alongside it; the sub-master connects to the relay automatically with no manual frpc.toml
  • Compliance-tailorable build: DISABLE_X264 / DISABLE_FFMPEG build flags produce binaries with zero x264 / FFmpeg dependency without touching source; paired with LICENSE-THIRD-PARTY.txt

Improvements:

  • Multi-tenant license server hardening: licenses.ini hot path now has a recursive mutex + 30s throttle; write rate dropped from 0.6 → 0.07/sec (extrapolated to 100 online targets: ~160 → ~3.3 writes/sec). Closes the read-modify-write race that caused "preset renewal quota silently disappears"
  • licenses.ini IP list 4KB truncation fix: segmented writes prevent the tail of large IP histories from being silently dropped by WritePrivateProfileString's 4KB single-value cap
  • BindType enforced on SN import: offline / online / trial SNs can no longer be cross-imported into the wrong bucket
  • Client SCLoader slim-down: removed SCLoader.cpp (10K lines of hard-coded stub); the client now uses the DLL delivered by the master at runtime
  • Client logger graceful shutdown: drains queued log lines on exit and records the exit signal — after a restart you still have the last 1-2 seconds of context
  • IOCPClient early-packet guard: packets that arrive before setManagerCallBack no longer trigger a null-callback crash (startup race)
  • Multi-monitor trace-cursor position fix & MJPEG playback flip fix: trace cursor coordinates corrected for cross-monitor capture; MJPEG upside-down playback fixed and 0-byte AVI residue removed on encoder-open failure
  • FRP privilegeKey switched to UTC: master / relay / client across different time zones no longer reject each other's frp auth because of local-time skew
  • Linux client install.sh / uninstall.sh: one-shot install / uninstall scripts, on par with macOS
  • Go server build pipeline: build.ps1 / build.cmd now build the Go master as part of the main build
  • Release / Download links migrated to Gitea: v1.3.4+ is no longer published to GitHub

Bug fixes:

  • Web file manager touch double-click unreliability: move threshold widened to avoid spurious drag detection, plus two sequential click events (20ms apart) instead of the non-standard dblclick — fixes folder rename / unresponsive clicks on Windows, Linux, and macOS
  • AUTH packet to sub-master used the wrong password generation path, causing sub-masters to fail authentication every time
  • Trial SN was being routed through the V2 / V1 license-issue branch

v1.3.4 (2026.5.20)

Go master & full-platform master loop & Linux/macOS clipboard

New features:

  • Go master: cross-platform lightweight master service in Go (Windows / Linux / macOS), focused on remote desktop + remote terminal + multi-user roles — does not replace the MFC master, fills the gap for pure Linux/macOS deployments
  • Web remote desktop (Go master): H.264 → WebSocket → WebCodecs decode, 1080P @ 20fps, desktop + mobile; remote cursor sync, Keyboard Lock to prevent accidental ESC/F11 exit, F11/Esc passed through to the remote when in control mode
  • Web remote terminal (Go master): xterm.js + PTY/ConPTY transparent forwarding, resize, automatic terminal panel cleanup on disconnect
  • Multi-user (Go master): admin / regular user roles, per-device-group authorization, Challenge-Response login, login rate limiting (per-IP + per-username), opaque tokens
  • Linux client clipboard: bidirectional clipboard sync via xclip / xsel, supports text/uri-list file paths
  • macOS client clipboard: bidirectional clipboard sync via NSPasteboard, file URLs + legacy API compatibility

Improvements:

  • Web session adaptive quality is clamped to H264-only levels (≥ Good); Ultra/High (DIFF/RGB565) would otherwise leave the browser unable to decode
  • Linux client default QualityLevel changed to QUALITY_GOOD (matching Windows / macOS) — no longer requests adaptive on the server side
  • Login text fields decoded as UTF-8 / GBK depending on client capability bits, fixing mojibake in German / French hostnames and geo locations
  • Device list now sorts stably (by online time), no longer reshuffles on every heartbeat / WS push
  • RDP reset button wired through to CMD_RESTORE_CONSOLE on the device
  • MFC master no longer briefly flashes its dialog when a Web session opens (session detection moved to the top of OnInitDialog)

Bug fixes:

  • After closing a Web session from fullscreen, device-list clicks became unresponsive (browser fullscreen subtree rule, now exited centrally in showPage)
  • When a client crashed, the Web remote desktop page stayed on "Connected" forever (new device_offline notification)
  • Multi-monitor polling caused two screen sub-connections to push frames simultaneously, making the picture flip between monitors (old sub-conn now retired in BindScreenConn)
  • Go master ListDevices order was randomized by map iteration

v1.3.3 (2026.5.10)

Linux/macOS client polish & two-layer authentication

  • Server identity check (Layer 1): Linux/macOS client verifies server identity with HMAC-SHA256
  • Sub-connection auth (Layer 2, TOKEN_CONN_AUTH): every sub-connection's first packet is signed and pinned to its clientID
  • Linux client: H.264 hardware encoding, XFixes cursor type detection, UTF-8 protocol capability bit
  • macOS client: file manager, remote terminal, clipboard sync, daemon mode
  • Master: screen preview thumbnails, region screenshot, remote desktop zoom, Web users filter by group
  • Shared code factored into common/ (rtt_estimator / client_auth_state / posix_net_helpers)

v1.3.2 (2026.5.1)

macOS client & Web Remote Desktop enhancements

  • Brand-new native macOS client: screen capture, H.264 encoding, mouse/keyboard control
  • Web remote desktop cursor sync
  • Trigger functionality, user management (role-based permissions)
  • DLL execution enhancements, remote desktop input-method switching

v1.3.1 (2026.4.15)

Web Remote Desktop (MFC master) & multi-master sharing

  • Web remote desktop: WebSocket-based, accessible from phone / tablet browsers
  • Multi-monitor: adaptive disabled when multiple monitors are present; expiry date auto-refresh in the status bar
  • Multi-layer license auto-update, DLL cache reuse

v1.3.0 (2026.4.8)

Multi-tier FRP & brand customization

  • Local FRPS server, multi-tier auto FRP integration
  • V2 license sub-master connection cap, license file import / export
  • Enhanced hardware ID (V2), UI brand customization
  • Configurable runtime feature limits

Earlier versions

The v1.2.x series (email notifications, remote audio via Opus, V2 license protocol, V2 file transfer, modern Web terminal with xterm.js, remote desktop toolbar rewrite, adaptive quality control, first Linux client, …) and the full evolution since 2019 are documented in history.md.


  • HoldingHands — English-only remote control
  • Gh0st — Classic Gh0st implementation

Contact

Channel Link
QQ 962914132
Telegram @doge_grandfather
Email yuanyuanxiang163@gmail.com
Issues Report a bug
PR Contribute

Sponsor

This project is a side-of-the-desk effort driven by technical curiosity. The author updates it in spare time. If it helps you, sponsorship is welcome:

Sponsor


If you like this project, please give it a Star!

Description
A cross-platform remote desktop control suite for Windows, macOS and Linux, featuring multi-tier licensing and authorization architecture, remote desktop control, file transfer, remote terminal, and FRP-based NAT traversal.
https://simpleremoter.com
Readme MIT 77 MiB
v1.3.5 Latest
2026-05-31 15:38:52 +00:00
Languages
C++ 63.2%
C 28.8%
Go 3.2%
HTML 2.4%
Objective-C++ 1.4%
Other 0.9%