Мне нужно захватить сетевой трафик, который входит / выходит из конкретного приложения. Основная проблема заключается в том, что я хотел бы сделать это блокирующим способом — т.е. захватить трафик, выполнить некоторый анализ и шифрование / дешифрование для него, а затем переслать его по обычному маршруту. Таким образом, он должен использовать какой-то механизм блокировки.
Есть ли какой-нибудь код или библиотека, которая делает это простым в Windows (подойдет Server 2008 или Win7)? Какие-нибудь классы или библиотеки C ++ (или Python / Java), которые уже существуют?
Я намерен, чтобы решение также выполнялось на том же компьютере, что и целевое приложение, и имело права администратора.
Любые указатели на примеры кода будут с благодарностью.
Спасибо за вашу помощь.
с .: Я смотрел на WinPcap, но, насколько я понимаю, он не может фильтровать / блокировать на основе конкретных приложений. Это правильно, или я что-то упустил? Есть ли другие решения?
Для этого вы должны посмотреть на WinDivert. В отличие от обычных снифферов пакетов (таких как winpcap), WinDivert также имеет возможность Блок / фильтр пакеты, так что это может быть то, что вы ищете. Раскрытие информации: WinDivert — мой собственный проект.
Других решений пока нет …