2017-03-01 4 views
7

this postと同じように透過プロキシを実装しようとしていますが、ループバックインターフェイスでのみリッスンする「プロキシ」があります。私はループバックしDSTADDRを設定すると、TCPハンドシェイクの第二パケットが WinDivert:ループバックインターフェイスでリッスンしているプロキシにリダイレクト

... 
iphdr->DstAddr = htonl(INADDR_LOOPBACK); 
tcphdr->DstPort = ProxyPort; 
addr->Direction = WINDIVERT_DIRECTION_INBOUND; 
... 

を受けたことはありませんが、それはDSTADDR = address_of_network_interface_packet_captured_from場合は動作します。任意効果なし

addr->IfIdx = 1; 
    addr->SubIfIdx = 0; 

addrを変更しようとしました。

このような設定を実装する方法はありますか?

答えて

0

元のリンク先と同じように、ここでは逆パスを扱うコードはありません(つまり、接続 - >プロキシは処理されますが、プロキシ - >接続はありません)。これはなぜSYNACKが決して受け取られなかったか説明する。

ローカルプロキシに転送する場合は、streamdumpサンプルプログラムを参照してください。

+0

返信ありがとうございますが、 – mbg033

+0

ですが、ポイントはプロキシをループバックインターフェイス(127.0.0.1)に制限する必要があることです。私のフィルタは(tcp.DstPort == 80またはtcp.DstPort == 443またはtcp.SrcPort == )ですので、私は 'proxy-> connection'のパスを扱うべきだと思いますか? – mbg033

+0

[streamdump](https://github.com/mbg033/Divert/blob/develop/examples/streamdump/streamdump.c)を変更してINADDR_LOOPBACKでプロキシを実行し、メインループで適切な変更を行うと、動作しなくなります。おそらく、ループバックインターフェイスに注入/リダイレクトするどんなトリックですか? – mbg033

関連する問題