Похоже, вас интересуют только необработанные байты, которые составляют каждый пакет. Предполагая, что так, вы можете попробовать что-то вроде:
tcpdump -r someFile.pcap -xx | grep -P "^\t0x"
Как видно из tcpdump
справочной страницы, это приведет tcpdump
к чтению файла захвата и «в дополнение к печати заголовков каждого пакета, напечатайте данные каждого пакета, включая заголовок уровня ссылки, в шестнадцатеричном виде». Трубопровод вывода grep
выводит на экран удаление итоговой строки. Возможно, есть способ дать указание tcpdump
вообще не печатать итоговую строку, но, если есть, я не смог ее найти. В любом случае, на данный момент вам просто нужно обработать шестнадцатеричный вывод.
Я думаю, вы можете добиться этого немного легче, используя tshark
вместо tcpdump
. Например:
tshark -r icmp.pcap -x
Выходные форматы tcpdump
и tshark
действительно отличаются в зависимости от того, как отображаются и группируются шестнадцатеричные значения, и присутствует ли представление шестнадцатеричных байтов в ASCII или нет после шестнадцатеричных значений, поэтому вам, вероятно, придется поэкспериментировать, чтобы увидеть, какой формат вам больше нравится или проще для вашей программы разобрать.