Я изучаю, как я могу перехватывать 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служба кэширования и где между ними будет лучшее место для подключения?