
Utilitário que converte um arquivo .etl contendo uma captura de pacotes de rede do Windows para o formato .pcapng.
Esta ferramenta permite visualizar capturas de pacotes ndiscap e pktmon com o Wireshark. Devido a problemas de desempenho com outro método popular de captura de pacotes (WinPcap, incluído em versões antigas do Wireshark), essas ferramentas internas devem ser preferidas.
O Windows possui vários componentes internos capazes de capturar pacotes:
pktmon start --capture
<repro>
pktmon stop
netsh trace start capture=yes report=disabled
<repro>
netsh trace stop
Os arquivos gerados por essas ferramentas são arquivos etl, que podem ser abertos por ferramentas centradas em ETW, como o Microsoft Message Analyzer, mas não podem ser abertos pelo Wireshark, que é a ferramenta preferida por muitos engenheiros. O Etl2pcapng.exe pode converter o arquivo etl em um arquivo pcapng para abrir com o Wireshark, ou para análise com linguagens que possuem bibliotecas pcapng disponíveis, como Python e Rust.
Observação: o pktmon possui um utilitário de conversão etl2pcap embutido ("pktmon etl2pcap <filename>") que também é capaz de produzir arquivos pcapng básicos. O etl2pcapng fornece uma capacidade de conversão semelhante ao utilitário embutido, com as seguintes adições:
Binários pré-compilados estão disponíveis na seção Releases: https://github.com/microsoft/etl2pcapng/releases
Execute a ferramenta com:
etl2pcapng.exe in.etl out.pcapng
Após converter o arquivo, a ferramenta imprime uma tabela que mostra os mapeamentos entre índices de interface do Windows e IDs de interface pcapng.
O arquivo pcapng de saída terá um comentário em cada pacote indicando o PID do processo atual quando o pacote foi registrado. AVISO: isso frequentemente não é o mesmo que o PID real do processo que causou o envio do pacote ou para o qual o pacote foi entregue, pois o provedor de captura de pacotes geralmente é executado em um DPC (que é executado em um processo arbitrário). O usuário deve ter isso em mente ao usar as informações de PID.
Em um prompt de comando no diretório src, execute o seguinte. É necessário o Cmake 3.15 no mínimo.
mkdir build
cd build
cmake ..
cmake --build . --config Release
O binário estará em build/Release/etl2pcapng.exe
1.12.0 - Adicionar suporte para arquivos etl gerados por pktmon e gravação de outros eventos do provedor como blocos de exportação de diário systemd.
1.11.0 - Permite omitir o nome do arquivo de saída (por exemplo, "etl2pcapng.exe foo.etl". O nome do arquivo de saída passa a ser "foo.pcapng").
1.10.0 - 10x mais rápido.
1.9.0 - Adicionar suporte à decodificação de eventos Microsoft-Windows-Ras-NdisWanPacketCapture (VPN/Acesso Remoto) + adicionar ThreadID (TID) aos comentários dos pacotes
1.8.0 - Adicionar valor de Hash RSS aos comentários dos pacotes para pacotes VMSwitch.
1.7.0 - Incluir informações do pacote VMSwitch nos comentários dos pacotes.
1.6.0 - Habilitar ControlFlowGuard.
1.5.0 - Escrever iftype e ifindex nos blocos de descrição da interface e vincular estaticamente o runtime C para que o vcredist não precise ser instalado.
1.4.1 - Corrigir um bug que levava à gravação de pacotes corrompidos.
1.4.0 - Inferir automaticamente o comprimento original do fragmento se os fragmentos capturados foram truncados.
1.3.0 - Adicionar um comentário a cada pacote contendo o ID do processo (PID).
1.2.0 - Escrever informações de direção de cada pacote (epb_flags).
1.1.0 - Adicionado suporte para pacotes com múltiplos eventos encontrados em rastreamentos do Win8 e anteriores.
Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um Contrato de Licença de Contribuidor (CLA) declarando que você tem o direito e, de fato, nos concede os direitos de usar sua contribuição. Para obter detalhes, visite https://cla.opensource.microsoft.com.
Ao enviar um pull request, um bot do CLA determinará automaticamente se você precisa fornecer um CLA e decorará o PR adequadamente (por exemplo, verificação de status, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.
Este projeto adotou o Código de Conduta de Código Aberto da Microsoft. Para obter mais informações, consulte as Perguntas frequentes sobre o Código de Conduta ou entre em contato pelo [email protected] para dúvidas ou comentários adicionais.