REFERENCIA / TÉCNICA

Documentación Técnica

Arquitectura, protocolos y mecanismos de comunicación subyacentes en el proyecto ControlCiber.

3 Protocolos (UDP/TCP)
/
4 Puertos Abiertos
§ 01

Arquitectura General y Flujo

Mapa de interacciones entre los subsistemas del Servidor y Cliente.

// DATA FLOW DIAGRAM
[ ServerCore ] --(1. UDP Broadcast 9000)--> [ CyberClient ] (Discovery)
      |                                           |
      <---(2. TCP Connect Port 8000)---------------
      |
[ ControlServer ] <===========( TCP Comandos )===========> [ CyberClient ]
      |
[ FileServer ] <==============( TCP Port 8001)===========> [ CyberClient ]
      |
[ StreamServer ] <============( UDP Port 8002)============ [ StreamClient ]
          

§ 02

Protocolos de Red y Puertos

Responsabilidades de cada canal de comunicación en el sistema.

Puerto / Protocolo Responsabilidad y Comportamiento
Port 9000 (UDP) Discovery y Emparejamiento.
  • El Servidor envía un paquete DISCOVER a la red (Broadcast).
  • El Cliente escucha este puerto permanentemente. Al recibir el paquete, lee la IP origen y contacta al servidor.
Port 8000 (TCP) Canal Principal de Comandos.
  • Conexión persistente manejada por ControlServer.cs.
  • Se utiliza MessageEncoder.cs para formatear datos (COMANDO|Payload).
Port 8001 (TCP) Transferencia de Archivos.
  • Canal efímero, se abre bajo demanda.
  • El Servidor pasa el FileID, el cliente se conecta, descarga el flujo binario e inmediatamente ejecuta el archivo resultante.
Port 8002 (UDP) Streaming de Pantalla (Desktop Capture).
  • Usa GDI+ (Graphics.CopyFromScreen). Los frames en JPEG se envían fragmentados en paquetes <64KB.
  • Incluye mecanismos try-catch contra errores Win32 provocados por Secure Desktop (UAC).

§ 03

Inyección de Inputs (Control Remoto)

Mecanismos a bajo nivel en Windows para simular el hardware remoto.

⚡
Foco de Interfaz: Todos los botones interactivos del Servidor tienen Focusable="False" para evitar atrapar eventos KeyDown, asegurando que se envíen a ViewerWindow.
R
Normalización de Coordenadas
El ratón en el servidor rastrea su X/Y relativos (0.0 a 1.0) respecto a la imagen que visualiza, enviando un porcentaje y no píxeles duros.
Server
I
P/Invoke user32.dll (SendInput)
La clase InputInjector.cs en el cliente toma los porcentajes, los multiplica por la resolución absoluta real (ej. 1920x1080) y utiliza mouse_event / keybd_event para disparar pulsaciones OS-Level.
Client Native

§ 04

Diseño de Interfaz de Usuario

Patrones arquitectónicos de UI en WPF.

Componente Técnica WPF Descripción Estética
Ventana Principal WindowStyle="None" Remueve los bordes nativos de Windows, permitiendo una Title Bar personalizada en XAML.
Paleta Visual Diccionarios de Recursos Dark Theme estricto con acentos en verde y rojo oscuro; fondos transparentes y bordes suaves (Glassmorphism ligero).
Iconografía FontFamily="Segoe Fluent Icons" Uso de vectores tipográficos embebidos en el sistema en lugar de assets PNG para escalabilidad 4K y cambios de color dinámicos.

§ 05

Compilación (Build System)

Estrategia de publicación Single File.

Herramienta / Argumentos Resultado de Compilación
build_release.bat Script de Construcción automatizado.
  • Limpia procesos en ejecución para evitar conflictos de MSBuild (UnauthorizedAccessException).
  • Utiliza: dotnet publish -c Release -r win-x64 --self-contained
  • Salida: ControlCiber.Client.exe y ControlCiber.Server.exe listos para distribución (sin instalar .NET Frameworks).