
Monitor de sistema y API de Windows sin controladores, autónomo, en Rust
Monitor de sistema y API de Windows de alto rendimiento y sin controladores, escrito en Rust.
Un strace moderno y Process Monitor en tiempo real para Windows. Construido en Rust nativo sin necesidad de controladores del kernel, con una interfaz de usuario de terminal (TUI) en tiempo real y transmisión sin búfer para diagnósticos sin interfaz gráfica.
powershell -ExecutionPolicy Bypass -File .\packaging\install.ps1
Instala wstrace.exe en $HOME\.local\bin y registra el directorio en la variable de entorno PATH del usuario.
winget install gilnett.wstrace
scoop install packaging/scoop/wstrace.json
cargo install --path .
Compila directamente usando el toolchain de Rust:
cargo build --release
El ejecutable independiente resultante se encuentra en target\release\wstrace.exe.
Confirma que wstrace es accesible en la shell actual:
wstrace --version
Inicia la aplicación objetivo con una tabla de eventos en tiempo real:
wstrace run <executable_path> [-- <arguments>...]
| Tecla | Acción | Descripción |
|---|---|---|
Ctrl+C | Copiar seleccionado | Copia los detalles del evento resaltado en el portapapeles de Windows. |
Ctrl+A | Copiar todo | Copia todos los eventos filtrados actuales en el portapapeles de Windows. |
Ctrl+E / Space | Pausar / Reanudar | Congela la vista de eventos sin descartar la telemetría entrante. |
Ctrl+X | Limpiar búfer | Vacía la lista de eventos actual del búfer de visualización. |
Tab | Ciclo de categorías | Filtra eventos: ALL -> FILE -> REG -> NET -> PROC. |
f | Solo fallos | Restringe la vista a operaciones fallidas (p. ej., acceso denegado, no encontrado). |
Up / Down | Navegación | Selecciona un evento para inspección detallada. |
q / Esc | Salir | Finaliza la sesión de trazado de forma limpia. |
Adjunta a un proceso existente por identificador de proceso (PID) o nombre del binario sin reiniciarlo:
# Attach by PID
wstrace attach -p <PID>
# Attach by process executable name
wstrace attach -n <process_name.exe>
-C / --children)Rastrea el proceso objetivo y monitoriza recursivamente todos los procesos hijos que genera:
wstrace -C run <executable_path> [-- <arguments>...]
--include y --exclude)Aísla las operaciones relevantes o suprime el ruido del sistema operativo:
# Include only operations matching a substring
wstrace --include "<substring>" run <executable_path>
# Exclude operations matching a substring
wstrace --exclude "<substring>" run <executable_path>
-m stream)Escribe eventos en vivo directamente en stdout con códigos de color ANSI para registro o pipelines de CI/CD:
wstrace -m stream [-d <seconds>] run <executable_path>
--export-json)Exporta todos los eventos capturados de la sesión a un archivo JSON formateado al finalizar:
wstrace --export-json <output_file.json> run <executable_path>
--copy / --to-clipboard)Copia automáticamente todos los eventos capturados de la sesión directamente al portapapeles de Windows al salir:
wstrace --copy run <executable_path>
packaging/install.ps1)ToolHelp32Snapshot, OpenProcess, VirtualQueryEx) y Event Tracing for Windows (ETW).x86_64-pc-windows-msvc (Intel / AMD 64 bits)aarch64-pc-windows-msvc (Qualcomm Snapdragon X / Windows on ARM)wstrace está diseñado para cumplir con estrictos requisitos institucionales para su despliegue en entornos empresariales de alta seguridad (banca, defensa, sanidad e infraestructuras críticas):
wstrace es 100% offline y autónomo. No mantiene servidores remotos, no inicia telemetría ni analíticas, y no realiza ninguna llamada de red saliente. Cualquier dato sensible observado durante el trazado en vivo (tokens de API, rutas de archivos, credenciales, contenido de memoria) permanece estrictamente confinado a la RAM local y nunca abandona la estación de trabajo.
A diferencia de las utilidades de trazado tradicionales que instalan controladores del kernel .sys de terceros —introduciendo riesgos de fallo del sistema (pantalla azul de la muerte / BSOD) y superficies de ataque de puerta trasera en ring-0—, wstrace funciona sin controladores del kernel. Se basa exclusivamente en la depuración no invasiva de Win32 en espacio de usuario y en las interfaces nativas de consumidor de ETW del kernel de Windows.
La telemetría de trazado está estrictamente limitada por la sesión de usuario de Windows y los límites del Control de Integridad Obligatorio (MIC). Las sesiones de usuario sin privilegios no pueden acceder ni inspeccionar procesos de mayor integridad sin una elevación explícita de administrador, cumpliendo estrictamente con el principio de mínimo privilegio.