C++ WinDivert-需要加密和解密网络数据包
我需要加密和解密两台计算机之间的所有网络数据包。例如,使用WinDivert,我们可以捕获、修改和重新注入数据包。我只看到两种方式: 方法:捕获出站数据包,加密有效负载并重新注入数据包->捕获入站数据包,解密有效负载并重新注入数据包。 方法:捕获出站数据包,加密数据包并通过套接字发送->通过套接字接收数据包,解密数据包并重新注入。 我不确定他们的可行性 是否可以对有效负载进行加密? 如何通过套接字发送WinDivert数据包?C++ WinDivert-需要加密和解密网络数据包,c++,sockets,networking,encryption,C++,Sockets,Networking,Encryption,我需要加密和解密两台计算机之间的所有网络数据包。例如,使用WinDivert,我们可以捕获、修改和重新注入数据包。我只看到两种方式: 方法:捕获出站数据包,加密有效负载并重新注入数据包->捕获入站数据包,解密有效负载并重新注入数据包。 方法:捕获出站数据包,加密数据包并通过套接字发送->通过套接字接收数据包,解密数据包并重新注入。 我不确定他们的可行性 是否可以对有效负载进行加密? 如何通过套接字发送WinDivert数据包? 如果您有任何建议或示例,它将非常有用。加密是非常重要的。这可能是一个
如果您有任何建议或示例,它将非常有用。加密是非常重要的。这可能是一个非常复杂的项目,具体取决于您的想法 在包捕获和重注入方面,这两种方法都是可行的。路1。如果您对加密IP头不感兴趣,这是一个好主意,而方法2。如果要加密整个数据包,则此选项非常有用 对于方法2,您需要小心不要创建循环。例如,WinDivert重新捕获加密的数据包。这取决于过滤器字符串是什么 双向1。另一个问题是加密通常会增加数据包的大小。对于方式2,您还添加了一个IP/UDP报头,进一步增加了大小。问题是原始捕获的数据包可能已经是最大MTU大小,因此无法增加大小。这些解决方案非常重要,要么是数据包碎片化,要么是注入PMTU ICMP消息
我不确定我是否理解您的具体问题:WinDivert将数据包捕获到缓冲区中,您可以对该缓冲区执行任何您喜欢的操作。这包括使用任何方法对其进行加密、重新注入或将其发送到套接字等。听起来您需要计算机之间的VPN。除非您计划自己编写一个,否则您可能会得到更好的答案。