考虑简单的 C 代码发送单个原始数据包与WinPcap。与构建数据包标头相关的行以以下注释开头:
/* 假设在以太网上,将 mac 目标设置为 1:1:1:1:1:1 */
因此,您可能会猜测,为了发送原始 WiFi 数据包,您应该相应地更改此代码块。
然而,这种情况并非如此。您可以发送原始 WiFi 数据包,而无需更改该代码的一行,只需填写正确的 MAC 地址即可。当捕获数据包,数据包将具有以太网标头,而不是 WiFi 标头。
经过一番搜索,这个问题似乎与 Windows 在将数据包传递到 WinPcap 时模拟“假以太网”有关。不幸的是我找不到更多关于它的细节。
第一期
这个“假以太网”是如何工作的?是否可以绕过它或禁用它?
第二期
是否可以完全控制 WiFi 标头? (即使这需要 WinPcap 之外的其他东西)
这个“假以太网”是如何工作的?
网络适配器本身向主机提供带有假以太网标头的数据包(将 802.11 MAC、LLC 和 SNAP 标头转换为以太网标头,对于某些数据包,LLC 标头可能后跟 SNAP 标头),或者驱动程序不这样做所以。
这只适用于数据框;在此模式下捕获时不显示管理和控制帧。 802.11报头的源MAC地址和目的MAC地址成为以太网报头中的源MAC地址和目的MAC地址; TA 和 RA 字段被丢弃,帧控制和报头中的其他字段也被丢弃。如果该帧具有 OUI 全零的 SNAP 标头,表示“PID 是以太网类型”,则 SNAP 标头中的 PID 将成为以太网标头的类型/长度字段中的值;否则,帧中数据的长度,包括 LLC 标头及其后面的所有内容(但不包括 FCS)将成为类型/长度字段中的值。第一种情况下 SNAP 标头之后的所有内容以及第二种情况下 MAC 标头之后的所有内容都将成为以太网有效负载。
是否可以绕过它或禁用它?
是的,但您必须在计算机上安装特殊软件。
某些形式的特殊软件有“Fedora”和“Ubuntu”等名称。不幸的是,当尝试在您的计算机上运行 Windows 应用程序时,它们可能会导致问题。 :-)
不幸的是,当你试图send数据包,试图做到这一点without用 Linux 替换 Windows 并不像安装 Microsoft 网络监视器并用它捕获流量那么容易。很遗憾,Microsoft 的“Native WiFi”的“网络监视器操作模式”文档说,在该模式下,“驱动程序无法自行发送数据包或通过调用其微型端口发送网络缓冲区列表也许有一些方法可以连接到 Wi-Fi 驱动程序,就像图中的某些用户模式框一样这一页这样做,但是,要找到它们,您可能必须从Microsoft 本机 802.11 无线 LAN 的顶级文档页面并一路向下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)