Utilidad que convierte un archivo .etl que contiene una captura de paquetes de red de Windows al formato .pcapng.
Esta herramienta le permite ver capturas de paquetes ndiscap y pktmon con Wireshark. Debido a problemas de rendimiento con el otro método popular de captura de paquetes (WinPcap, que se incluía con versiones anteriores de Wireshark), se deberían preferir estas herramientas integradas.
Windows tiene varios componentes integrados capaces de capturar paquetes:
pktmon start --capture
<repro>
pktmon stop
netsh trace start capture=yes report=disabled
<repro>
netsh trace stop
Los archivos generados por estas herramientas son archivos etl, que pueden abrirse con herramientas centradas en ETW como Microsoft Message Analyzer, pero no pueden abrirse con Wireshark, que es la herramienta preferida por muchos ingenieros. Etl2pcapng.exe puede convertir el archivo etl a un archivo pcapng para abrirlo con Wireshark, o para analizarlo con lenguajes que tengan bibliotecas pcapng disponibles como Python y Rust.
Nota: pktmon tiene una utilidad de conversión etl2pcap integrada ("pktmon etl2pcap <filename>") que también es capaz de producir archivos pcapng básicos. etl2pcapng proporciona una capacidad de conversión similar a la utilidad integrada con las siguientes adiciones:
Los binarios precompilados están disponibles en la sección de Lanzamientos: https://github.com/microsoft/etl2pcapng/releases
Ejecute la herramienta con:
etl2pcapng.exe in.etl out.pcapng
Después de convertir el archivo, la herramienta imprime una tabla que muestra las asignaciones entre los índices de interfaz de Windows y los IDs de interfaz pcapng.
El archivo pcapng de salida tendrá un comentario en cada paquete indicando el PID del proceso actual cuando se registró el paquete. ADVERTENCIA: esto no es frecuentemente el mismo que el PID real del proceso que causó que el paquete se enviara o al que se entregó el paquete, ya que el proveedor de captura de paquetes a menudo se ejecuta en un DPC (que se ejecuta en un proceso arbitrario). El usuario debe tener esto en cuenta al usar la información del PID.
En un símbolo del sistema en el directorio src ejecute lo siguiente. Se requiere Cmake 3.15 como mínimo.
mkdir build
cd build
cmake ..
cmake --build . --config Release
El binario estará en build/Release/etl2pcapng.exe
1.12.0 - Añadir soporte para archivos etl generados por pktmon y escritura de otros eventos de proveedor como bloques de exportación de diario systemd.
1.11.0 - Permite omitir el nombre del archivo de salida (ej. "etl2pcapng.exe foo.etl". El nombre del archivo de salida se convierte en "foo.pcapng").
1.10.0 - 10 veces más rápido.
1.9.0 - Añadir soporte para decodificación de eventos de Microsoft-Windows-Ras-NdisWanPacketCapture (VPN/AccesoRemoto) + añadir ThreadID (TID) a los comentarios de paquetes.
1.8.0 - Añadir valor de Hash RSS a los comentarios de paquetes para paquetes VMSwitch.
1.7.0 - Incluir información de paquetes VMSwitch en los comentarios de paquetes.
1.6.0 - Habilitar ControlFlowGuard.
1.5.0 - Escribir iftype e ifindex en bloques de descripción de interfaz y enlazar estáticamente la biblioteca de C runtime para que no sea necesario instalar vcredist.
1.4.1 - Corregir un error que provocaba la escritura de paquetes corruptos.
1.4.0 - Inferir automáticamente la longitud del fragmento original si los fragmentos capturados fueron truncados.
1.3.0 - Añadir un comentario a cada paquete que contenga el ID del proceso (PID).
1.2.0 - Escribir información de dirección de cada paquete (epb_flags).
1.1.0 - Añadido soporte para paquetes de múltiples eventos encontrados en trazas de Win8 y anteriores.
Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Acuerdo de Licencia de Colaborador (CLA) que declare que tiene el derecho y realmente nos otorga los derechos para usar su contribución. Para más detalles, visite https://cla.opensource.microsoft.com.
Cuando envíe una solicitud de extracción (pull request), un bot de CLA determinará automáticamente si necesita proporcionar un CLA y decorará el PR adecuadamente (por ejemplo, verificación de estado, comentario). Simplemente siga las instrucciones proporcionadas por el bot. Solo necesitará hacer esto una vez en todos los repositorios que usen nuestro CLA.
Este proyecto ha adoptado el Código de Conducta de Código Abierto de Microsoft. Para obtener más información, consulte las Preguntas frecuentes sobre el Código de Conducta o comuníquese con [email protected] si tiene preguntas o comentarios adicionales.