0

到目前为止我所读到的,winPcap 允许您绕过操作系统并绕过 TCP 的应用程序和传输层处理,并提供对链路层的直接访问。

我打算使用 winpcap 做一些用户应用程序的东西,而不仅仅是嗅探。我将使用我目前通过套接字执行的 pcap 接收和发送关键信息。

绕过操作系统,根据我对应用程序和传输层的理解,是否涉及任何风险?

作为一个附带问题,到目前为止我发现的 winpcap 文档讨论了如何以编程方式实现它,但没有详细说明它绕过了什么以及它是如何做到的。任何指向它的链接都会有所帮助。

另外,我想知道是否有人出于监视原因和 msn 的网络嗅探以外的任何目的使用 winpcap。

4

1 回答 1

1

当然,有很多风险:

  • 操作系统不会知道您私人管理的 TCP 连接,因此它不会知道您选择的端口正在/正在使用中。这意味着它可能会尝试将同一端口用于另一个应用程序的连接,从而导致混乱。
  • 操作系统不会知道您私人管理的 TCP 连接,因此除非您阻止它查看这些数据包,否则它将发送 RST 数据包以重置明显的虚假连接。
  • 您的应用程序不会自动收到有关操作系统管理的数据、配置的 IP 地址和路由表的更改的通知。您可能需要轮询更新。
  • 正确实现 TCP 协议并非易事。大多数实现,即使是非常常用的实现,都有多年未发现的休眠错误。并非所有必要的信息都在 RFC 中。在某些地方,既定做法与记录在案的行为不同,通常是有充分理由的。现代 TCP 堆栈中还有大量代码专门用于处理其他堆栈中的历史错误行为,并且复制所有这些工作并不简单。
  • 与安装在主机上的第三方网络安全软件进行不良交互的风险很大,这将期望所有 TCP 连接都通过操作系统进行。

对我来说,这似乎是一场支持噩梦。

于 2010-07-08T01:30:57.133 回答