
Автономный системный и API-монитор для Windows без драйверов на Rust
Высокопроизводительный монитор системных вызовов и API Windows без драйверов на Rust.
Современный strace и монитор процессов в реальном времени для Windows. Написан на нативном Rust и не требует драйверов ядра; включает терминальный интерфейс пользователя (TUI) в реальном времени и небуферизованную потоковую передачу для диагностики без графического интерфейса.
powershell -ExecutionPolicy Bypass -File .\packaging\install.ps1
Устанавливает wstrace.exe в $HOME\.local\bin и регистрирует этот каталог в переменной среды PATH пользователя.
winget install gilnett.wstrace
scoop install packaging/scoop/wstrace.json
cargo install --path .
Скомпилируйте напрямую с помощью инструментальной цепочки Rust:
cargo build --release
Полученный автономный исполняемый файл находится по пути target\release\wstrace.exe.
Убедитесь, что wstrace доступен в текущей оболочке:
wstrace --version
Запускает целевое приложение с таблицей событий в реальном времени:
wstrace run <executable_path> [-- <arguments>...]
| Клавиша | Действие | Описание |
|---|---|---|
Ctrl+C | Копировать выбранное | Копирует сведения о выделенном событии в буфер обмена Windows. |
Ctrl+A | Копировать всё | Копирует все текущие отфильтрованные события в буфер обмена Windows. |
Ctrl+E / Space | Пауза / Продолжить | Замораживает представление событий без потери поступающей телеметрии. |
Ctrl+X | Очистить буфер | Очищает текущий список событий из буфера отображения. |
Tab | Переключение категорий | Фильтрует события: ALL -> FILE -> REG -> NET -> PROC. |
f | Только ошибки | Ограничивает представление неудачными операциями (например, отказ в доступе, не найдено). |
Up / Down | Навигация | Выбирает событие для детального изучения. |
q / Esc | Выход | Корректно завершает сеанс трассировки. |
Подключитесь к существующему процессу по идентификатору процесса (PID) или имени бинарного файла без его перезапуска:
# Подключение по PID
wstrace attach -p <PID>
# Подключение по имени исполняемого файла процесса
wstrace attach -n <process_name.exe>
-C / --children)Отслеживает целевой процесс и рекурсивно мониторит все порождённые им дочерние процессы:
wstrace -C run <executable_path> [-- <arguments>...]
--include и --exclude)Изолируйте релевантные операции или подавите шум операционной системы:
# Включать только операции, соответствующие подстроке
wstrace --include "<substring>" run <executable_path>
# Исключать операции, соответствующие подстроке
wstrace --exclude "<substring>" run <executable_path>
-m stream)Записывает события в реальном времени напрямую в stdout с ANSI-кодами цвета для логирования или конвейеров CI/CD:
wstrace -m stream [-d <seconds>] run <executable_path>
--export-json)Экспортирует все захваченные события сеанса в форматированный JSON-файл по завершении:
wstrace --export-json <output_file.json> run <executable_path>
--copy / --to-clipboard)Автоматически копирует все захваченные события сеанса напрямую в буфер обмена Windows при выходе:
wstrace --copy run <executable_path>
packaging/install.ps1)ToolHelp32Snapshot, OpenProcess, VirtualQueryEx) и Event Tracing for Windows (ETW).x86_64-pc-windows-msvc (Intel / AMD 64-бит)aarch64-pc-windows-msvc (Qualcomm Snapdragon X / Windows on ARM)wstrace разработан для соответствия строгим институциональным требованиям к развёртыванию в высокозащищённых корпоративных средах (банковское дело, оборона, здравоохранение и критическая инфраструктура):
wstrace на 100% офлайн и автономен. Он не использует удалённые серверы, не инициирует телеметрию или аналитику и не выполняет исходящих сетевых вызовов. Любые конфиденциальные данные, наблюдаемые во время живой трассировки (API-токены, пути к файлам, учётные данные, содержимое памяти), строго остаются в локальной оперативной памяти и никогда не покидают рабочую станцию.
В отличие от традиционных утилит трассировки, которые устанавливают сторонние драйверы ядра .sys, что создаёт риски сбоя системы (синий экран смерти / BSOD) и поверхности атак через бэкдоры в ring-0, wstrace работает без драйверов ядра. Он полагается исключительно на неинвазивную отладку в пользовательском режиме Win32 и встроенные интерфейсы потребителя Windows Kernel ETW.
Телеметрия трассировки строго ограничена сеансом пользователя Windows и границами Mandatory Integrity Control (MIC). Непривилегированные пользовательские сеансы не могут получить доступ к процессам с более высоким уровнем целостности или инспектировать их без явного повышения прав администратора, что строго соответствует принципу наименьших привилегий.