
.etl 파일에 포함된 Windows 네트워크 패킷 캡처를 .pcapng 형식으로 변환하는 유틸리티입니다.
이 도구를 사용하면 Wireshark로 ndiscap 및 pktmon 패킷 캡처를 볼 수 있습니다. 다른 널리 사용되는 패킷 캡처 방식(WinPcap, Wireshark 구버전에 포함됨)의 성능 문제로 인해, 이러한 inbox 도구를 선호해야 합니다.
Windows에는 패킷 캡처가 가능한 여러 inbox 구성 요소가 있습니다.
pktmon start --capture
<재현>
pktmon stop
netsh trace start capture=yes report=disabled
<재현>
netsh trace stop
이 도구에서 생성된 파일은 etl 파일이며, Microsoft Message Analyzer와 같은 ETW 중심 도구로 열 수 있지만 많은 엔지니어가 선호하는 Wireshark로는 열 수 없습니다. Etl2pcapng.exe는 etl 파일을 pcapng 파일로 변환하여 Wireshark로 열거나 Python 및 Rust와 같이 pcapng 라이브러리를 사용할 수 있는 언어로 분석할 수 있습니다.
참고: pktmon에는 기본 제공 etl2pcap 변환 유틸리티("pktmon etl2pcap <filename>")가 있어 기본적인 pcapng 파일을 생성할 수도 있습니다. etl2pcapng는 기본 제공 유틸리티와 유사한 변환 기능을 제공하며 다음과 같은 추가 기능이 있습니다.
미리 빌드된 바이너리는 Releases 섹션에서 사용할 수 있습니다: https://github.com/microsoft/etl2pcapng/releases
다음과 같이 도구를 실행합니다.
etl2pcapng.exe in.etl out.pcapng
파일을 변환한 후, 도구는 Windows 인터페이스 인덱스와 pcapng 인터페이스 ID 간의 매핑을 보여주는 테이블을 출력합니다.
출력 pcapng 파일의 각 패킷에는 패킷이 기록될 때의 현재 프로세스 PID를 나타내는 주석이 있습니다. 경고: 이는 패킷을 보내거나 전달받은 실제 프로세스의 PID와 다른 경우가 많습니다. 패킷 캡처 공급자가 종종 DPC(임의의 프로세스에서 실행)에서 실행되기 때문입니다. 사용자는 PID 정보를 사용할 때 이 점을 염두에 두어야 합니다.
src 디렉토리의 명령 프롬프트에서 다음을 실행합니다. 최소 Cmake 3.15가 필요합니다.
mkdir build
cd build
cmake ..
cmake --build . --config Release
바이너리는 build/Release/etl2pcapng.exe에 위치합니다.
1.12.0 - pktmon에서 생성된 etl 파일 및 다른 공급자 이벤트를 systemd 저널 내보내기 블록으로 쓰기 지원 추가.
1.11.0 - 출력 파일 이름 생략 가능(예: "etl2pcapng.exe foo.etl"). 출력 파일 이름은 "foo.pcapng"가 됩니다.
1.10.0 - 10배 더 빠름.
1.9.0 - Microsoft-Windows-Ras-NdisWanPacketCapture (VPN/원격 액세스) 이벤트 디코딩 지원 추가 + 패킷 주석에 ThreadID (TID) 추가.
1.8.0 - VMSwitch 패킷에 대한 RSS 해시 값을 패킷 주석에 추가.
1.7.0 - VMSwitch 패킷 정보를 패킷 주석에 포함.
1.6.0 - ControlFlowGuard 활성화.
1.5.0 - 인터페이스 설명 블록에 iftype 및 ifindex 기록, C 런타임을 정적으로 링크하여 vcredist 설치 불필요.
1.4.1 - 손상된 패킷을 기록하는 버그 수정.
1.4.0 - 캡처된 조각이 잘린 경우 원래 조각 길이 자동 추론.
1.3.0 - 각 패킷에 프로세스 ID(PID)를 포함하는 주석 추가.
1.2.0 - 각 패킷의 방향 정보 기록(epb_flags).
1.1.0 - Win8 이전 버전의 추적에서 발견된 다중 이벤트 패킷 지원 추가.
이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여는 기여자 라이선스 계약(CLA)에 동의해야 합니다. CLA는 귀하가 기여를 사용할 권리가 있으며 실제로 사용 권한을 부여함을 선언합니다. 자세한 내용은 https://cla.opensource.microsoft.com 을 방문하십시오.
풀 리퀘스트를 제출하면 CLA 봇이 자동으로 CLA 제공이 필요한지 여부를 확인하고 PR을 적절히 꾸밉니다(예: 상태 확인, 주석). 봇이 제공하는 지침을 따르기만 하면 됩니다. CLA를 사용하는 모든 리포지토리에서 이 작업을 한 번만 수행하면 됩니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견이 있으면 [email protected]으로 문의하십시오.