【问题标题】:How to Block Windows OS automatic RST packet right after TCP handshake如何在 TCP 握手后立即阻止 Windows 操作系统自动 RST 数据包
【发布时间】:2021-01-13 02:18:22
【问题描述】:

这是我的代码:

import com.github.ffalcinelli.jdivert.WinDivert;
import com.github.ffalcinelli.jdivert.exceptions.WinDivertException;

public class blocker {
    public static void main(String[] args) throws WinDivertException {
        WinDivert w = new WinDivert("outbound");
        w.open();
    }
}

我正在 Windows 操作系统的帮助下与 PLC 进行 TCP 握手。我正在使用 JnetPcap 和 Java 来执行此操作,但在握手之后,Windows 操作系统正在发送 RST、ACK 数据包并结束连接。我使用 JDivert 库在 Java 中编写了一个拦截器代码,该库基本上是 WinDivert 的 Java 包装器。我最初将出站作为过滤器只是为了测试代码是否阻止了所有内容。但它一直给我这个错误:

https://pasteboard.co/I0WWP2P.png

即使我使用了官方 JDivert github 存储库示例中给出的过滤器,也会发生这种情况。有什么帮助吗?

【问题讨论】:

  • 这是 Windows 还是服务器应用程序造成的,这是有争议的,但无论如何,您当然不能使用 Jnetpcap 阻止它或其他任何东西。
  • 我的意思是我正在使用 Jdivert 来阻止,Jnetpcap 只是用于 TCP 握手和其他事情,但这是一个单独的程序,这个应该只是阻止但它不是。不知道为什么。
  • 如果一方发送一个 RST,那么阻塞它没有好处,因为那一方根本没有 TCP 连接,它会继续发送 RST,而不处理它收到的任何发送到的段这种联系。
  • 我正在尝试阻止从我这边发送的任何 RST,这样连接就不会被终止。我将编写自己的程序来处理我这边的未来数据包,我只需要永久阻止操作系统发送任何 RST 数据包。

标签: java networking tcp jnetpcap


【解决方案1】:

我晚了很多,但对于那些偶然发现它的人来说。

我在 s/shot 中看到了.. {code=5, message='null'}

根据下面的链接,代码5是权限错误。

那么您是否以管理员权限运行您的 shell? “以管理员身份运行..”

windivert faq

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 2021-09-06
    • 2020-05-07
    • 2011-05-01
    • 2012-12-24
    • 2014-10-22
    相关资源
    最近更新 更多