Я пытаюсь написать http (s) прокси для исполняемого файла golang, вот что я сделал:
- Напишите .dll, которая перехватывает 'getaddrinfo', 'GetAddrInfoW', 'gethostbyname', перенаправьте весь домен на
localhost
.
- Вставьте .dll в golang_target.exe (теперь все запросы перенаправляются на localhost)
Ожидаемое :
Я ожидал, что все запросы будут перенаправлены на localhost: 80 (443), и эти запросы не будут выполнены.
Результат : Когда DLL-файл внедряется, он не вступает в силу сразу, запросы по-прежнему работают нормально. Я добавил MessageBox в эти функции 'getaddrinfo ...', они не вызываются.
Но примерно через три минуты .dll, похоже, работает, все запросы терпят неудачу, и всплывающее окно MessageBox.
Вопрос : Полагаю, golang или ОС Windows кэширует dns и обновляет кэш каждые пару минут? Можно ли вручную обновить кеш? Так что я могу сделать .dll вступить в силу мгновенно.