Parece que você está interessado apenas nos bytes brutos que compõem cada pacote. Assumindo isso, você pode tentar algo como:
tcpdump -r someFile.pcap -xx | grep -P "^\t0x"
Como você pode ver na página tcpdump
man , isso fará com que tcpdump
leia o arquivo de captura e "além de imprimir os cabeçalhos de cada pacote, imprimir os dados de cada pacote, incluindo o cabeçalho do nível de link, em hexadecimal." Piping a saída para grep
cuida de remover a linha de resumo. Talvez haja uma maneira de instruir tcpdump
não a imprimir a linha de resumo, mas, se houver, não consegui encontrá-la. Em qualquer caso, neste ponto, você só precisa processar a saída hexadecimal.
Você também pode conseguir isso com mais facilidade, usando tshark
de tcpdump
. Por exemplo:
tshark -r icmp.pcap -x
Os formatos de saída de tcpdump
e tshark
diferem em como os valores hexadecimais são exibidos e agrupados, e se a representação ASCII dos bytes hexadecimais está presente ou não seguindo os valores hexadecimais, então você provavelmente terá experimentar para ver qual formato você gosta melhor ou é mais fácil para o seu programa analisar.