Как изменить содержимое заданного URL-адреса для конкретного приложения?

Как изменить содержимое заданного URL-адреса для конкретного приложения?

Для целей тестирования мне нужно изменить содержимое указанного URL, чтобы увидеть, как приложение отреагирует на него. Есть ли способ сделать это в Windows?

Пример: заставить Foo.exe получать <html><body><p>Hello!</p></body></html>при запросе GET http://www.google.com.

решение1

Вы можете использоватьСкрипачдля этого. Он действует как прокси между вашим компьютером и Интернетом. Одна из его функций, называемая AutoResponder, может использоваться для изменения способа обработки определенных запросов. Он даже позволит вам имитировать задержки.

  1. Запустите Fiddler. Он автоматически установит прокси при запуске и удалит его при выходе.
  2. Переключить наАвтоответчиктаб. ПроверитьВключить правила.
  3. Добавьте правило. Для точного соответствия URL используйте EXACT:префикс, например. EXACT:http://www.example.com/api/v2/lists. Выберите файл, который вы хотите использовать в качестве ответа. Файл должен содержать полный ответ HTTP, включая заголовки.
  4. НажмитеСохранятьи наблюдайте, как происходит волшебство.

Конечно, чтобы это работало, ваше приложение должно учитывать конфигурацию прокси-сервера системы. Если нет, но вы можете ввести настройки прокси-сервера вручную, Fiddler будет работать на localhost:8888 по умолчанию — вы можете использовать это.

Если вы не хотите вручную создавать действительный файл ответа HTTP, просто создайте файл с любым содержимым, загрузите его на любой сервер и откройте в браузере. Он должен появиться в Fiddler. Щелкните его правой кнопкой мыши, затем щелкнитеСохранить → Ответ → Весь ответ.

Если веб-сайт, который вы хотите заменить, использует SSL/TLS (подключение HTTPS), это немного сложнее. Fiddler можно настроить для выполнения атаки «человек посередине» на такие соединения (он в основном расшифрует их, используя действительный сертификат, отредактирует ответ в соответствии с вашими инструкциями и повторно зашифрует, используя свой собственный сертификат, который вам нужно добавить в доверенное хранилище сертификатов Windows). Однако это вызовет проблемы в программах, использующих закрепление сертификатов: они обнаружат, что контент подписан неизвестным сертификатом, и будут действовать соответствующим образом. Например, Chrome позвонит домой, чтобы сообщить, если в доменах Google будут обнаружены сертификаты, выпущенные не Google.

решение2

Мне удалось собрать Foo.exe, так что он мне больше не понадобится, но прежде чем сдаться, я нашел сетевой отладчик под названиемЧарльз. Одна из предлагаемых им функций —локальный DNS-спуфинг:

Charles содержит список сопоставлений доменных имен и IP-адресов, которые вы настраиваете. Когда поступает запрос на указанное доменное имя, плагин Spoof DNS обнаруживает поддельный IP и перенаправляет запрос на этот адрес. HTTP-заголовок Host остается нетронутым, так что это точно так же, как если бы ваш DNS-сервер вернул поддельный IP.

Это платное приложение, но оно может быть полезно любому, кто оказался в ситуации, похожей на мою.

Связанный контент