考虑使用WinPcap的简单C代码到send a single raw packet。与建立数据包报头相关的线开始与以下评论:带有WinPcap的原始WiFi包
/*假定是在以太网上,设置的MAC目的地为1:1:1:1:1:1 */
因此,您可能会猜到,为了发送原始WiFi数据包,您应该相应地更改该代码块。
但是,情况并非如此。您可以发送原始WiFi数据包而不更改该代码的一行,只需填写正确的MAC地址即可。 capturing packets也是如此,而不是WiFi头,数据包将具有以太网头。
经过一番搜索之后,似乎这个问题与Windows在将数据包传递给WinPcap时模拟“假以太网”相关。不幸的是我找不到更多关于它的细节。
第1期
这个'假以太网'如何工作?可以绕过它或禁用它吗?
第2期
是否有可能有过的WiFi头部的完整控制权? (即使这需要WinPcap以外的东西)
_trying做到这一点,而无需用Linux替换Windows_我试图发送一个简单的信标包,使得该范围内的任何WiFi计算机都可以捕获它,而无需事先加入特定网络连接。但是,听起来很简单,在Windows下,需要重新写入NIC驱动程序(奇怪)。你认为这样简单的信标包将更容易在Linux而不是Windows下编码吗? –
“你认为这样简单的信标包在Linux而不是Windows下更容易编码吗?”除非有一些简单的方法可以获得原生WLAN的用户模式部分所使用的代码路径,否则,即使最终在Linux上最终使用原始PF_PACKET套接字而不是使用libpcap,它也将变得非常简单。 –
曾听说过[亚克力WiFi](https://www.acrylicwifi.com)?它声称在Windows下启用监视器模式。显然他们已经开发出了一个兼容多个标准NIC的NDIS驱动程序。 –