Как перехватить HTTP-вызовы из приложения?
Вопрос
Я хочу отслеживать все HTTP-запросы, исходящие из определенного приложения, и при необходимости отменить их.
Есть ли способ сделать это на С#?
Решение
Если вы можете коснуться конфигурации прокси-сервера системы (которая используется многими приложениями) или, если приложение не учитывает этот параметр, коснуться конфигурации приложения для использования прокси-сервера по вашему выбору, вы можете создать HTTP-прокси это сделает всю работу за вас.
Если вы просто хотите создать профиль, есть готовый инструмент, который ведет себя следующим образом и очень удобен: Скрипач.
В противном случае вам придется углубиться в сетевой стек и реализовать что-то вроде сниффера/брандмауэра, например, используя WinPcap.Это намного сложнее сделать.
Другие советы
Если вы работаете с Windows, вы можете перехватить вызовы API WinInet и делать с ними все, что захотите.
ФриКап (или его коммерческая версия WideCap) делает это:позволяет отправлять TCP-трафик через прокси-сервер.Этот прокси-сервер может затем выполнять фильтрацию (например, Скрипач).
Я знаю, что это добавляет в систему больше автономных приложений, но это работает.