Skip to content

DuminAndrew/MD-RDS

Repository files navigation

Mirage Desktop - Система удаленного администрирования

License Qt C++ Platform

Mirage Desktop - это современная кроссплатформенная система удаленного доступа и администрирования, разработанная для системных администраторов. Система обеспечивает безопасное подключение к рабочим столам сотрудников без необходимости запроса разрешения в момент подключения (unattended access).

🚀 Быстрый старт

Хотите начать работу прямо сейчас? Смотрите QUICKSTART.md

Основные возможности

  • Удаленный рабочий стол: Полный контроль над удаленным компьютером с минимальной задержкой
  • Unattended Access: Подключение без запроса разрешения пользователя
  • Передача файлов: Двусторонний файловый менеджер с поддержкой Drag-and-Drop
  • Безопасность: Шифрование всего трафика с использованием AES-256-GCM
  • Мультимониторная поддержка: Работа с несколькими мониторами на стороне клиента
  • Кроссплатформенность: Поддержка Windows, macOS и Linux

Архитектура

Система состоит из двух компонентов:

1. Mirage Admin (Модуль администратора)

  • Графический интерфейс на Qt6/QML
  • Управление списком контактов
  • Инициирование подключений
  • Просмотр удаленного рабочего стола
  • Передача файлов

2. Mirage Client (Модуль клиента)

  • Работает как системная служба/демон
  • Автоматический запуск при загрузке системы
  • Минимальный интерфейс (системный трей)
  • Прием входящих подключений
  • Захват экрана и обработка ввода

Технологический стек

  • Язык: C++17
  • GUI Framework: Qt 6 (QML + Qt Quick Controls)
  • Шифрование: OpenSSL (AES-256-GCM, TLS 1.3)
  • Сборка: CMake 3.21+
  • Захват экрана:
    • Windows: DirectX Desktop Duplication API
    • macOS: Core Graphics
    • Linux: X11/Wayland
  • Инъекция ввода:
    • Windows: SendInput API
    • macOS: CGEvent API
    • Linux: X11/XTest

Требования

Для сборки:

  • CMake 3.21 или выше
  • Qt 6.2 или выше (Core, Quick, Network, Widgets, QuickControls2, Concurrent)
  • OpenSSL 1.1.1 или выше
  • Компилятор с поддержкой C++17 (GCC 7+, Clang 5+, MSVC 2017+)

Системные требования:

  • Windows: Windows 10/11 (64-bit)
  • macOS: macOS 10.15 (Catalina) или выше
  • Linux: Ubuntu 20.04+ / Fedora 32+ или аналогичные

Структура проекта

Mirage Desktop/
├── src/
│   ├── admin/              # Код модуля администратора
│   ├── client/             # Код модуля клиента
│   └── common/             # Общие компоненты
│       ├── network/        # Сетевые классы
│       ├── crypto/         # Шифрование
│       ├── protocol/       # Протокол связи
│       ├── capture/        # Захват экрана
│       ├── input/          # Инъекция ввода
│       ├── compression/    # Сжатие видео
│       └── utils/          # Утилиты
├── qml/
│   └── admin/              # QML интерфейс администратора
│       ├── views/          # Экраны приложения
│       └── components/     # UI компоненты
├── resources/              # Ресурсы (иконки, шрифты)
├── docs/                   # Документация
├── build/                  # Директория сборки
└── CMakeLists.txt          # Главный файл CMake

Сборка проекта

Windows (MSVC + Ninja) - Рекомендуется

Проект настроен для сборки с использованием Ninja и MSVC 19.50 (Visual Studio 2025 Preview).

Требования:

  • Visual Studio 2022/2025 с MSVC компилятором
  • Qt 6.8.3 (установлен в C:\Qt\6.8.3\msvc2022_64)
  • OpenSSL 3.6.0 (установлен в C:\Program Files\OpenSSL-Win64)
  • Ninja 1.12.1 или выше
  • CMake 3.31 или выше
  • Inno Setup 6 (для создания установщиков)

Быстрая сборка:

# Полная сборка с созданием установщиков
BUILD-ALL.bat

Этот скрипт выполнит:

  1. Сборку приложений с помощью CMake и Ninja
  2. Развертывание Qt зависимостей (windeployqt)
  3. Копирование OpenSSL DLL
  4. Создание установщиков с Inno Setup

Поэтапная сборка:

# Только сборка приложений
build-ninja.bat

# Развертывание Qt для Admin
cd build-ninja\src\admin
"C:\Qt\6.8.3\msvc2022_64\bin\windeployqt.exe" --qmldir "../../../qml/admin" --no-translations mirage-admin.exe
cd ..\..\..

# Развертывание Qt для Client
cd build-ninja\src\client
"C:\Qt\6.8.3\msvc2022_64\bin\windeployqt.exe" --no-translations mirage-client.exe
cd ..\..\..

# Копирование OpenSSL DLL
copy "C:\Program Files\OpenSSL-Win64\bin\libcrypto-3-x64.dll" build-ninja\src\admin\
copy "C:\Program Files\OpenSSL-Win64\bin\libssl-3-x64.dll" build-ninja\src\admin\
copy "C:\Program Files\OpenSSL-Win64\bin\libcrypto-3-x64.dll" build-ninja\src\client\
copy "C:\Program Files\OpenSSL-Win64\bin\libssl-3-x64.dll" build-ninja\src\client\

# Создание установщиков
cd installers
build-installers.bat
cd ..

Результаты сборки:

  • Исполняемые файлы:
    • build-ninja\src\admin\mirage-admin.exe
    • build-ninja\src\client\mirage-client.exe
  • Установщики:
    • installers\output\Mirage-Admin-Setup-1.0.0.exe
    • installers\output\Mirage-Client-Setup-1.0.0.exe

Windows (Visual Studio IDE)

# Установите Qt 6 и OpenSSL
# Настройте переменные окружения Qt6_DIR и OPENSSL_ROOT_DIR

mkdir build
cd build
cmake -G "Visual Studio 17 2022" -A x64 ..
cmake --build . --config Release

Linux

# Установите зависимости
sudo apt install qt6-base-dev qt6-declarative-dev libssl-dev libx11-dev libxtst-dev

mkdir build
cd build
cmake ..
make -j$(nproc)

macOS

# Установите зависимости через Homebrew
brew install qt@6 openssl@3 cmake

mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=/opt/homebrew/opt/qt@6 ..
make -j$(sysctl -n hw.ncpu)

Использование

Установка через инсталлятор (Windows)

Mirage Admin:

  1. Запустите Mirage-Admin-Setup-1.0.0.exe
  2. Следуйте инструкциям мастера установки
  3. Установщик автоматически:
    • Установит все необходимые Qt библиотеки
    • Установит OpenSSL DLL
    • Создаст ярлыки в меню "Пуск" и на рабочем столе
  4. Приложение готово к использованию

Mirage Client:

  1. Запустите Mirage-Client-Setup-1.0.0.exe
  2. Следуйте инструкциям мастера установки
  3. В процессе установки можно выбрать:
    • ☑ Установить как службу Windows (рекомендуется)
    • ☑ Автоматический запуск службы при загрузке системы
  4. Служба будет установлена и запущена автоматически

Первый запуск клиента

  1. Запустите mirage-client на компьютере сотрудника (или установите через инсталлятор)
  2. При первом запуске будет сгенерирован уникальный ID и пароль
  3. ID и пароль отображаются в интерфейсе системного трея
  4. Передайте эти данные администратору

Управление службой вручную:

# Установка службы
mirage-client.exe --install-service

# Запуск службы
sc start MirageClient

# Остановка службы
sc stop MirageClient

# Удаление службы
mirage-client.exe --uninstall-service

Подключение администратора

  1. Запустите mirage-admin (или установите через инсталлятор)
  2. Добавьте новый контакт: имя, ID клиента и пароль
  3. Дважды кликните на контакт для подключения
  4. После успешной аутентификации откроется окно удаленного рабочего стола

Безопасность

  • Шифрование: Весь трафик шифруется с использованием AES-256-GCM
  • Аутентификация: Пароли хранятся в виде PBKDF2 хешей
  • Ключи: 32-байтные ключи, генерируемые через PBKDF2 с 100,000 итераций
  • Защита от перехвата: Используется TLS 1.3 для транспортного уровня

Протокол

Система использует собственный бинарный протокол поверх TCP/IP:

Структура пакета:
[4 байта - размер payload][2 байта - тип пакета][N байт - данные]

Типы пакетов:

  • Управление соединением (Handshake, Authentication, Disconnect)
  • Передача экрана (Screen Frame, Screen Update)
  • Управление вводом (Mouse, Keyboard)
  • Передача файлов (File Transfer)
  • Служебные (Heartbeat, Status)

Roadmap

Фаза 1 (Текущая) - v1.0.0

  • Базовая архитектура проекта
  • Протокол связи
  • Система шифрования (AES-256-GCM)
  • Захват экрана (Windows)
  • Инъекция ввода (Windows)
  • GUI администратора (QML)
  • Клиентская служба Windows
  • Установщики (Inno Setup)
  • Сжатие видео (JPEG progressive) - H.264/VP9 в следующей фазе
  • Сетевое взаимодействие (TCP с шифрованием AES) - TLS опционально
  • Функциональное тестирование

Фаза 2 - v2.0.0

  • NAT Traversal / Relay сервер
  • Передача файлов
  • Буфер обмена
  • Полная поддержка macOS
  • Полная поддержка Linux

Фаза 3 - v3.0.0

  • Аудио передача
  • Чат между администратором и пользователем
  • Запись сессий
  • Статистика использования
  • Многопользовательский режим

Contributing

Проект открыт для вклада сообщества! Пожалуйста, ознакомьтесь с CONTRIBUTING.md для получения информации о том, как внести свой вклад.

Лицензия

Проприетарное программное обеспечение. Все права защищены.

Подробности в файле LICENSE.

Контакты

  • GitHub Issues: Для багрепортов и запросов функций
  • Discussions: Для общих вопросов и обсуждений

Авторы

Разработано Andrew_Dumin.


⚠️ ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ: Данная система предназначена исключительно для легального администрирования с явного согласия владельцев компьютеров. Использование системы без согласия пользователей может нарушать законодательство вашей юрисдикции. Разработчики не несут ответственности за неправомерное использование программного обеспечения.

About

Mirage Desktop - Remove Desktop System

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors