Недавно я написал распаковщик файла дампа PCAP на C, а затем пожелал, чтобы я просто использовал вместо этого библиотеки с открытым исходным кодом (когда я понял, что они существуют и их так легко использовать). Я должен сказать, что, поскольку это двоичный формат файла, его, вероятно, легче сделать в C, чем в Perl, но я, без сомнения, разозлятся всеми фанатами Perl.
Что я скажу, так это то, что использование существующего кода будет происходить быстрее, чем кодирование его самостоятельно, но если вы действительно этого хотите, формат файла свободно доступен в Интернете и действительно довольно прост.
Что касается поиска шаблона, он почти наверняка не будет работать. Это двоичный формат файла, и пакеты могут быть фрагментированы и / или дублированы, поэтому единственный надежный способ узнать, где начинается и заканчивается сообщение, - распаковать заголовки, проверить флаги пакетов, прочитать поле длины содержимого и т. Д. И т. Д. И т. Д. Поиск по шаблону может работать 90% времени, но в какой-то момент вы обнаружите журнал захвата пакетов, который означает, что вам нужно изменить свой код. А потом через некоторое время найдите другой пакет, который означает другое изменение, и так далее, и так далее.