
Rust로 작성된 독립형 제로 드라이버 Windows 시스템 및 API 모니터
Rust로 구현된 고성능 제로 드라이버 Windows 시스템 및 API 모니터.
Windows를 위한 현대적인 strace 및 실시간 Process Monitor. 커널 드라이버가 전혀 필요 없는 네이티브 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(프로세스 식별자) 또는 바이너리 이름으로 기존 프로세스에 연결합니다:
# Attach by PID
wstrace attach -p <PID>
# Attach by process executable name
wstrace attach -n <process_name.exe>
-C / --children)대상 프로세스를 추적하고 해당 프로세스가 생성한 모든 자식 프로세스를 재귀적으로 모니터링합니다:
wstrace -C run <executable_path> [-- <arguments>...]
--include 및 --exclude)관련 작업을 분리하거나 운영 체제 노이즈를 억제합니다:
# 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)로깅 또는 CI/CD 파이프라인을 위해 ANSI 색상 코드와 함께 실시간 이벤트를 stdout에 직접 기록합니다:
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) 및 Windows용 이벤트 추적(ETW).x86_64-pc-windows-msvc (Intel / AMD 64비트)aarch64-pc-windows-msvc (Qualcomm Snapdragon X / Windows on ARM)wstrace는 높은 보안이 요구되는 엔터프라이즈 환경(금융, 국방, 의료, 핵심 인프라)에 배포하기 위한 엄격한 기관 요구 사항을 충족하도록 설계되었습니다:
wstrace는 100% 오프라인 및 독립 실행형입니다. 원격 서버를 전혀 유지하지 않고, 텔레메트리나 분석을 전혀 시작하지 않으며, 아웃바운드 네트워크 호출을 전혀 수행하지 않습니다. 실시간 추적 중 관찰되는 모든 민감한 데이터(API 토큰, 파일 경로, 자격 증명, 메모리 내용)는 로컬 RAM에 엄격히 국한되며 워크스테이션을 벗어나지 않습니다.
시스템 충돌 위험(블루 스크린 / BSOD)과 ring-0 백도어 공격 표면을 초래하는 타사 .sys 커널 드라이버를 설치하는 기존 추적 유틸리티와 달리, wstrace는 커널 드라이버 없이 동작합니다. 비침습적인 사용자 영역 Win32 디버깅과 네이티브 Windows 커널 ETW 소비자 인터페이스에만 의존합니다.
추적 텔레메트리는 Windows 사용자 세션 및 MIC(Mandatory Integrity Control) 경계에 엄격히 제한됩니다. 권한이 없는 사용자 세션은 명시적인 관리자 권한 상승 없이는 더 높은 무결성의 프로세스에 액세스하거나 검사할 수 없으며, 최소 권한 원칙을 엄격히 준수합니다.
wstrace는 Rust 오픈소스 생태계 위에 구축되었음을 자랑스럽게 생각하며, 다음과 같은 기반 라이브러리에 감사를 표합니다:
전체 라이선스 고지 및 조건은 THIRD_PARTY_LICENSES.md를 참조하십시오.
wstrace가 Windows 엔지니어링, 보안 감사 또는 성능 디버깅에 유용하다고 생각하신다면, GitHub Sponsors 또는 Ko-fi를 통해 개발을 지원하실 수 있습니다: