Как я могу собирать и редактировать сетевые пакеты на лету с Perl? - PullRequest
0 голосов
/ 07 декабря 2009

Кто-нибудь знает о модуле CPAN на Win32, который собирает сетевые пакеты и редактирует их на лету? Насколько я знаю, единственным модулем Perl на Win32, который работает с пакетами на лету, является Net :: Pcap , но он поддерживает только пассивный мониторинг и не ограничивает стек TCP / IP.

Есть ли такой модуль, который кто-нибудь может предоставить пример / справка / документация?

Ответы [ 3 ]

2 голосов
/ 07 декабря 2009

Насколько я знаю, libpcap позволяет вам читать копии входящих и исходящих пакетов, а некоторые реализации позволяют вам вводить необработанный пакет, но не переписывать пакет. В основном вам нужно было бы удалить исходный пакет (что libpcap не может сделать), а затем внедрить новый на его место.

Приложения брандмауэра, позволяющие фильтровать входящие и исходящие пакеты, могут выполнять что-то подобное. Однако, поскольку вы говорите о Perl и Win32, ваши возможности, вероятно, ограничены.

0 голосов
/ 19 января 2010

Я бы предложил использовать Net :: Pcap для захвата трафика, затем порт Cygwin TCPReplay для изменения и воспроизведения трафика. Очевидно, что установка Linux будет более надежной, так как TCPreplay будет работать на ней из коробки, не требуя cygwin.

0 голосов
/ 21 декабря 2009

Я думаю, что правильный ответ - «реализовать прокси для этого».

Если это работает в вашем сценарии, попробуйте реализовать прокси-сервер. Прослушивайте тот же порт, что и ваша целевая служба, и прочитайте весь входящий трафик. Если вам нужна модификация пакета, сделайте это и передайте весь трафик целевой службе. Конечно, вы должны реализовать оба направления.

Вы можете найти базовый фрагмент кода TCP deamon в perl или, может быть, вы можете реализовать только модуль для существующего прокси-сервера для вашего сервиса. Это HTTP или какой трафик вам нужно обрабатывать?

...