Как перехватить DNS-запросы в Windows - PullRequest
0 голосов
/ 25 октября 2019

Я изучаю, как я могу перехватывать DNS-запросы в Windows таким образом, чтобы не требовалось вставлять DLL в каждый процесс, а в идеале можно было бы принимать решения на основе процесса, который выдал запрос,следовательно, простого прокси-сервера DNS будет недостаточно.

Внешне путь DNS-запроса выглядит следующим образом: некоторые приложения вызывают gethostbyname из ws2_32.dll (или DnsQuery в dnsapi.dll)

[dll что-то делает]

что в итоге вызывает что-то в dnsrslvr.dll, который запускается как служба с именем «Dnscache» в процессе svshost, эта служба в соответствии с TaskExplorer отправляет и переносит пакеты UDP на порт 53 изDNS-сервер

Итак, я хотел бы перехватить DNS-запрос некоторого программного обеспечения перед службой «Dnscache» или, в качестве альтернативы, заменить его собственным.

Итак, мой вопросЗнает ли кто-нибудь из мудрых здесь, что происходит между публичными API запросов DNS и DNSслужба кэширования и где между ними будет лучшее место для подключения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...