NDIS или TDI для перенаправления пакетов на локальный прокси-сервер
Мне нужно разработать прозрачный фильтр для перенаправления исходящих HTTP-пакетов на локальный прокси-сервер, чтобы сделать прозрачную фильтрацию контента.
Какая технология лучше для этого, TDI или NDIS IM?
Мое главное ограничение-избегать конфликтов с антивирусными программами, которые также выполняют перенаправление пакетов для проверки содержимого HTTP (я не знаю, используют ли антивирусные программы TDI, NDIS IM или оба).
Вместо того, чтобы писать самому водителю, на самом деле, я также рассматривая два коммерческих SDK для фильтрации/модификации пакетов: один использует драйвер TDI, а другой-драйвер NDIS IM, так что это источник моего вопроса (я знал только о NDIS IM, прежде чем посмотреть на два SDK).
2 ответа:
NDIS IM предоставляет вам доступ к пакетам.
Если вы перенаправляете на прокси-сервер, вы, вероятно, делаете это на уровне соединения (TCP), и в этом случае это было бы много работы на уровне IM NDIS, так как вам нужно было бы реализовать полный стек TCP, чтобы иметь дело с повторными попытками, последовательностью и т. д.
Поэтому я бы посмотрел больше на TDI или WFP (в зависимости от целевой ОС).
Большинство AV, которые я знаю, используют LSP для этого, который является фильтрующим слоем winsock. Так что TDI будет значительно ниже этого, и также захватывайте приложения, которые не используют сокеты windows для TCP / IP (например, проводник, SMB-клиенты и т. д.).