
Moniteur système et API Windows autonome sans pilote en Rust
Moniteur système et API Windows haute performance sans pilote, écrit en Rust.
Équivalent moderne de strace et Process Monitor en temps réel pour Windows. Développé en Rust natif sans aucun pilote noyau requis, avec une interface utilisateur en terminal (TUI) en temps réel et un streaming non tamponné pour les diagnostics sans interface graphique.
Les pilotes noyau tiers (.sys) risquent de provoquer des plantages système (BSOD), élargissent la surface d'attaque et nécessitent des exemptions de signature de pilotes interdites dans les environnements d'entreprise. wstrace s'exécute à 100 % en espace utilisateur en utilisant des API de débogage Win32 non invasives et les interfaces ETW natives de Windows.
Les comptes utilisateurs standard peuvent exécuter et tracer n'importe quelle cible via wstrace run <binary>. Les processus enfants lancés héritent directement des handles de débogage (PROCESS_ALL_ACCESS) sans invite UAC. La télémétrie pour les modules, threads, sockets et E/S repose entièrement sur des API Win32 non privilégiées.
L'élévation est un accélérateur, pas une condition d'accès :
run, attach (session utilisateur), processus enfants (-C), TUI interactive et streaming.wstrace all) pour surveiller les services d'arrière-plan du système d'exploitation et les démons système.Exécutez dans PowerShell pour installer automatiquement la dernière version dans $HOME\.local\bin et l'ajouter à votre PATH utilisateur :
irm https://raw.githubusercontent.com/gilnett/wstrace/main/packaging/install.ps1 | iex
Installez via le bucket personnel :
scoop bucket add gilnett https://github.com/gilnett/scoop-bucket
scoop install wstrace
Ou installez directement via l'URL :
scoop install https://raw.githubusercontent.com/gilnett/wstrace/main/packaging/scoop/wstrace.json
Téléchargez les binaires autonomes précompilés depuis GitHub Releases.
Installez directement depuis GitHub :
cargo install --git https://github.com/gilnett/wstrace.git
Ou compilez localement à partir d'un dépôt cloné :
cargo build --release
Le binaire résultant se trouve à l'emplacement target\release\wstrace.exe.
[!NOTE] Les manifestes Winget et Scoop sont synchronisés automatiquement avec les GitHub Releases publiées.
[!NOTE] La soumission officielle du paquet est actuellement en cours d'examen et de vérification sur microsoft/winget-pkgs. Une fois approuvée et fusionnée par les modérateurs de la communauté, elle sera installable directement via :
winget install gilnett.wstrace
scoop install .\packaging\scoop\wstrace.json
Confirmez que wstrace est accessible dans le shell actuel :
wstrace --version
Lancez un exécutable cible avec la télémétrie Win32 et système en temps réel :
wstrace run <executable_path> [-- <arguments>...]
| Touche | Action | Description |
|---|---|---|
Ctrl+C | Copier la sélection | Copie les détails de l'événement sélectionné dans le presse-papiers Windows. |
Ctrl+A | Tout copier | Copie tous les événements actuellement filtrés dans le presse-papiers Windows. |
Ctrl+E / Space | Pause / Reprise | Fige la vue des événements sans interrompre la télémétrie entrante. |
Ctrl+X | Vider le tampon | Vide la liste d'événements actuelle du tampon d'affichage. |
Tab | Cycle de catégorie | Filtre les événements : ALL -> FILE -> REG -> NET -> PROC. |
f | Échecs uniquement | Restreint la vue aux opérations échouées (par ex. accès refusé, introuvable). |
Up / Down | Navigation | Sélectionne un événement pour une inspection approfondie. |
q / Esc | Quitter | Termine proprement la session de traçage. |
Surveillez en temps réel les processus actifs, les nouveaux lancements, les sorties et les modules chargés à l'échelle du système :
wstrace all
S'attacher à un processus existant par PID ou par nom de binaire sans le redémarrer :
# Attach by PID
wstrace attach -p <PID>
# Attach by process name
wstrace attach -n <process_name.exe>
Écrit les événements en direct directement sur stdout avec des codes couleur ANSI :
wstrace -m stream [-d <seconds>] run <executable_path>
Manuel complet et options avancées : Pour le filtrage avancé des chemins (
--include/--exclude), le suivi des processus enfants (-C), les rapports JSON (--export-json), les exports vers le presse-papiers (--copy) et les options de script, consultez le Manuel de référence CLI ou exécutezwstrace --help.
packaging/install.ps1)ToolHelp32Snapshot, OpenProcess, VirtualQueryEx) et 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 conçu pour répondre aux exigences institutionnelles strictes de déploiement dans des environnements d'entreprise à haute sécurité (banque, défense, santé et infrastructures critiques) :
wstrace est 100 % hors ligne et autonome. Il ne maintient aucun serveur distant, n'initie aucune télémétrie ni analyse, et n'effectue aucun appel réseau sortant. Toute donnée sensible observée pendant le traçage en direct (jetons d'API, chemins de fichiers, identifiants, contenus mémoire) reste strictement confinée à la RAM locale et ne quitte jamais le poste de travail.