Used for managing other PC.
- C++ 100%
| images | ||
| client.cpp | ||
| README.md | ||
| server.cpp | ||
Remote Accessing Tool
A cross-platform remote access tool with client to server architecture for system management, file controlling and network monitoring.
What you should know:
This can be used in LAN/Your own network OR: Make a static address for your machine. It is limited in commands. It doesnt have as much commands as:
- fish (fish shell)
- bash
- zsh
- nu
Features
- Remote command execution
- File system navigation and management
- Process management (list and kill)
- Network scanning and diagnostics
- System information gathering
- Multi-client support
- Command history
- Authentication system
- Session logging
- Cross-platform (Windows/Linux)
Requirements
- C++17 compatible compiler (g++ 7+, clang 5+, or MSVC 2017+)
- POSIX threads library (pthread) on Linux/Mac
- Windows sockets library (ws2_32) on Windows
- Network connectivity between client and server
Compilation
Linux / macOS
# Compile server
g++ -o server server.cpp -std=c++17 -pthread
# Compile client
g++ -o client client.cpp -std=c++17
Termux (Linux Android Emulator)
pkg install clang -y
g++ -o server server.cpp -std=c++17 -pthread
g++ -o client client.cpp -std=c++17
Windows (MinGW, MSYS2)
# Compiling server.cpp
g++ -o server.exe server.cpp -lws2_32 -std=c++17 -pthread
# Compiling client.cpp
g++ -o client.exe client.cpp -lws2_32 -std=c++17
Windows (Visual Studio/Developer Command Prompt)
cl /EHsc server.cpp ws2_32.lib
cl /EHsc client.cpp ws2_32.lib
Usage into Production
Starting the server/host
# Default port 4444, password admin123 -> Defaults
./server -> Starts a server
# Custom port and password
./server 5555 mypassword
# Custom port, password, and log file
./server 5555 mypassword server.log
Connecting to Client
Connect to localhost on default port ./client
Connect to specific server ./client 192.168.1.100 4444
Connect with custom port ./client 127.0.0.1 5555
Commands
System Commands
| Command | Syntax | Description |
|---|---|---|
| sysinfo | sysinfo |
Display detailed system information including OS version, CPU architecture, processor count, total and available RAM, and available drives |
| processes | processes |
List all running processes with their process IDs (PID) and executable names |
| kill | kill <PID> |
Terminate a running process by specifying its process ID |
| exec | exec <command> |
Execute a system command on the remote machine and return the output |
| shell | shell <command> |
Alias for exec command |
File Operations
| Command | Syntax | Description |
|---|---|---|
| ls | ls [path] |
List contents of current or specified directory with file sizes and types ([DIR] or [FILE]) |
| cd | cd <path> |
Change current working directory to specified path |
| pwd | pwd |
Print current working directory path |
| mkdir | mkdir <name> |
Create a new directory in the current location |
| rm | rm <file> |
Delete a file or directory (removes recursively) |
| mv | mv <source> <destination> |
Move or rename a file or directory |
| cat | cat <file> |
Display contents of a text file |
Network Commands
| Command | Syntax | Description |
|---|---|---|
| netstat | netstat |
Display active network connections, listening ports, and routing tables |
| scan | scan <subnet> |
Scan a network subnet for active hosts (e.g., scan 192.168.1) |
| ipconfig | ipconfig |
Show network interface configuration including IP addresses, MAC addresses, and adapter status |
| ping | ping <host> |
Test network connectivity to a host (4 packets on Windows, 4 packets on Linux) |
Monitoring Commands
| Command | Syntax | Description |
|---|---|---|
| screenshot | screenshot |
Capture a screenshot of the remote machine's primary display (saves as screenshot_timestamp.png) |
| stats | stats |
Display session statistics including connection uptime, number of commands executed, and active clients |
Session Commands
| Command | Syntax | Description |
|---|---|---|
| clients | clients |
List all connected clients with their IP addresses, connection times, and current directories |
| broadcast | broadcast <message> |
Send a broadcast message to all other connected clients |
| sleep | sleep <seconds> |
Pause command execution for specified number of seconds |
| clear | clear |
Clear the terminal screen |
| history | history |
Display command history for the current session |
| help | help |
Show complete command reference |
| shutdown | shutdown |
Shut down the remote control server (requires authentication) |
| exit | exit |
Disconnect from the server |
| quit | quit |
Exit the client application |
Local Client Commands
The following commands are handled locally by the client and do not communicate with the server:
| Command | Description |
|---|---|
| help | Display the command reference |
| clear | Clear the terminal screen |
| history | Show local command history |
| quit | Exit the client application |
| exit | Disconnect from server and exit |
Command Syntax Notes
- Commands are case-sensitive and should be entered in lowercase
- Arguments are separated by spaces
- Paths can be absolute (starting with / or C:) or relative to current directory
- File and directory names containing spaces must be enclosed in quotes
- Press Ctrl+C to interrupt a running command
- Use up/down arrow keys to navigate command history
Output Formatting
- Error messages appear in red text
- Success messages appear in green text
- Section headers appear in cyan text
- Command prompts appear in green text
- Server responses maintain original formatting
Authentication
Before executing any commands, the client must authenticate with the server using the token specified when the server was started:
Silly Authentication successful message:
Successful authentication grants access to all commands. The authentication token is transmitted in plain text; for production use, consider implementing encrypted communication.
Screenshots
Server starting a connection
Client connecting to server