Драйвер WFP, выдающий 0.0.0.0 в качестве локального IP-адреса для подключения - PullRequest
1 голос
/ 30 января 2020

Я выполняю процедуру вызова для драйвера WFP, выполняющего перенаправление соединения. Я зарегистрировался на уровне FWPS_LAYER_ALE_CONNECT_REDIRECT_V4 . Все работает нормально. Когда я пытаюсь получить локальный IP-адрес для соединения, я всегда получаю его как 0. Ожидается ли это? Я перенаправляю соединение на локальную службу.

local_ip = RtlUlongByteSwap(inFixedValues->incomingValue
              [FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_IP_LOCAL_ADDRESS]) 

IN const FWPS_INCOMING_VALUES * inFixedValues, полученный в качестве параметра для процедуры обратного вызова.

То же самое относится и к sid пользователя. Это всегда происходит как s-1-0-0, который в основном недействителен sid

Я получаю sid-блоб пользователя как

inFixedValues->incomingValue[FWPS_FIELD_ALE_CONNECT_REDIRECT_V6_ALE_PACKAGE_ID].value.sid

Нужна помощь в понимании, это ожидаемое поведение или я здесь отсутствует!

спасибо

1 Ответ

1 голос
/ 05 февраля 2020

Насколько мне известно, это не задокументированное поведение, но я видел, как этот вызов вызывался дважды для UDP-соединений: первый раз с нулевыми значениями для локального адреса и порта и второй раз с действительными значениями. Сообщалось здесь и здесь . Я обхожу его, проверяя поля адреса и порта на нулевые значения и игнорируя в этом случае обратный вызов.

...