Windows 이벤트 추적 이해하기_ETW
Categories:
- Windows 이벤트 추적 이해하기_ETW
ETW 이해하기
불필요한 정보를 일부 필터링했으며, 전체 문서는 다음에서 확인하세요: https://docs.microsoft.com/en-us/windows/win32/etw/event-tracing-portal
기본 개념 이해
https://learn.microsoft.com/en-us/windows/win32/etw/about-event-tracing

세션
네 가지 종류의 세션이 존재합니다.
| 세션 종류 | 사용 | 제한 | 특징 |
|---|---|---|---|
| Event Tracing Session(Standard ETW) | 1. EVENT_TRACE_PROPERTIES2. StartTrace, 세션 생성3. EnableTrace 1. EnableTrace for classic provider 2. EnableTraceEx for manifest-based provider4. ControlTrace 세션 중지 | - manifest-based provider는 최대 8개의 세션에만 이벤트를 제공할 수 있음- classic provider는 하나의 세션만 지원함.- provider抢夺 세션의 동작은 후발주자에게 유리함 | 표준 ETW. |
| SystemTraceProvider Session | 1. EVENT_TRACE_PROPERTIES->EnableFlags2. StartTrace3. ControlTrace 세션 중지 | - SystemTraceProvider는 커널 이벤트 provider로, 일련의 사전 정의된 커널 이벤트를 제공함.- **NT Kernel Logger session**는 시스템 사전 설정 세션으로, 여러 시스템 사전 정의 커널 이벤트를 기록함.- Win7/WinServer2008R2에서는 NT Kernel Logger session만이 SystemTraceProvider를 사용할 수 있음.- Win8/WinServer2012에서는 SystemTraceProvider가 8개의 logger session에 이벤트를 제공할 수 있으며,其中 두 개는 NT Kernel Logger와 Circular Kernel Context Logger로 고정됨.- Win10 20348 이후, 각 System provider는 개별적으로 제어할 수 있음. | 시스템 커널 사전 정의 이벤트 획득. |
| AutoLogger session | 1. 레지스트리 수정 2. EnableTraceEx3. ControlTrace 세션 중지 | - **Global Logger Session**는 특별한 독립 세션으로, 시스템 부팅 시 이벤트를 기록함.- 일반 AutoLogger는 provider를 수동으로 활성화해야 하며, GlobleLogger는 필요하지 않음.- AutoLogger는 NT Kernel Logger 이벤트를 지원하지 않으며, GlobalLogger만 지원함.- 부팅 시간에 영향을 미치므로 절제하여 사용 | 운영 체제 부팅 중 이벤트 기록 |
| Private Logger Session | - | - User-mode ETW- 프로세스 내부에서만 사용- 64 session 병렬 제한에 포함되지 않음 | 프로세스 전용 |
도구
- logman
- wevtutil
- xpath 쿼리 예시:
wevtutil qe Security /c:2 /q:"*[System[EventID=5157]]" /f:text
- xpath 쿼리 예시:
- tracelog
- viusal studio의
tracelog도구를 사용하면 실행 중에 동적으로 ETW Provider와 ETW Session을 추가 및 삭제할 수 있음
- viusal studio의
- mc
- etw-providers-docs