Назад | Перейти на главную страницу

Максимальный размер разделенного файла tcpdump

Я ссылаюсь на эту ветку: как разбить файл pcap на набор меньших

Я пробовал использовать команду tcpdump -r old_file -w new_files -C 4096 и tcpdump возвращает tcpdump: invalid file size 4096

До сих пор я тестировал до 2048 года (1000000 байт), и он успешно разделил файлы на 2 ГБ каждый для большого файла pcap. Есть ли способ разбить большой файл pcap (например, 20 ГБ) на файлы меньшего размера по 4 ГБ каждый?

Если вы не хотите изменить источник и перекомпилируйте, вы не получите tcpdump, чтобы сделать это изначально.

case 'C':
        Cflag = atoi(optarg) * 1000000;
        if (Cflag < 0)
            error("invalid file size %s", optarg);
        break;

Вам нужно будет найти и изменить тип CFlags. Однако это может привести к другим неожиданным проблемам.

Вы можете попробовать разделить его на блоки по 2 ГБ, а затем удалить 20 байт. заголовок файла из второго файла каждой пары (дд seek - ваш друг), затем используйте cat для объединения двух файлов вместе.

В его репозитории Github есть патч для tcpdump, см. Выпуск # 488. Применение патча и компиляция действительно просты, если вы будете следовать инструкциям, описанным в INSTALL.txt (см. Корневой каталог репозитория).

В качестве альтернативы вы также можете использовать библиотеку PcapPlusPlus. В его репозитории на github есть пример PcapSplitter который делает то же самое, что и tcpdump -C. Однако вам также необходимо скомпилировать его, прежде чем вы сможете его использовать. Но есть Makefile.