как разбить файл 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.