2017-03-01 11 views
7

şeffaf proxy'yi this post ile aynı şekilde uygulamaya çalışıyor ancak sadece geri döngü arabiriminde dinleyen bir "proxy" var. Ben geri döngü için dstaddr belirledikten sonra, TCP el sıkışma 2. paket WinDivert: sadece geri döngü arabiriminde dinleyen proxy'ye yönlendirmek için

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

almadım ama dstaddr = address_of_network_interface_packet_captured_from çalışır.

da addr değiştirmek için çalışılmıştır:

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

herhangi bir etki olmadan.

Böyle bir yapılandırmayı gerçekleştirmenin bir yolu var mı?

cevap

0

Bağlantılı orijinal gönderide olduğu gibi, burada da ters yolu ele alan herhangi bir kod görünmüyor (yani bağlantı -> vekil işleniyor, ancak vekil-> bağlantı yok). Bu, SYNACK'un neden hiç alınmadığını açıklar.

Yerel proxy'ye yönlendirmek için streamdump örnek programına bakın.

+0

Yanıtınız için teşekkür ederiz, – mbg033

+0

ancak nokta proxy'nin geri döngü arabirimini yalnızca kısıtlamanız gerekiyor (127.0.0.1). Filtrenim (tcp.DstPort == 80 veya tcp.DstPort == 443 veya tcp.SrcPort == ) 'bu yüzden' proxy-> bağlantı 'yolunu kullanmalı mıyım? – mbg033

+0

[streamdump] 'ı (https://github.com/mbg033/Divert/blob/develop/examples/streamdump/streamdump.c) değiştirdiğimde INADDR_LOOPBACK üzerinde proxy çalıştırır ve ana döngüde uygun değişiklikleri yaparsa, çalışmayı durdurur. Belki geridöngü arabirimi enjekte/yönlendirmek için herhangi bir hile? – mbg033