Update ReadMe.md & ReadMe_EN.md
This commit is contained in:
119
ReadMe.md
119
ReadMe.md
@@ -4,7 +4,24 @@
|
||||
|
||||
---
|
||||
|
||||
# 项目简介
|
||||
# 📚 导航目录
|
||||
|
||||
- [1. 项目简介](#1-project-overview)
|
||||
- [2. 免责声明](#2-legal-disclaimer)
|
||||
- [3. 系统架构](#3-system-architecture)
|
||||
- [3.1 主控程序](#31-master-controller)
|
||||
- [3.2 受控程序](#32-controlled-client)
|
||||
- [3.3 Linux客户端](#33-linux-client)
|
||||
- [4. 部署方式](#4-deployment-methods)
|
||||
- [4.1 内网部署](#41-intranet-deployment)
|
||||
- [4.2 外网部署](#42-internet-deployment)
|
||||
- [5. 更新日志](#5-changelog)
|
||||
- [6. 其他项目](#6-other-projects)
|
||||
- [7. 沟通反馈](#7-feedback-and-contact)
|
||||
|
||||
---
|
||||
|
||||
# 1.项目简介 <a id="1-project-overview"></a>
|
||||
|
||||
**原始来源:** [zibility](https://github.com/zibility/Remote)
|
||||
|
||||
@@ -19,15 +36,33 @@
|
||||
|
||||
**起始日期**:2019.1.1
|
||||
|
||||
## 免责声明
|
||||
# 2.免责声明 <a id="2-legal-disclaimer"></a>
|
||||
|
||||
本项目为远程控制技术的研究性实现,仅供合法学习用途。**严禁**用于非法侵入、控制、监听他人设备等违法行为。
|
||||
|
||||
本软件以“现状”提供,不附带任何保证。使用本软件的风险由用户自行承担。我们不对任何因使用本软件而引发的非法或恶意用途负责。
|
||||
用户应遵守相关法律法规,并负责任地使用本软件。开发者对任何因使用本软件产生的损害不承担责任。
|
||||
|
||||
## 主控程序
|
||||
主控程序为**YAMA.exe**是Server端,基于IOCP通讯,支持上万主机同时在线,Release发布版本在单台电脑只能运行一个实例。
|
||||
# 3.系统架构 <a id="3-system-architecture"></a>
|
||||
|
||||

|
||||
|
||||
此程序(自v1.1.1)采用2层架构:
|
||||
- (1).由超级用户分发并管理主控程序;
|
||||
|
||||
- (2).各个主控程序分别控制一些计算机。
|
||||
|
||||
这个架构具有下述特点:
|
||||
- 借助于下层的主控程序作跳板,超级用户可以对整个系统中任何计算机进行控制;
|
||||
- 不同的主控程序(Master 1,2,3等)所管理的计算机之间不能乱连,即主控程序只能控制由其本身生成的控制端;
|
||||
- 由超级用户管理主控程序的授权。
|
||||
|
||||
**郑重提示:严禁用于非法控制他人的设备。**
|
||||
|
||||
## 3.1主控程序 <a id="31-master-controller"></a>
|
||||
主控程序为**YAMA.exe**,作为Server端,基于IOCP通讯,支持上万主机同时在线;并且得益于分层控制架构,
|
||||
系统支持的主机数量上升一个数量级。例如,一个超级用户管理10个Master,每个Master控制1万台主机,那么对超级管理员而言
|
||||
可以控制10万台主机。
|
||||
下面展示主控程序运行界面,所有功能均可用,程序运行稳定。
|
||||
某些功能要求受控程序以管理员权限运行。
|
||||
|
||||
@@ -76,7 +111,31 @@
|
||||
|
||||
注册表管理即打开受控机器上面的注册表,只能查看注册表,不支持修改。
|
||||
|
||||
## Linux 客户端
|
||||
**关于授权:**
|
||||
自v1.0.8起,操作主控程序需要获得授权。给新编译的程序14天试用期,过期之后生成服务端需要凭借"序列号"申请口令;
|
||||
如果要屏蔽该授权逻辑,请参考`OnOnlineBuildClient`函数,重新编译程序,参看:
|
||||
[#91](https://github.com/yuanyuanxiang/SimpleRemoter/issues/91)。
|
||||
“口令”包含授权日期范围,确保一机一码;授权逻辑会检测计算机日期未被篡改。生成口令需使用密码。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
自v1.1.1起,撤销对新编译程序的授权,任何人使用本程序,需要自行编译。否则程序将在使用10分钟后弹出对话框,请求输入口令。
|
||||
授权逻辑的引入可以将大部分毫无编程经验的小白阻挡在外。
|
||||
如果只想体验此远程控制程序,作者认为使用v1.0.7及以前版本即可,它们和后续版本在核心功能上没有本质不同。
|
||||
如果您对技术有兴趣,则作者认为您有足够的能力亲自编译程序。
|
||||
|
||||
## 3.2受控程序 <a id="32-controlled-client"></a>
|
||||

|
||||
|
||||
受控程序是Client端,分为2种运行形式("类型"):单个程序 **(1)** ghost.exe和 **(2)** TestRun.exe+ServerDll.dll形式。
|
||||
(1)单个程序运行时,不依赖其他动态链接库,而第(2)种情况运行时,由EXE程序调用核心动态链接库。
|
||||
|
||||
注意:自[v1.0.8](https://github.com/yuanyuanxiang/SimpleRemoter/releases/tag/v1.0.0.8)起,
|
||||
`TestRun.exe`将采取内存加载DLL运行方式,向主控程序请求DLL并在内存中执行,这有利于代码的热更新。
|
||||
|
||||
## 3.3Linux客户端 <a id="33-linux-client"></a>
|
||||
|
||||

|
||||
|
||||
@@ -86,29 +145,31 @@
|
||||
|
||||
请在Linux环境编译得到客户端,然后在生成服务端对话框,选择该文件,填写上线地址生成Linux端程序。
|
||||
|
||||
## 关于授权
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
自v1.0.8起,操作主控程序需要获得授权。给新编译的程序14天试用期,过期之后生成服务端需要凭借"序列号"申请口令;
|
||||
如果要屏蔽该授权逻辑,请参考`OnOnlineBuildClient`函数,重新编译程序,参看:
|
||||
[#91](https://github.com/yuanyuanxiang/SimpleRemoter/issues/91)。
|
||||
“口令”包含授权日期范围,确保一机一码;授权逻辑会检测计算机日期未被篡改。生成口令需使用密码。
|
||||
|
||||
## 受控程序
|
||||

|
||||
|
||||
受控程序是Client端,分为2种运行形式("类型"):单个程序 **(1)** ghost.exe和 **(2)** TestRun.exe+ServerDll.dll形式。
|
||||
(1)单个程序运行时,不依赖其他动态链接库,而第(2)种情况运行时,由EXE程序调用核心动态链接库。
|
||||
|
||||
注意:自[v1.0.8](https://github.com/yuanyuanxiang/SimpleRemoter/releases/tag/v1.0.0.8)起,
|
||||
`TestRun.exe`将采取内存加载DLL运行方式,向主控程序请求DLL并在内存中执行,这有利于代码的热更新。
|
||||
|
||||
---
|
||||
|
||||
# 更新日志
|
||||
# 4.部署方式 <a id="4-deployment-methods"></a>
|
||||
|
||||
## 4.1内网部署 <a id="41-intranet-deployment"></a>
|
||||
|
||||
指的是主控程序和受控设备在同一个局域网,受控设备能直接连接主控的地址。这种部署方式非常简单,
|
||||
在生成服务时填写主控的IP和端口即可。
|
||||
|
||||
## 4.2外网部署 <a id="42-internet-deployment"></a>
|
||||
|
||||
指的是主控程序和受控程序在不同的网络,主控设备没有公网IP,受控设备不能直接连接主控的地址。
|
||||
为此,需要一个“中间人”,能将主控设备的内网IP穿透出去。一种方式是[使用花生壳](./使用花生壳.txt),此处不再赘述。
|
||||
|
||||
本文讲述第二种方法,其原理和使用花生壳无异:
|
||||
|
||||
*受控 ——> VPS ——> 主控*
|
||||
|
||||
我们用VPS作为“中间人”,实现对远程设备的控制。VPS的全称是“Virtual Private Server”,使用物理机也是可以的,不过VPS更具有性价比。
|
||||
通常,您需要购买VPS。VPS和程序之间的通讯基于[FRP](https://github.com/fatedier/frp).
|
||||
|
||||
这种情况,在生成服务端程序时,IP填写的是VPS的IP,有些VPS供应商甚至提供域名,则填写域名也可以。通常,在VPS上运行FRP服务程序,
|
||||
在本地运行FRP客户端程序。当有主机连接VPS时,则VPS这个中间人会把请求转发到本地计算机,而我们发起的控制请求也将经这个中间人打到受控主机。
|
||||
|
||||
# 5.更新日志 <a id="5-changelog"></a>
|
||||
|
||||
2025年以前的变更记录参看:[history](./history.md)
|
||||
|
||||
@@ -175,7 +236,7 @@
|
||||
|
||||
---
|
||||
|
||||
# 其他项目
|
||||
# 6.其他项目 <a id="6-other-projects"></a>
|
||||
|
||||
- [HoldingHands](https://github.com/yuanyuanxiang/HoldingHands):此远控程序界面为全英文,采用不同的架构设计。
|
||||
- [BGW RAT](https://github.com/yuanyuanxiang/BGW_RAT): 一款功能全面的远程控制程序,即大灰狼9.5.
|
||||
@@ -183,7 +244,7 @@
|
||||
|
||||
---
|
||||
|
||||
# 沟通反馈
|
||||
# 7.沟通反馈 <a id="7-feedback-and-contact"></a>
|
||||
|
||||
QQ:962914132
|
||||
|
||||
@@ -195,5 +256,5 @@ QQ:962914132
|
||||
|
||||
赞助方式 / Sponsor:该项目的研究出自技术学习和兴趣爱好,本人视业余情况不定期更新项目。
|
||||
**如果该项目对你有益,请通过赞助图标对本项目进行支持。**
|
||||
如果你希望采用其他方式(如微信、支付宝)对本项目进行赞助,请点击
|
||||
如果你希望采用其他方式(如微信、支付宝、PayPal)对本项目进行赞助,请点击
|
||||
[这里](https://github.com/yuanyuanxiang/yuanyuanxiang/blob/main/images/QR_Codes.jpg)。
|
||||
|
||||
198
ReadMe_EN.md
198
ReadMe_EN.md
@@ -3,129 +3,183 @@
|
||||
**[🇺🇸 English](./ReadMe_EN.md) | [🇨🇳 中文](./ReadMe.md)**
|
||||
|
||||
---
|
||||
# 📚 Table of Contents
|
||||
|
||||
# Project Overview
|
||||
- [1. Project Overview](#1-project-overview)
|
||||
- [2. Legal Disclaimer](#2-legal-disclaimer)
|
||||
- [3. System Architecture](#3-system-architecture)
|
||||
- [3.1 Master Controller](#31-master-controller)
|
||||
- [3.2 Controlled Client](#32-controlled-client)
|
||||
- [3.3 Linux Client](#33-linux-client)
|
||||
- [4. Deployment Methods](#4-deployment-methods)
|
||||
- [4.1 Intranet Deployment](#41-intranet-deployment)
|
||||
- [4.2 Internet Deployment](#42-internet-deployment)
|
||||
- [5. Changelog](#5-changelog)
|
||||
- [6. Related Projects](#6-related-projects)
|
||||
- [7. Feedback & Communication](#7-feedback--communication)
|
||||
|
||||
---
|
||||
|
||||
# 1. Project Overview
|
||||
|
||||
**Original Source:** [zibility](https://github.com/zibility/Remote)
|
||||
|
||||
**Feature Summary:**
|
||||
A remote controller based on Gh0st, implementing functionalities including terminal management, process management, window management, desktop control, file transfer, voice management, video monitoring, service management, registry viewer, keylogging, SOCKS proxy, virtual desktop, code execution, and more.
|
||||
A remote control system based on gh0st, supporting terminal management, process management, window management, desktop control, file transfer, audio/video streaming, service control, registry viewing, keylogging, SOCKS proxy, virtual desktop, code execution, and more.
|
||||
|
||||
If you're interested in control programs and enjoy this project, please consider starring it. Forks, watches, issue submissions, and pull requests are all welcome.
|
||||
The author will fix reported issues as time permits.
|
||||
If you are passionate about researching control programs and find this project useful, you're welcome to star, fork, watch the repository, submit issues, or contribute via pull requests. The author will address issues depending on spare time availability.
|
||||
|
||||
[](https://star-history.com/#yuanyuanxiang/SimpleRemoter&Date)
|
||||
|
||||
<span style="color:#FF5722; font-weight:bold;">*This software is intended for learning and technical communication only. Users are responsible for any consequences resulting from its use.*</span>
|
||||
*This program is for educational and technical research purposes only. Users are fully responsible for any consequences arising from its usage.*
|
||||
|
||||
**Project Start Date:** January 1, 2019
|
||||
**Initial Release Date:** January 1, 2019
|
||||
|
||||
## Disclaimer
|
||||
# 2. Legal Disclaimer
|
||||
|
||||
This project is a research-oriented implementation of remote control technology and is intended solely for educational purposes.
|
||||
Any use of this software for unauthorized access, surveillance, or control of other systems is **strictly prohibited**.
|
||||
This project is a research-oriented implementation of remote control technology and is intended solely for legal and educational use.
|
||||
**Strictly prohibited**: any illegal access, control, or monitoring of others' devices.
|
||||
|
||||
This software is provided "as is" without any warranty. Use of this software is at your own risk.
|
||||
We are not responsible for any illegal or malicious use resulting from this software.
|
||||
Users should comply with relevant laws and regulations and use this software responsibly.
|
||||
The developer assumes no liability for any damage arising from the use of this software.
|
||||
This software is provided "as is" without any warranties. Use of this software is at your own risk.
|
||||
We are not liable for any illegal or malicious use of this software.
|
||||
Users must comply with applicable laws and use the software responsibly.
|
||||
The developer assumes no responsibility for any damages caused by use of this software.
|
||||
|
||||
## Controller (Server)
|
||||
# 3. System Architecture
|
||||
|
||||
The main controller is **YAMA.exe**, which functions as the server. It is based on IOCP communication and supports tens of thousands of concurrent connections. Only one instance can run per machine in the Release version.
|
||||

|
||||
|
||||
Below are interface previews of the controller program. All features are stable and functional.
|
||||
Note: Some features require the client (controlled program) to run with administrator privileges.
|
||||
Since version v1.1.1, the system adopts a two-tier architecture:
|
||||
- (1) A superuser distributes and manages multiple master controllers.
|
||||
- (2) Each master controller manages its own set of controlled clients.
|
||||
|
||||

|
||||
**Key characteristics of this architecture:**
|
||||
- Superusers can control any client in the system via the subordinate masters as relays.
|
||||
- Cross-communication between hosts managed by different masters is disallowed—each master can only control its own clients.
|
||||
- Superuser authorization is required to manage master controllers.
|
||||
|
||||
The main window displays a list of connected clients.
|
||||
Select a client to perform remote operations such as editing notes, setting up proxy mappings, or executing code.
|
||||
**Important: Unauthorized control of other users' devices is strictly prohibited.**
|
||||
|
||||
## 3.1 Master Controller
|
||||
|
||||
The master controller executable is **YAMA.exe**. It serves as the Server side, using IOCP for communication, and supports tens of thousands of clients online concurrently.
|
||||
|
||||
Thanks to the layered architecture, the supported number of hosts increases exponentially.
|
||||
For example, if one superuser manages 10 masters, and each master handles 10,000 clients, the system can control up to 100,000 clients.
|
||||
|
||||
All features are available and stable in the UI. Some operations require the client to run with administrator privileges.
|
||||
|
||||

|
||||
|
||||
The main UI displays all connected clients.
|
||||
You can select a host to perform remote actions such as renaming, proxy mapping, or executing commands.
|
||||
|
||||

|
||||
|
||||
**Terminal Management** opens a command line interface to execute remote commands.
|
||||
A [minimal version](./linux/main.cpp) is available with Linux client support for research purposes.
|
||||
The terminal module allows you to execute remote commands in a command-line interface.
|
||||
A [minimal Linux version](./linux/main.cpp) is also available for research and development.
|
||||
|
||||

|
||||
|
||||
**Process Management** shows all running processes on the remote machine.
|
||||
You can start or stop regular processes (not high-privileged ones).
|
||||
Displays the running processes on the controlled host. You can start or stop normal processes (not system-level ones).
|
||||
|
||||

|
||||
|
||||
**Window Management** displays currently open windows or programs on the remote machine, allowing you to hide or show them.
|
||||
Displays and allows manipulation of open windows on the controlled machine, including hide/show functionality.
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
**Desktop Control** functions as "Remote Desktop" for controlling the remote machine.
|
||||
You can configure screenshot capture methods (GDI, DXGI, or VIRTUAL) and compression algorithms (grayscale, screen-diff, H264).
|
||||
"VIRTUAL" enables a virtual desktop running in the background, improving smoothness.
|
||||
Additionally, it supports reporting the active window and detecting specific software.
|
||||
Desktop management provides a full remote desktop experience. You can configure the capture method (GDI, DXGI, or VIRTUAL) and compression options (grayscale, screen diff, H264).
|
||||
The **VIRTUAL** option allows headless remote control for improved performance.
|
||||
It also supports reporting active windows and detecting specific applications.
|
||||
|
||||

|
||||
|
||||
**File Management** handles file transfer between the local and remote machine.
|
||||
File management allows file transfer between your machine and the client device.
|
||||
|
||||

|
||||
|
||||
**Voice Management** allows you to listen to the remote machine’s audio or send audio if a device is available.
|
||||
Enables audio monitoring and voice transmission, provided the target machine has audio devices.
|
||||
|
||||

|
||||
|
||||
**Video Management** enables webcam access on the remote machine.
|
||||
If enabled in settings, the controller will show whether a webcam is present.
|
||||
Opens the client’s webcam. Camera detection is enabled by default and indicated in the host list.
|
||||
|
||||

|
||||
|
||||
**Service Management** lists services on the remote machine.
|
||||
If permitted, you can start, stop, or manage services.
|
||||
Allows viewing and managing services on the target machine (start/stop), subject to permissions.
|
||||
|
||||

|
||||

|
||||
|
||||
**Registry Management** provides view-only access to the remote machine's registry.
|
||||
Enables viewing (read-only) the client’s registry.
|
||||
|
||||
## Linux Client
|
||||
**About Licensing:**
|
||||
Since version v1.0.8, using the master controller requires authorization. New builds have a 14-day trial, after which a "serial number" is needed to request an unlock code.
|
||||
To remove this logic, refer to the `OnOnlineBuildClient` function and recompile the software. See:
|
||||
[#91](https://github.com/yuanyuanxiang/SimpleRemoter/issues/91)
|
||||
|
||||

|
||||
The unlock code includes a validity period and is tied to the machine ID. The system checks for system time tampering. Generating a valid unlock code requires a password.
|
||||
|
||||
A Linux client is available under the [v1.0.8](./Releases/v1.0.8/ghost) directory, currently supporting only terminal commands.
|
||||

|
||||

|
||||
|
||||
As of v1.1.1, the precompiled version is no longer authorized. All users must build the software themselves.
|
||||
Otherwise, after 10 minutes of use, a dialog will prompt for an unlock code.
|
||||
This prevents misuse by non-technical users.
|
||||
If you only want to try out the program, version v1.0.7 or earlier is sufficient as core functionality is unchanged.
|
||||
If you're interested in the technology, you're encouraged to compile it yourself.
|
||||
|
||||
## 3.2 Controlled Client
|
||||
|
||||

|
||||
|
||||
The controlled client is the **Client-side** application, available in two formats:
|
||||
1. A single executable: `ghost.exe`
|
||||
2. A launcher + DLL: `TestRun.exe` with `ServerDll.dll`
|
||||
|
||||
The first form is self-contained.
|
||||
Since [v1.0.8](https://github.com/yuanyuanxiang/SimpleRemoter/releases/tag/v1.0.0.8), `TestRun.exe` loads the DLL into memory, allowing dynamic updates from the master.
|
||||
|
||||
## 3.3 Linux Client
|
||||
|
||||

|
||||
|
||||
A Linux version is included in [v1.0.8](./Releases/v1.0.8/ghost), currently only supporting terminal access.
|
||||
|
||||

|
||||
|
||||
Compile the client under a Linux environment, then use the server build dialog to select the file and set connection info for generating a Linux version.
|
||||
|
||||
## Licensing & Authorization
|
||||
|
||||

|
||||

|
||||
|
||||
Starting from v1.0.8, operating the controller requires authorization.
|
||||
Newly compiled programs have a 14-day trial period. After expiration, generating clients requires a **serial number** to obtain an **authorization token**.
|
||||
|
||||
To bypass the authorization logic, refer to the `OnOnlineBuildClient` function and recompile the program. See issue:
|
||||
[#91](https://github.com/yuanyuanxiang/SimpleRemoter/issues/91)
|
||||
The token includes the authorization period and enforces one-machine-one-code rules.
|
||||
The logic also detects date tampering. Token generation requires a password.
|
||||
|
||||
## Controlled Program (Client)
|
||||
|
||||

|
||||
|
||||
The controlled program acts as the **Client**, with two available formats:
|
||||
|
||||
1. A standalone program `ghost.exe`
|
||||
2. A combo format `TestRun.exe + ServerDll.dll`
|
||||
|
||||
- Format (1) is self-contained with no external dependencies.
|
||||
- Format (2) runs the EXE, which invokes a core DLL.
|
||||
|
||||
Note: Since [v1.0.8](https://github.com/yuanyuanxiang/SimpleRemoter/releases/tag/v1.0.0.8), `TestRun.exe` loads DLLs into memory on demand from the controller, which supports hot code updates.
|
||||
Compile the client on a Linux system. Then, in the master build dialog, select the compiled binary and set the desired connection address to generate a valid Linux client.
|
||||
|
||||
---
|
||||
|
||||
# Changelog
|
||||
# 4. Deployment Methods
|
||||
|
||||
## 4.1 Intranet Deployment
|
||||
|
||||
This means the master and clients are within the same local network. The client can directly reach the master’s IP and port.
|
||||
This is the simplest form—just enter the master’s local IP and port when building the client.
|
||||
|
||||
## 4.2 Internet Deployment
|
||||
|
||||
In this case, the master and clients are on different networks, and the master lacks a public IP.
|
||||
Clients cannot directly connect. To bridge this, a **"middleman"** is required to forward traffic.
|
||||
|
||||
One method is using [Peanuthull](./使用花生壳.txt), but here we focus on a second method, which works similarly:
|
||||
|
||||
> *Client → VPS → Master*
|
||||
|
||||
A **VPS (Virtual Private Server)** is used as a relay to control remote clients.
|
||||
A physical server can also be used, but VPS is more cost-effective.
|
||||
Usually, you need to rent one and set up port forwarding using [FRP (Fast Reverse Proxy)](https://github.com/fatedier/frp).
|
||||
|
||||
During client generation, use the VPS IP (or domain, if available).
|
||||
The FRP server runs on the VPS, while the FRP client runs on your local machine.
|
||||
Once a client connects to the VPS, the relay will forward traffic to your local machine, completing the control loop.
|
||||
|
||||
---
|
||||
|
||||
# 5. Changelog
|
||||
|
||||
For changes before 2025, see: [history](./history.md)
|
||||
|
||||
@@ -195,7 +249,7 @@ Release v1.1.0:
|
||||
|
||||
---
|
||||
|
||||
# Other Projects
|
||||
# 6. Related Projects
|
||||
|
||||
- [HoldingHands](https://github.com/yuanyuanxiang/HoldingHands): A remote control program with a fully English interface and a different architectural design.
|
||||
- [BGW RAT](https://github.com/yuanyuanxiang/BGW_RAT): A fully featured remote access tool, also known as Big Grey Wolf 9.5.
|
||||
@@ -203,7 +257,7 @@ Release v1.1.0:
|
||||
|
||||
---
|
||||
|
||||
# Feedback & Contact
|
||||
# 7. Feedback & Communication
|
||||
|
||||
QQ: 962914132
|
||||
|
||||
|
||||
Reference in New Issue
Block a user