Написание фильтра для входящих соединений - PullRequest
0 голосов
/ 08 января 2010

Я использую C ++ / boost :: asio под Win7.

Я пытаюсь "прослушать" трафик через данный порт TCP / IP. Следовательно, я хотел бы прослушивать этот порт, получать сообщения, анализировать их, но также позволять им непрерывно передавать данные, как будто я никогда не перехватывал их. Я хочу, чтобы они погрузились в программу, которая обычно слушает и подключается к этому порту. Представьте себе прозрачный прокси, но не для HTTP.

Я бы предпочел найти решение на основе кода, но, если не считать этого, может быть, вы бы предложили инструмент?

Ответы [ 2 ]

1 голос
/ 16 марта 2010

Если это продукт, который вы разрабатываете, вы можете взглянуть на библиотеку WinPcap http://www.winpcap.org/, которую вы можете встроить в свою собственную программу.

Если вам просто нужно проанализировать себя, использовать один из инструментов, использующих WinPcap, я добился большого успеха с WireShark; но проверьте сайт WinPcap для других инструментов

Для этого нельзя использовать boost::asio (или любую другую библиотеку на основе сокетов), так как она потребляет весь трафик.

1 голос
/ 08 января 2010

то, что вы пытаетесь сделать, это в основном программа брандмауэра.

В Windows есть несколько способов сделать это, вы можете подключить winsock. Лучше (или не хакерство) использовать фильтр TDI (вы посмотрите this ) или сделать фильтр NDIS

Microsoft также представила новый API, WPF и LSP . Я думаю, вам лучше использовать его, потому что фильтр TDI и оболочка NDIS включают программирование драйверов, которое усложняет и может занимать много времени.

...