
Standalone zero-driver Windows system and API monitor in Rust
High-performance zero-driver Windows system and API monitor in Rust.
Modern strace and real-time Process Monitor for Windows. Built in native Rust with zero kernel drivers required, featuring a real-time terminal user interface (TUI) and unbuffered streaming for headless diagnostics.
Third-party kernel drivers (.sys) risk system crashes (BSOD), expand the attack surface, and require driver-signing exemptions prohibited in enterprise environments. wstrace runs 100% in userland using non-invasive Win32 debugging APIs and native Windows ETW interfaces.
Standard user accounts can run and trace any target via wstrace run <binary>. Spawned child processes inherit debugging handles (PROCESS_ALL_ACCESS) directly without UAC prompts. Telemetry for modules, threads, sockets, and I/O relies entirely on unprivileged Win32 APIs.
Elevation is an accelerator, not a gate:
run, attach (user session), child processes (-C), interactive TUI, and streaming.wstrace all) to monitor background OS services and system daemons.Run in PowerShell to automatically install the latest release to $HOME\.local\bin and add it to your User PATH:
irm https://raw.githubusercontent.com/gilnett/wstrace/main/packaging/install.ps1 | iex
Install via the personal bucket:
scoop bucket add gilnett https://github.com/gilnett/scoop-bucket
scoop install wstrace
Or install directly via URL:
scoop install https://raw.githubusercontent.com/gilnett/wstrace/main/packaging/scoop/wstrace.json
Download precompiled standalone binaries from GitHub Releases.
Install directly from GitHub:
cargo install --git https://github.com/gilnett/wstrace.git
Or build locally from a cloned repository:
cargo build --release
The resulting binary is located at target\release\wstrace.exe.
[!NOTE] Winget and Scoop manifests are synchronized automatically with published GitHub Releases.
[!NOTE] The official package submission is currently undergoing review and verification on microsoft/winget-pkgs. Once approved and merged by community moderators, it will be installable directly via:
winget install gilnett.wstrace
scoop install .\packaging\scoop\wstrace.json
Confirm that wstrace is accessible in the current shell:
wstrace --version
Launch a target executable with real-time Win32 and system telemetry:
wstrace run <executable_path> [-- <arguments>...]
| Key | Action | Description |
|---|---|---|
Ctrl+C | Copy Selected | Copies the highlighted event details into the Windows clipboard. |
Ctrl+A | Copy All | Copies all currently filtered events into the Windows clipboard. |
Ctrl+E / Space | Pause / Resume | Freezes the event view without dropping incoming telemetry. |
Ctrl+X | Clear Buffer | Empties the current event list from the display buffer. |
Tab | Category Cycle | Filters events: ALL -> FILE -> REG -> NET -> PROC. |
f | Failures Only | Restricts view to failed operations (e.g. access denied, not found). |
Up / Down | Navigation | Selects an event for deep inspection. |
q / Esc | Exit | Terminates the tracing session cleanly. |
Monitor active processes, new spawns, exits, and loaded modules system-wide in real time:
wstrace all
Attach to an existing process by PID or binary name without restarting it:
# Attach by PID
wstrace attach -p <PID>
# Attach by process name
wstrace attach -n <process_name.exe>
Writes live events directly to stdout with ANSI color codes:
wstrace -m stream [-d <seconds>] run <executable_path>
Comprehensive Manual & Advanced Options: For advanced path filtering (
--include/--exclude), child tracking (-C), JSON reports (--export-json), clipboard exports (--copy), and scripting options, consult the CLI Reference Manual or runwstrace --help.
packaging/install.ps1)ToolHelp32Snapshot, OpenProcess, VirtualQueryEx) & 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 is engineered to meet strict institutional requirements for deployment in high-security enterprise environments (banking, defense, healthcare, and critical infrastructure):
wstrace is 100% offline and standalone. It maintains zero remote servers, initiates zero telemetry or analytics, and performs zero outbound network calls. Any sensitive data observed during live tracing (API tokens, file paths, credentials, memory contents) remains strictly confined to local RAM and never leaves the workstation.
Unlike traditional tracing utilities that install third-party .sys kernel drivers—introducing system crash risks (Blue Screen of Death / BSOD) and ring-0 backdoor attack surfaces—wstrace operates with zero kernel drivers. It relies exclusively on non-invasive userland Win32 debugging and native Windows Kernel ETW consumer interfaces.
Trace telemetry is strictly bounded by the Windows user session and Mandatory Integrity Control (MIC) boundaries. Unprivileged user sessions cannot access or inspect higher-integrity processes without explicit administrator elevation, adhering strictly to the principle of least privilege.