特定のアプリケーションの指定された URL のコンテンツを変更するにはどうすればよいですか?

特定のアプリケーションの指定された URL のコンテンツを変更するにはどうすればよいですか?

テスト目的で、特定の URL の内容を変更して、アプリケーションがどのように反応するかを確認する必要があります。Windows でこれを行う方法はありますか?

例:<html><body><p>Hello!</p></body></html>要求時にFoo.exe を取得するようにしますGET http://www.google.com

答え1

使用できますフィドラーそのために必要です。これは、コンピュータとインターネットの間のプロキシとして機能します。AutoResponder と呼ばれる機能の 1 つを使用して、特定のリクエストの処理方法を変更できます。遅延をシミュレートすることもできます。

  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をビルドできたので、もうこれは必要なくなりますが、諦める前に、ネットワークデバッグツールを見つけました。チャールズ提供される機能の1つはローカル DNS スプーフィング:

Charles には、ドメイン名と IP アドレスのマッピングのリストが含まれており、これを設定することができます。リストされているドメイン名に対するリクエストが届くと、Spoof DNS プラグインは偽装 IP を見つけ、そのアドレスにリクエストをリダイレクトします。Host HTTP ヘッダーはそのまま残るため、DNS サーバーが偽装 IP を返した場合とまったく同じになります。

有料アプリですが、私と同じような状況にある人にとっては役立つかもしれません。

関連情報