Skip to content
Esta página fue generada y traducida con asistencia de IA. Si encuentra alguna imprecisión, no dude en ayudar a mejorarla. Editar en GitHub

Aplicación de Escritorio (GUI)

PRX-SD incluye una aplicación de escritorio multiplataforma construida con Tauri 2 (backend en Rust) y Vue 3 (frontend en TypeScript). La interfaz gráfica proporciona una interfaz visual para todas las funciones principales del motor sin necesidad de usar la línea de comandos.

Arquitectura

+----------------------------------------------+
|              PRX-SD Desktop App               |
|                                               |
|   Vue 3 Frontend          Tauri 2 Backend     |
|   (Vite + TypeScript)     (Rust + IPC)        |
|                                               |
|   +------------------+   +-----------------+  |
|   | Dashboard        |<->| scan_path()     |  |
|   | File Scanner     |   | scan_directory()|  |
|   | Quarantine Mgmt  |   | get_config()    |  |
|   | Config Editor    |   | save_config()   |  |
|   | Signature Update |   | update_sigs()   |  |
|   | Alert History    |   | get_alerts()    |  |
|   | Adblock Panel    |   | adblock_*()     |  |
|   | Monitor Control  |   | start/stop()    |  |
|   +------------------+   +-----------------+  |
|                                               |
|   System Tray Icon (32x32)                    |
+----------------------------------------------+

El backend de Tauri expone 18 comandos IPC que el frontend de Vue llama para interactuar con el motor de escaneo, la bóveda de cuarentena, la base de datos de firmas y el motor de filtrado adblock. Todo el trabajo pesado (escaneo, coincidencia YARA, búsqueda de hashes) se ejecuta en Rust; el frontend solo se encarga de la representación visual.

Funcionalidades

Panel en Tiempo Real

El panel muestra el estado de seguridad de un vistazo:

  • Total de escaneos realizados
  • Recuento de amenazas encontradas
  • Recuento de archivos en cuarentena
  • Tiempo del último escaneo
  • Estado del monitoreo (activo/inactivo)
  • Gráfico del historial de escaneos (últimos 7 días)
  • Lista de amenazas recientes con rutas, nombres de amenazas y niveles de severidad

Escaneo por Arrastrar y Soltar

Arrastra archivos o carpetas sobre la ventana de la aplicación para iniciar un escaneo de inmediato. Los resultados aparecen en una tabla ordenable con columnas para ruta, nivel de amenaza, tipo de detección, nombre de la amenaza y tiempo de escaneo.

Gestión de Cuarentena

Visualiza, restaura y elimina archivos en cuarentena a través de una interfaz visual:

  • Tabla ordenable con ID, ruta original, nombre de la amenaza, fecha y tamaño de archivo
  • Restauración con un clic a la ubicación original
  • Eliminación permanente con un clic
  • Estadísticas de la bóveda (total de archivos, tamaño total, entrada más antigua/reciente)

Editor de Configuración

Edita todos los ajustes del motor a través de una interfaz basada en formularios. Los cambios se escriben en ~/.prx-sd/config.json y surten efecto en el próximo escaneo.

Actualizaciones de Firmas

Activa actualizaciones de la base de datos de firmas desde la interfaz gráfica. El backend descarga el último manifiesto, verifica la integridad SHA-256 e instala la actualización. El motor se reinicializa automáticamente con las nuevas firmas.

Panel de Adblock

Gestiona el bloqueo de anuncios y dominios maliciosos:

  • Habilitar/deshabilitar la protección adblock
  • Sincronizar listas de filtros
  • Verificar dominios individuales
  • Ver el registro de bloqueos (últimas 50 entradas)
  • Ver la configuración y estadísticas de las listas

Bandeja del Sistema

PRX-SD reside en la bandeja del sistema con un icono persistente, proporcionando acceso rápido a:

  • Abrir la ventana principal
  • Iniciar/detener el monitoreo en tiempo real
  • Verificar el estado del demonio
  • Activar un escaneo rápido
  • Salir de la aplicación

TIP

El icono de la bandeja del sistema está configurado a 32x32 píxeles. En pantallas de alta densidad de píxeles, Tauri usa automáticamente la variante [email protected].

Compilar desde el Código Fuente

Requisitos Previos

  • Rust 1.85.0 o superior
  • Node.js 18+ con npm
  • Dependencias del sistema (Linux):
bash
# Debian/Ubuntu
sudo apt install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf

# Fedora
sudo dnf install -y webkit2gtk4.1-devel libappindicator-gtk3-devel librsvg2-devel

Modo de Desarrollo

Ejecuta el servidor de desarrollo del frontend y el backend de Tauri juntos con recarga en caliente:

bash
cd gui
npm install
npm run tauri dev

Esto inicia:

  • Servidor de desarrollo Vite en http://localhost:1420
  • Backend de Tauri que carga la URL de desarrollo

Compilación para Producción

Compila el paquete de la aplicación distribuible:

bash
cd gui
npm install
npm run tauri build

La salida de compilación varía según la plataforma:

PlataformaSalida
Linux.deb, .AppImage, .rpm en src-tauri/target/release/bundle/
macOS.dmg, .app en src-tauri/target/release/bundle/
Windows.msi, .exe en src-tauri\target\release\bundle\

Configuración de la Aplicación

La aplicación Tauri se configura mediante gui/src-tauri/tauri.conf.json:

json
{
  "productName": "PRX-SD",
  "version": "0.1.0",
  "identifier": "com.prxsd.app",
  "app": {
    "windows": [
      {
        "title": "PRX-SD Antivirus",
        "width": 1200,
        "height": 800,
        "minWidth": 900,
        "minHeight": 600,
        "center": true,
        "resizable": true
      }
    ],
    "trayIcon": {
      "id": "main-tray",
      "iconPath": "icons/32x32.png",
      "tooltip": "PRX-SD Antivirus"
    }
  }
}

Comandos IPC

El backend expone estos comandos Tauri al frontend:

ComandoDescripción
scan_pathEscanear un archivo o directorio y devolver resultados
scan_directoryEscanear un directorio recursivamente
start_monitorValidar e iniciar el monitoreo en tiempo real
stop_monitorDetener el demonio de monitoreo
get_quarantine_listListar todas las entradas en cuarentena
restore_quarantineRestaurar un archivo en cuarentena por ID
delete_quarantineEliminar una entrada de cuarentena por ID
get_configLeer la configuración de escaneo actual
save_configEscribir la configuración de escaneo en disco
get_engine_infoObtener versión del motor, recuento de firmas y reglas YARA
update_signaturesDescargar e instalar las últimas firmas
get_alert_historyLeer el historial de alertas de los registros de auditoría
get_dashboard_statsAgregar estadísticas del panel
get_adblock_statsObtener estado de adblock y recuentos de reglas
adblock_enableHabilitar el bloqueo de anuncios mediante el archivo hosts
adblock_disableDeshabilitar el bloqueo de anuncios mediante el archivo hosts
adblock_syncVolver a descargar las listas de filtros
adblock_checkVerificar si un dominio está bloqueado
get_adblock_logLeer las entradas recientes del registro de bloqueos

Directorio de Datos

La interfaz gráfica usa el mismo directorio de datos ~/.prx-sd/ que la CLI. Los cambios de configuración realizados en la interfaz gráfica son visibles para los comandos sd y viceversa.

WARNING

La interfaz gráfica y la CLI comparten el mismo estado del motor de escaneo. Si el demonio se está ejecutando mediante sd daemon, el botón "Iniciar Monitor" de la interfaz gráfica valida la preparación, pero el monitoreo real es manejado por el proceso demonio. Evita ejecutar el escáner de la interfaz gráfica y el escáner del demonio simultáneamente sobre los mismos archivos.

Pila Tecnológica

ComponenteTecnología
BackendTauri 2, Rust
FrontendVue 3, TypeScript, Vite 6
IPCProtocolo de comandos Tauri
BandejaPlugin de bandeja Tauri
EmpaquetadorEmpaquetador Tauri (deb/AppImage/dmg/msi)
Vinculaciones API@tauri-apps/api v2

Próximos Pasos

Released under the Apache-2.0 License.