У меня есть несколько больших файлов pcap (сбор пакетов), собранных с помощью tcpdump.Я хотел бы отфильтровать пакеты, которые содержат определенную строку.Я хочу, чтобы мой вывод все еще был в формате pcap.Я нашел несколько способов отображения пакетов, соответствующих регулярному выражению, из файла pcap, но мне нужно отфильтровать такие файлы, а не отфильтровать отображение (например, stdout) пакетов.Выходными данными должны быть файлы pcap с удаленными сопоставленными пакетами.
Я подозреваю, что dpkt (модуль python) может помочь, но я бы предпочел сделать это, используя существующий (C / C ++) инструмент, если это возможно.Я приму код в качестве ответа (может быть, хороший пример с тестами на dpkt убедит меня просто пойти по этому пути ;-)).
Заранее спасибо!
Ответ:
Согласно ответу Нима, это можно сделать через Wireshark / tshark.Для справки других людей, вот пример командной строки, где я проверяю совпадение строк в пакетах udp (этот пример может быть построен для поиска по полям протокола или конкретного протокола):
tshark -r infile -R 'not udp matches "my_search_string"' -w outfile
Еще раз спасибо!