【发布时间】:2018-02-04 07:09:28
【问题描述】:
我正在开发一个 Windows 7 下的 TCP 协议模糊测试软件。我想使用原始套接字发送自构造的 TCP 数据包。但似乎微软出于某些安全原因禁止这样做。 (http://msdn.microsoft.com/en-us/library/windows/desktop/ms740548(v=vs.85).aspx)
我知道 WinPcap 也可以发送自定义数据包。但我不想从以太网级别构建数据包。以太网和 IPv4 的参数非常复杂,让我发疯。我只关心上面的 TCP 部分。有什么解决方案可以解决这个问题吗?我所能想到的就是将我的 Win7 更改为 Windows 2008 R2,但这是一个很大的项目。希望有更好的方法吗?
【问题讨论】:
-
这样做的动机是什么?
-
@EdHeal 你知道协议模糊测试吗?我在一家网络设备测试机构工作,该机构需要测试路由器、交换机等协议栈的健壮性。我几乎完成了除 TCP 之外的所有协议栈(以太网、IP、UDP HTTP 等)。所以你知道,这是为了好的目的。而且我不知道为什么微软会限制这一点。
-
一个IP包是1024字节。 1K。 TCP 部分只是其中的一小部分。我假设您不需要深入到网络层。那么为什么不做一些硬事情并创建软件来驱动以太网卡产生正确的数据。使用网络分析仪进行检查。
-
微软在桌面版 Windows 上支持原始套接字受到了很多批评。它被广泛滥用。所以他们再次禁用它。你已经知道你需要做什么,和你的老板谈谈以获得你需要的资源。志存高远,没有人愿意被小请求打扰,请求订阅 MSDN。
-
我想知道为什么您不使用 WinPCap 进行原始 TCP 套接字编程?
标签: windows sockets tcp raw-sockets