Java 7阻止Windows Vista和7上的FTP传输.
在FTP中,在传输文件之前,必须发送PORT或PASV命令.一旦发送其中一个命令,Windows防火墙就会关闭发送它的套接字.只有在防火墙打开且java.exe的例外不存在时才会发生这种情况.我怀疑这个问题与使用新的Vista IP堆栈的Java 7有关.
有没有人有任何想法如何解决或解决这个问题?我们正在分发一个Java FTP库,所以我们显然不能自己添加异常.
例外:
java.net.SocketException: Permission denied: recv failed
Run Code Online (Sandbox Code Playgroud)
JRE版本信息:
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
Run Code Online (Sandbox Code Playgroud)
后续行动1(2011年11月14日): Oracle已经分析了这个问题并发现它似乎是Windows防火墙和/或IPv6堆栈中的一个错误.他们设法使用本机C(即非Java)应用程序复制问题,因此这是该错误不在Java中的有力证据.他们告诉了微软,所以球现在在球场上.有关详细信息,请访问http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696
后续行动2(2012年7月27日): 甲骨文的一位(非常有帮助的)联系人告诉我,这个问题现在已经在微软升级了.我们希望尽快看到一些结果.
后续行动3(2012年8月15日): 我们在Oracle的联系人告诉我们,微软已接受该错误并正在确定其优先级.
后续行动4(2012年9月21日): 微软已经制作了一个目前正在由甲骨文测试的补丁.在发布日期没有任何消息.
后续行动5(2012年10月11日): 终于成功了!微软已公开发布了一个修补程序.他们暗示该修复程序将在未来包含在一般软件更新中:
"如果您没有受到此问题的严重影响,我们建议您等待包含此修补程序的下一个软件更新."
是否有适用于 Windows 过滤平台的 .NET 包装器?我希望使用 WFP 来观察我的 C# 应用程序中的应用程序级别网络流量观察。
谢谢!
想实现透明代理同样的方式在这个职位,但我有一个"代理"只对loopback接口听.一旦我将DstAddr设置为环回,就不会收到第二个TCP握手数据包
...
iphdr->DstAddr = htonl(INADDR_LOOPBACK);
tcphdr->DstPort = ProxyPort;
addr->Direction = WINDIVERT_DIRECTION_INBOUND;
...
Run Code Online (Sandbox Code Playgroud)
但是如果DstAddr = address_of_network_interface_packet_captured_from则有效.
也尝试改变addr:
addr->IfIdx = 1;
addr->SubIfIdx = 0;
Run Code Online (Sandbox Code Playgroud)
没有任何影响.
有没有办法实现这样的配置?
我已经构建了一个在内核模式下运行的WFP标注驱动程序.现在,我试图弄清楚如何在这个驱动程序和我在用户模式下运行的GUI应用程序之间进行通信.有任何想法吗?
我想要的是这样的:
谢谢!
我想实现一个Windows服务,该服务默认阻止/允许所有网络连接和白名单/黑名单特定域名(如google.com).
我查看了Windows过滤平台,但似乎我不能过滤域名,只能在精确的IP上过滤.问题是与域名相对应的IP可能会随时间而变化,并且一个域名可能有多个.
如何对域名进行过滤?
我正在使用Windows过滤平台.我想创建一个流量过滤器,安全管理器,它监视数据包和网络事件或阻止URL ...我知道大多数WFP功能可以从用户模式或内核模式调用.我想知道是否使用内核模式函数或用户模式函数来编写我的过滤器?是否有任何类型的网络操作只能通过使用内核模式驱动程序捕获?请帮助我这方面.
提前感谢您对此事的任何帮助
在第36行的WFPSamplerCalloutDriver.InX上的任何设置(32/64 - 调试/发布)中,Microsoft演示WFPSampler项目的编译失败:
[ClassInstall32.nt$ARCH$]
AddReg = WFPCalloutsClassReg
Run Code Online (Sandbox Code Playgroud)
:
Stamping .\WFPSamplerCalloutDriver.inf [Version] section with DriverVer=06/29/2017,19.37.54.422
sys\WFPSamplerCalloutDriver.inx(36-36): error 1203: Section [wfpcalloutsclassreg] not found.
sys\WFPSamplerCalloutDriver.inx(49-49): warning 2083: Section [defaultuninstall.ntx86] not referenced or used.
sys\WFPSamplerCalloutDriver.inx(53-53): warning 2083: Section [defaultuninstall.ntx86.services] not referenced or used.
sys\WFPSamplerCalloutDriver.inx(56-56): warning 2083: Section [wfpcalloutclassreg] not referenced or used.
sys\WFPSamplerCalloutDriver.inx(66-66): warning 2083: Section [wfpsamplercalloutdriver.nt.coinstallers] not referenced or used.
sys\WFPSamplerCalloutDriver.inx(70-70): warning 2083: Section [wfpsamplercalloutdriver.coinstaller.addreg] not referenced or used.
sys\WFPSamplerCalloutDriver.inx(73-73): warning 2083: Section [wfpsamplercalloutdriver.coinstaller.copyfiles] not referenced or used.
Run Code Online (Sandbox Code Playgroud)
安装程序使用Visual …
我正在使用WFPsampler使用以下命令重定向TCP IPV4traffic.
WFPSampler.exe -s PROXY -l FWPM_LAYER_ALE_CONNECT_REDIRECT_V4 -ipra 192.168.10.52 -iprp 9000 -pra 127.0.0.1 -prp 5050 -v -plspid 9184
在清除默认启用的所有规则之前,重定向不起作用.我不想清理已经安装的规则,有没有什么方法可以让代理工作而不用做
WFPSampler.exe -clean all
提前致谢.
我试图在通用窗口应用程序(Windows 10)中将页面显示为对话框.
在WFP中,有一个ShowDialog可以调用Window:
var msgBox = new MessageWindow();
msgBox.Owner = App.Current.MainWindow;
msgBox.WindowStartupLocation = WindowStartupLocation.CenterOwner;
msgBox.SetMessage(message, messageCategory);
msgBox.ShowDialog();
Run Code Online (Sandbox Code Playgroud)
如何在Universal Window App(Windows 10)中执行类似的操作?
这是它的外观样本图片
大家.我正在为WinPcap做一些改进.现在我已将npf.sys驱动程序从NDIS5.0移植到NDIS6.0.这个驱动程序是否仍有改进空间,例如将其移植到LWF(轻量级过滤器)或WFP(Windows过滤器平台)?我们只想确保使用更新更好的框架.
以下是其他一些问题:
似乎LWF是Vista时代的一款产品,现在微软并未提及它,这是真的吗?
LWF或WFP驱动程序可以执行NDIS协议驱动程序可以执行的操作吗?
LWF或WFP是否与WDF(Windows驱动程序框架)有关系,或与WDF和WDM框架兼容?
如果这对端口是可行的,那么难度如何,我之前开发了一些NDIS中级驱动程序,LWF或WFP是否比那更难或更容易?
谢谢!
我想为 Windows 开发一个基于主机的防火墙,主要是为了过滤以 HTTPS 开头的 URL!我知道 Microsoft 将 WFP 用作替代已弃用的旧技术,例如防火墙/过滤器挂钩、NDIS、TDI、WSA 和 Winsock 2 (LSP)。但 WFP 目前不支持带有主机名或 URL 的过滤器。此外,WFP 仅支持 C/C++,并且在 .NET 中没有可用的 C# 包装器。
我尝试了@basil 的WinDivert演示应用程序 webfilter,它在 TCP 端口 80(默认 HTTP)上解析 IPv4 出站流量中的数据包,重置服务器连接(TCP RST)并向客户端(浏览器)发送 HTML 响应,然后是 TCP FIN如果 URL 匹配文本文件中作为命令行参数给出的任何列入黑名单的条目,否则重新注入它们...
handle = WinDivertOpen(
"outbound && " // Outbound traffic only
"ip && " // Only IPv4 supported
"tcp.DstPort == 80 && " // HTTP (port 80) only
"tcp.PayloadLength > 0", // TCP data packets only
WINDIVERT_LAYER_NETWORK, priority, 0 …Run Code Online (Sandbox Code Playgroud)