Windivert在Win10中失败 - TCP 3handshake的解决方案 - Evade windows RST数据包

时间:2018-02-03 13:43:55

标签: windows sockets tcp driver

我有一个项目使用windivert在我的网络中作为路由器工作,它工作正常,但现在死了相同的代码。以前的版本成功运作现在不起作用。我总是得到相同的Windivert错误,即997(重叠I / O操作正在进行中)。

例如,当我使用WindivertOpen时,我得到错误,当我重新启动计算机以重置windivert驱动程序时,我在WindivertOpen中没有得到错误997但我在WindivertSend或WinDivertSendEx中得到它并且在使用它们之后我再次得到错误WindivertOpen。几个月前这些功能对我来说很好用,我的路由器按照我的预期工作,但现在我已经完成了这些错误,我无能为力,也许这是由Windows安全更新造成的。

我需要知道如何在不重新启动计算机的情况下重置驱动程序,并知道如何解决此问题。我使用windivert来阻止Windows TCP RST数据包到我的路由器fordwards,当没有与你要转发的端口相关联的套接字时,windows会这样做,我该怎么做才能阻止这些没有windivert的数据包或者使用windivert的工作方式?< / p>

1 个答案:

答案 0 :(得分:0)

997错误为ERROR_IO_PENDING,但除非WinDivertOpen返回INVALID_HANDLE_VALUE,否则错误代码无意义。否则呼叫将成功完成。

据推测,您已从之前的版本升级到WinDivert 1.4。简单地替换二进制文件(dll / sys)不会起作用 - 您必须根据新API重新编译程序。