Если вы хотите распознать IP, UDP или TCP, перенаправьте ваши пакеты от ваших высокоуровневых сервисов через обратную связь к процессу, который их читает, фаззирует и пересылает. Вам нужен драйвер, который позволяет вам общаться с необработанными сокетами, и вам нужно прочитать / узнать, что говорят соответствующие RFC для этих протоколов.
Существует простой способ сделать это. Точно так же, как рекомендует Justdelegard, Scapy - это, пожалуй, лучшая вещь для использования.
Взгляните на Выпуск прототипа ICMPv4 / IP фаззера Лорана Гаффи. Его код Python, который он случайно разместил в более читабельном стиле на pastebin.com, импортирует из scapy и использует некоторые методы, которые он определил, чтобы выполнить пару типов размытия. Пакеты IP и ICMP обрабатываются в его примере кода. Итак, это звучит так же, как то, что вы ищете.
Сейчас, похоже, многие компании используют Tcl / Expect для автоматического настраиваемого тестирования сетей. SIP, H.323, протоколы уровня 2 и 3 и т. Д.
Так что, если Scapy не удовлетворяет вашим потребностям, вы можете создать или найти что-то написанное на Tcl, используя Expect для выполнения этой работы. Или, возможно, вы захотите сделать некоторые вещи в Python, используя Scapy - и другие вещи в Tcl, используя Expect.
Tcl давно используется для тестирования и управления сетью. В 1990-х годах была книга о том, как использовать Tcl для управления сетями на основе SNMP.
Синтаксис Tcl явно странный, но библиотеки очень мощные. Он поставляется с возможностью, подобной фреймворку, определять поведение настраиваемого сетевого поведения поверх сокетов, подобно тому, что вы можете делать со стандартными библиотеками для языка программирования Python.
В отличие от Python и других языков сценариев, существует очень мощный инструмент для Tcl-программ под названием Expect (см. Ожидаемая страница руководства ).
Expect имеет удобную возможность. Может автоматически генерировать тестовый скрипт Tcl. Сгенерированный скрипт выполняет вызовы функций Expect. При выполнении этой записи он действует как пассивный посредник, записывая обе стороны разговора. В некотором роде вы записываете макросы во время редактирования в MS Word или в Emacs.
Затем вы можете отредактировать автоматически сгенерированный сценарий Expect, чтобы настроить его, заставить его вести себя по-другому или создать несколько его вариантов. Это очень удобно для создания регрессионных тестов. Вы должны быть в состоянии использовать это для начала написания тестов протоколов более высокого уровня, если они вам понадобятся. Бьет начиная с нуля.
Я думаю, вы можете использовать Tcl / Expect для тестирования стандартных приложений TCP (FTP, HTTP, SMTP и т. Д.), Которые используют строковые команды. Он хорошо работает для тестирования символьных приложений, таких как TELNET, которые считывают ввод с stdin и генерируют вывод на stdout.