
Monitor di sistema e API Windows standalone zero-driver in Rust
Monitor di sistema e API per Windows ad alte prestazioni e senza driver, scritto in Rust.
Moderno strace e Process Monitor in tempo reale per Windows. Realizzato in Rust nativo senza richiedere driver kernel, con un'interfaccia utente a terminale (TUI) in tempo reale e streaming non bufferizzato per la diagnostica headless.
I driver kernel di terze parti (.sys) comportano il rischio di crash di sistema (BSOD), ampliano la superficie d'attacco e richiedono esenzioni per la firma dei driver vietate negli ambienti aziendali. wstrace funziona al 100% in userland utilizzando API di debug Win32 non invasive e interfacce ETW native di Windows.
Gli account utente standard possono eseguire e tracciare qualsiasi target tramite wstrace run <binary>. I processi figli generati ereditano direttamente gli handle di debug (PROCESS_ALL_ACCESS) senza richieste UAC. La telemetria per moduli, thread, socket e I/O si basa interamente su API Win32 non privilegiate.
L'elevazione è un acceleratore, non un requisito:
run, attach (sessione utente), processi figli (-C), TUI interattiva e streaming.wstrace all) per monitorare servizi OS in background e daemon di sistema.Esegui in PowerShell per installare automaticamente l'ultima release in $HOME\.local\bin e aggiungerla al tuo PATH utente:
irm https://raw.githubusercontent.com/gilnett/wstrace/main/packaging/install.ps1 | iex
Installa tramite il bucket personale:
scoop bucket add gilnett https://github.com/gilnett/scoop-bucket
scoop install wstrace
Oppure installa direttamente tramite URL:
scoop install https://raw.githubusercontent.com/gilnett/wstrace/main/packaging/scoop/wstrace.json
Scarica i binari standalone precompilati da GitHub Releases.
Installa direttamente da GitHub:
cargo install --git https://github.com/gilnett/wstrace.git
Oppure compila localmente da un repository clonato:
cargo build --release
Il binario risultante si trova in target\release\wstrace.exe.
[!NOTE] I manifest di Winget e Scoop vengono sincronizzati automaticamente con le GitHub Releases pubblicate.
[!NOTE] L'invio ufficiale del pacchetto è attualmente in fase di revisione e verifica su microsoft/winget-pkgs. Una volta approvato e unito dai moderatori della community, sarà installabile direttamente tramite:
winget install gilnett.wstrace
scoop install .\packaging\scoop\wstrace.json
Conferma che wstrace sia accessibile nella shell corrente:
wstrace --version
Avvia un eseguibile di destinazione con telemetria Win32 e di sistema in tempo reale:
wstrace run <executable_path> [-- <arguments>...]
| Tasto | Azione | Descrizione |
|---|---|---|
Ctrl+C | Copia selezionato | Copia i dettagli dell'evento evidenziato negli appunti di Windows. |
Ctrl+A | Copia tutto | Copia tutti gli eventi attualmente filtrati negli appunti di Windows. |
Ctrl+E / Space | Pausa / Riprendi | Congela la visualizzazione degli eventi senza perdere la telemetria in arrivo. |
Ctrl+X | Svuota buffer | Svuota l'elenco degli eventi corrente dal buffer di visualizzazione. |
Tab | Ciclo categorie | Filtra gli eventi: ALL -> FILE -> REG -> NET -> PROC. |
f | Solo errori | Limita la visualizzazione alle operazioni fallite (ad es. accesso negato, non trovato). |
Up / Down | Navigazione | Seleziona un evento per un'ispezione approfondita. |
q / Esc | Esci | Termina la sessione di tracciamento in modo pulito. |
Monitora in tempo reale i processi attivi, i nuovi avvii, le terminazioni e i moduli caricati a livello di sistema:
wstrace all
Collegati a un processo esistente tramite PID o nome del binario senza riavviarlo:
# Attach by PID
wstrace attach -p <PID>
# Attach by process name
wstrace attach -n <process_name.exe>
Scrive gli eventi in tempo reale direttamente su stdout con codici colore ANSI:
wstrace -m stream [-d <seconds>] run <executable_path>
Manuale completo e opzioni avanzate: Per il filtraggio avanzato dei percorsi (
--include/--exclude), il tracciamento dei processi figli (-C), i report JSON (--export-json), l'esportazione negli appunti (--copy) e le opzioni di scripting, consultare il Manuale di riferimento CLI o eseguirewstrace --help.
packaging/install.ps1)ToolHelp32Snapshot, OpenProcess, VirtualQueryEx) ed Event Tracing for Windows (ETW).x86_64-pc-windows-msvc (Intel / AMD 64-bit)aarch64-pc-windows-msvc (Qualcomm Snapdragon X / Windows on ARM)wstrace è progettato per soddisfare i rigorosi requisiti istituzionali per la distribuzione in ambienti aziendali ad alta sicurezza (settore bancario, difesa, sanità e infrastrutture critiche):
wstrace è completamente offline e autonomo. Non mantiene alcun server remoto, non avvia alcuna telemetria o analisi e non effettua alcuna chiamata di rete in uscita. Qualsiasi dato sensibile osservato durante il tracciamento in tempo reale (token API, percorsi di file, credenziali, contenuto della memoria) rimane rigorosamente confinato nella RAM locale e non lascia mai la postazione di lavoro.
A differenza delle tradizionali utilità di tracciamento che installano driver kernel .sys di terze parti—introducendo rischi di crash del sistema (Blue Screen of Death / BSOD) e superfici di attacco backdoor a livello ring-0—wstrace opera senza alcun driver kernel. Si basa esclusivamente su interfacce non invasive di debug Win32 in userland e sui consumer nativi di Windows Kernel ETW.