
Rust로 작성된 독립형 제로 드라이버 Windows 시스템 및 API 모니터
Rust로 구현된 고성능 제로 드라이버 Windows 시스템 및 API 모니터.
Windows용 최신 strace 및 실시간 Process Monitor. 커널 드라이버가 전혀 필요 없는 네이티브 Rust로 구축되었으며, 실시간 터미널 사용자 인터페이스(TUI)와 헤드리스 진단을 위한 무버퍼 스트리밍을 제공합니다.
타사 커널 드라이버(.sys)는 시스템 충돌(BSOD)을 유발할 위험이 있고, 공격 표면을 넓히며, 엔터프라이즈 환경에서 금지되는 드라이버 서명 예외가 필요합니다. wstrace는 비침투적인 Win32 디버깅 API와 네이티브 Windows ETW 인터페이스를 사용하여 100% 사용자 영역에서 실행됩니다.
표준 사용자 계정은 wstrace run <binary>를 통해 모든 대상 프로그램을 실행하고 추적할 수 있습니다. 생성된 자식 프로세스는 UAC 프롬프트 없이 디버깅 핸들(PROCESS_ALL_ACCESS)을 직접 상속받습니다. 모듈, 스레드, 소켓, I/O에 대한 텔레메트리는 전적으로 비권한 Win32 API에 의존합니다.
권한 상승은 관문이 아닌 가속기입니다:
run, attach(사용자 세션), 자식 프로세스(-C), 대화형 TUI, 스트리밍에 대한 완전한 추적이 가능합니다.wstrace all)를 잠금 해제하여 백그라운드 OS 서비스와 시스템 데몬을 모니터링할 수 있습니다.PowerShell에서 실행하면 최신 릴리스를 $HOME\.local\bin에 자동으로 설치하고 사용자 PATH에 추가합니다:
irm https://raw.githubusercontent.com/gilnett/wstrace/main/packaging/install.ps1 | iex
개인 버킷을 통해 설치:
scoop bucket add gilnett https://github.com/gilnett/scoop-bucket
scoop install wstrace
URL을 통해 직접 설치할 수도 있습니다:
scoop install https://raw.githubusercontent.com/gilnett/wstrace/main/packaging/scoop/wstrace.json
GitHub Releases에서 미리 컴파일된 독립 실행형 바이너리를 다운로드하세요.
GitHub에서 직접 설치:
cargo install --git https://github.com/gilnett/wstrace.git
클론한 저장소에서 로컬로 빌드하기:
cargo build --release
생성된 바이너리는 target\release\wstrace.exe에 위치합니다.
[!NOTE] Winget 및 Scoop 매니페스트는 게시된 GitHub Releases와 자동으로 동기화됩니다.
[!NOTE] 공식 패키지 제출은 현재 microsoft/winget-pkgs에서 검토 및 검증 중입니다. 커뮤니티 관리자가 승인하고 병합하면 다음을 통해 직접 설치할 수 있습니다:
winget install gilnett.wstrace
scoop install .\packaging\scoop\wstrace.json
현재 셸에서 wstrace에 접근할 수 있는지 확인합니다:
wstrace --version
실시간 Win32 및 시스템 텔레메트리와 함께 대상 실행 파일을 실행합니다:
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 | 종료 | 추적 세션을 정상적으로 종료합니다. |
활성 프로세스, 새로 생성된 프로세스, 종료 및 로드된 모듈을 시스템 전체에서 실시간으로 모니터링합니다:
wstrace all
재시작하지 않고 PID 또는 바이너리 이름으로 기존 프로세스에 연결합니다:
# Attach by PID
wstrace attach -p <PID>
# Attach by process name
wstrace attach -n <process_name.exe>
ANSI 색상 코드와 함께 라이브 이벤트를 stdout에 직접 기록합니다:
wstrace -m stream [-d <seconds>] run <executable_path>
종합 매뉴얼 및 고급 옵션: 고급 경로 필터링(
--include/--exclude), 자식 프로세스 추적(-C), JSON 보고서(--export-json), 클립보드 내보내기(--copy), 스크립팅 옵션에 대해서는 CLI 참조 매뉴얼 을 참조하거나wstrace --help를 실행하십시오.
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를 통해 개발을 후원하실 수 있습니다: