1

ここには 2 つの問題があります。

  1. コンテンツがエンコードされている場合: gzip...
  2. HTTP パケットを有効にするためにヘッダー部分も変更する必要がありますか (チェックサムがある場合)。

アップデート

実際の経験のある人は、関連する手順を詳しく説明できますか?

私はトラフィックをフィルタリングするためにwinpcapbpfを使用しているので、私の仕事はこのコールバック関数にあります:tcp and src port 80

void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data)
4

4 に答える 4

3

WinPcap では、既に送信されたパケットを変更することはできません。

パケットが送信された場合、WinPcap は宛先への到達を妨げません。

送信された応答に加えて、別の応答を送信したい場合、何を達成しようとしているのかわかりません。

于 2010-05-14T06:38:58.477 に答える
1

winpcap は、TCP ストリームを変更しようとする奇妙な方法です。なぜこれを行おうとしているのか説明していませんが、代わりに独自の HTTP プロキシを作成することで、おそらくこれを達成できるはずです。そうすれば、傍受、ログ記録、および変更できるストレートなデータストリームが表示されます。これを行ったら、リクエストヘッダーから Accept-Encoding を取り除くと、そもそも gzip されたレスポンスを処理する必要がなくなります。

HTTP チェックサムはありませんが、下位層にはチェックサムがあります。アプリケーション レベルでプロキシ サーバーとして動作することにより、ネットワーク スタックにこれらすべてを処理させます。

于 2010-05-20T10:29:54.070 に答える
1
  1. GZIP解凍ソフトで解凍してください。
  2. ヘッダーを削除し、新しい長さ (バイト単位) を表すContent-Encodingヘッダーを追加します。Content-Length

とはいえ、より良い回答を得るには、質問でより多くのコンテキストを提供する必要があります。これはすなわち匂いです。何を達成しようとしていて、HTTP 応答を変更することが適切な解決策だと思いますか?

于 2010-05-10T11:47:44.190 に答える
1

libpcapキャプチャに使用されます。ネットワーク パケットの変更と挿入を行いたい場合は、 などの別のライブラリが必要ですlibnet

于 2010-05-19T10:20:09.913 に答える