Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

Если вам просто нужно проанализировать для себя, используйте один из инструментов, который использует WinPcap, я имел большой успех в Wireshark; Но проверьте сайт Winpcap для других инструментов

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top