我试图用WinPcap编写一个简单的C代码来广播一个信标包,并在所有附近的WiFi单元中捕获它。我使用的代码非常类似于WinPcap1中可用的代码。
如果我创建一个自组织网络连接并将所有计算机连接到其中,代码就能正常运行。然而,创建和加入自组织网络的过程非常繁琐.如果无论每台计算机在哪个网络中,一旦代码运行,信标数据包就会被广播和捕获,这会好得多。
虽然这个问题听起来很简单,但经过一些搜索之后,这似乎不可能在windows上完成(除非重写驱动程序或内核):
基本上,在监视器模式下使用WiFi是必要的,这在Windows5中是不支持的。因此,如果计算机不在同一网络连接中,则数据包将被丢弃。
第一期
我仍然感兴趣,信标和探测请求包是一个正常的网络流量。它们是如何不断地被发送和接收的,但用户却不被允许编写这样的程序?如何调和这一点?
第二期
有人有管理的Wifi API6的经验吗?我听说这可能有帮助。
第三期
丙烯酸WiFi7声称已经开发了一个NDIS驱动程序,该驱动程序支持Windows下的监控模式。有人有这个软件的经验吗?可以与C代码集成吗?
第4期
在Linux上可以编写这样的Wifi信标吗?在Android上呢?
发布于 2016-08-15 13:41:13
我试着回答几个问题。Mgmt和Ctrl数据包用于运行wifi网络,不包含数据,我不会调用这些正常的数据包。Windows过去(我认为现在仍然如此)将数据包转换为以太网帧,并将其传递到堆栈中。对于TCP/IP堆栈来说,不需要信标和探针Req pkts,即。web浏览器不需要信标帧来获取您的网页。大多数os需要从mgmt/ctrl pkts获得最少的信息,以帮助用户与wifi适配器交互,大多数mgmt/ctrl pkts只对驱动程序(和低级别os组件)有用,以了解如何与网络交互。这样,wifi适配器看起来和行为就像以太网适配器到高级别os组件。
从来没有任何经验的管理Wifi API或丙烯酸,所以不能给你任何反馈。
大多数捕获和发送数据包的分析器都是在2-3个不同的模式下进行的,主要是由于硬件的原因。Wifi适配器可以是侦听模式(混杂模式和/或监视模式)或适配器模式。要捕获网络流量,您需要侦听而不是发送,即。如果有人在你送你的时候发送了一台pkt,那么你就错过了。为了捕获(或发送)通信量,您将需要windows中的自定义NDIS驱动程序,在linux上它们中的许多已经这样做了。签出威雷沙克或tshark,它们使用winpcap来捕获windows中的pkt,并且有一些适配器推荐用来捕获pkt。
是的,在linux上发送信标是可能的。重播。我知道在Android上捕获流量是可能的,但是你需要有根或者定制固件,我相信这也意味着你可以发送定制的pkts。如果您只是试图发送pkt,则可能更容易捕获tshark或wireshark中的一些流量,并使用类似于aireplay的方式重新发送该流量。您还可以使用十六进制编辑器编辑数据包,以调整其以满足您的需要。
https://stackoverflow.com/questions/34467476
复制相似问题