如何解决Windows 7下的“原始套接字限制”?

时间:2014-03-22 05:32:31

标签: windows sockets tcp raw-sockets

我正在开发Windows 7下的TCP协议模糊测试软件。我想使用Raw Sockets发送自构造的TCP数据包。但出于某些安全原因,微软似乎禁止这样做。 (http://msdn.microsoft.com/en-us/library/windows/desktop/ms740548(v=vs.85).aspx

我知道WinPcap也可以发送自定义数据包。但我不想从以太网级别构建数据包。以太网和IPv4的参数非常复杂,让我发疯。我只关心TCP上面的部分。有没有解决方法来解决这个问题?我所能想到的就是将我的Win7改为Windows 2008 R2,但它是一个很大的项目。我希望有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

在Windows XP Service Pack 1之后,已禁用发送原始套接字的功能,但您仍然可以阅读它们。

您可以修改Microsoft在WDK中提供的源代码示例,以再次启用原始发送。有关更多信息,请查看链接。

PCAUSA - How To Access To NIC Drivers From A Win32 Application

或者,您可以使用WinPcap将数据包注入网络。

WinPcap

答案 1 :(得分:0)

(这对你来说没用,但对其他人来说可能很有趣)

如果您愿意更改操作系统,Linux会有完整的原始套接字。如果你想留在Windows上,我会使用winpcap,它只是一个驱动程序,允许你send raw packets