【问题标题】:Catch received packets before Windows processes them在 Windows 处理接收到的数据包之前捕获它们
【发布时间】:2021-07-08 09:48:02
【问题描述】:

我试图在 Windows 处理和修改它们之前捕获我在 Windows 10 上收到的数据包。

实际上我是怎么做到的?

一些想法-

  1. 创建 Windows 网络适配器,连接方式如下: (我真正的网络适配器 - 新适配器 - 互联网)
  2. 获取对某个打开的套接字的响应,接收数据包,解密它,然后以某种方式让谷歌浏览器处理它。

在这个新的适配器上捕获数据包,修改它们,然后将它们发送到真实的网络适配器。

更多信息:

我正在创建一个 vpn 服务器(代理 + 加密负载)

因此,在客户端上,我“即时”捕获所有流量并对其进行修改(加密有效负载),将其发送到服务器,服务器解密数据包,并将其发送到互联网,接收响应,对其进行加密,然后将其发回. 客户端接收 - (例如简单的 http html 响应)带有加密的有效负载。在windows网络堆栈接收到这个数据包来处理它之前,我需要解密它。

【问题讨论】:

  • 查看wireshark的来源或任何其他网络数据包嗅探器和类似的应用程序。顺便说一句:在外部和实际应用程序之间放置一个代理可能更容易,这可以在 TCP 级别上完成,而无需任何低级别的东西。由于您提供的有关实际目标的信息很少,因此无法判断这是否可行。
  • 嗨@Ulrich Eckhardt,感谢您的回复,实际上我不知道某种数据包嗅探器是否能够做我想做的事情,因为它只会嗅探数据包,但不会拦截它们在数据包被解密之前到 Windows 网络堆栈,我在“更多信息”和 1 个“想法”中添加了更多信息

标签: python windows packet python-sockets


【解决方案1】:

所以,找到答案了。

为了实现,你可以使用 Pydivert - https://pypi.org/project/pydivert/ 使用它,您可以停止入站和出站数据包并对其进行修改,然后再由 Windows 网络堆栈处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 2017-02-08
    • 2022-08-21
    • 2017-10-30
    • 2018-01-26
    • 2023-04-10
    相关资源
    最近更新 更多