как разбить файл pcap на набор меньших


47

У меня есть огромный файл pcap (сгенерированный tcpdump). Когда я пытаюсь открыть его в wireshark, программа просто перестает отвечать на запросы. Есть ли способ разделить файл на несколько меньших, чтобы открыть их один за другим? Трафик, захваченный в файле, генерируется двумя программами на двух серверах, поэтому я не могу разделить файл с помощью фильтров tcpdump 'host' или 'port'. Я также попробовал команду linux 'split' :-), но безуспешно. Wireshark не распознает формат.


Насколько велика огромна? Это намного больше чем доступная RAM?
— pehrs

2
Немного поздно, но причина, по которой Wireshark не будет читать файлы, которые выводятся, splitсостоит в том, что split делит на точные границы байтов. Это очень вероятно, чтобы разделить пакет, который делает недействительным часть содержимого файла.
— Бурхан Али

Ответы:


72

Вы можете использовать сам tcpdump с опциями -C, -r и -w

tcpdump -r old_file -w new_files -C 10

Опция "-C" указывает размер файла для разбивки. Например: в приведенном выше случае размер новых файлов составит 10 миллионов байт каждый.


Ты удивительный человек, Дэн.
— Лоби

Есть ли способ сделать это без разрыва сессии? (Предполагая, что один сеанс меньше аргумента ограничения размера).
— spanishgum

Быстро: tcpdump -r old_file -w new_files -C 1000 разбивает на каждый 955 МБ записанного трафика
— gies0r

18

Используйте editcapутилиту, которая распространяется вместе с Wireshark.


5
editpcap -c 1000 input.pcap output.pcapбудет разделен input.pcapна захваты с максимум 1000 пакетов на захват. В результате будут получены несколько файлов захвата, отформатированных какoutput_{index}_{timestamp}.pcap
— blachniet

1
Спасибо, блачет за пример! Но это просто editcap, не так editpcapли?
— Линде

3

Я знаю, что этот ответ немного запоздал, но он может послужить и другим людям. Я нашел отличный инструмент для разделения файлов pcap: PcapSplitter . Она является частью библиотеки PcapPlusPlus, что означает ее кроссплатформенность (Win32, Linux и Mac OS), и она может разбивать файлы pcap на основе различных критериев, таких как размер файла (что вам нужно), но также и соединение, клиент / сервер IP, порт сервера (аналогично протоколу), количество пакетов и т. Д. Я нашел это очень полезным. Ссылка выше для исходного кода, но если вы не хотите / не знаете, как скомпилировать, я создал скомпилированные двоичные файлы для нескольких платформ, с которыми я использовал этот инструмент. Я очень рекомендую этот инструмент

РЕДАКТИРОВАТЬ: очевидно, была выпущена новая версия PcapPlusPlus, и она содержит двоичные файлы PcapSplitter для довольно многих платформ (Windows, Ubuntu 12.04 / 14.04, Mac OSX Mavericks / Yosemite / El Captian). Я думаю, что лучше использовать эти двоичные файлы, чем ссылку, которую я ранее предоставил. Вы можете найти это здесь


2

Лучший и самый быстрый способ - использовать SplitCap, который может разбивать большие файлы дампа пакетов, например, на основе сеансов. Таким образом, вы получите каждый сеанс TCP в отдельном файле PCAP. SplitCap также может разделять пакеты в файлы pcap на основе IP-адресов.

Вы можете узнать больше о SplitCap в блоге Netresec: http://www.netresec.com/?page=Blog&month=2011-05&post=Split-or-filter-your-PCAP-files-with-SplitCap

Загрузите SplitCap отсюда: http://www.netresec.com/?page=SplitCap

Удачи!


Есть ли версии для Linux?
— ychaouche

Это хорошая программа, но ей не хватает возможности работать с файлами pcapng.
— Гунтрам Блом поддерживает Монику

0
tcpdump -w trace.pcap -W 48 -G 300 -C 100 -i any port 41110
  • -G 300 он будет вращаться через 5 минут
  • -W 48 количество файлов
  • -C 100 размер файла 100 МБ
  • port Вы можете указать порт на основе приложения
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.