【问题标题】:My wifi network card does not support seeing packets not addressed to me. Could I change this by disassmbly of the network driver?我的 wifi 网卡不支持查看不是发给我的数据包。我可以通过拆卸网络驱动程序来改变它吗?
【发布时间】:2026-01-17 13:50:01
【问题描述】:

作为 cisco net academy 的一部分,我正在学习网络,我们使用这个名为 Wireshark 的工具。有据可查的是,大多数无线网卡不支持以“混杂模式”进行捕获或不支持其主机地址的数据包。这是一个任意的限制,因为他们看到了所有这些。

但是我非常擅长 x86 汇编和反汇编。所以我现在正在查看我的网络驱动程序的问题。我可以找到他们否认它的地方并修补它。 上述限制是在驱动程序中实现的,还是我无法更改的固件的一部分?

很遗憾,我找不到任何示例或类似问题。

谢谢,我认为这更像是编程而不是网络管理

编辑:当然!更多细节: 戴尔无线 1701 802.11b/g/n 和 Realtek PCIe GBE 系列控制器

【问题讨论】:

  • 既然您要问一个关于如何实现特定功能的非常具体的问题,那么您不认为包含您正在谈论的硬件的确切描述是明智的吗?

标签: networking x86 driver wireshark disassembly


【解决方案1】:

Wireshark。有据可查的是,大多数无线网卡不支持以“混杂模式”捕获数据包或不支持其主机地址的数据包。

实际上,对于 Wi-Fi 适配器,密钥是 monitor mode,而不是 promiscuous mode。大多数 Wi-Fi 适配器都支持监控模式,但您使用的操作系统是否支持它是另一回事。

在 Linux、*BSD 和 OS X 上,操作系统支持它,如果适配器支持它,适配器的驱动程序可能支持它。

然而,在 Windows 上,第一个支持它的操作系统是 Windows Vista。不幸的是,Wireshark 用来捕获流量的 WinPcap 即使在 Windows Vista、7、8 或 8.1 上也不支持它,因此您无法在 Windows 上使用 Wireshark 在监控模式下进行捕获。即使支持,您的适配器的驱动程序也可能不支持它,或者支持可能有问题。让它发挥作用并非易事。

【讨论】:

  • 有什么方法可以验证 WinPcap 未能将 Windows 中的特定界面设置为“监控”模式?您能否链接到任何官方文档,WinPcap 不支持 Windows 中用于 wifi 设备的监视器模式。
  • "有什么方法可以验证 WinPcap 未能将 Windows 中的特定界面设置为“监控”模式?"下载 WinPcap 源,注意不存在任何打开监视模式的调用("Native 802.11 Wireless LAN" 在 NDIS 中调用 enable monitor mode),并得出结论 WinPcap 无法将 any 接口设置为监视模式。
  • "您能否链接到任何官方文档,WinPcap 不支持 Windows 中的 wifi 设备监控模式"源代码,如上;常见问题解答并没有正式记录它,尽管它应该。 (另请注意,在文档中,缺少启用监控模式的官方 libpcap 调用,pcap_set_rfmon()。)
  • 感谢那个家伙,这不是我期望的答案。调查一下,winpcap 的人似乎已经放弃了 Cace 和 Riverbed.com 的商业产品
  • 大概“Cace 和 riverbed.com 的商业产品”是指 Riverbed 的 AirPcap 网络适配器(CACE Technologies,由一些 WinPcap 开发人员创立,开发并销售 AirPcap 适配器;CACE被 Riverbed 收购)。
【解决方案2】:

亚克力 WiFi 软件支持 windows 8.1、8、7 和 vista 下的监控模式,并安装了与wireshark 兼容的驱动程序,可以在 windows 下实现监控模式捕获。

而且它是免费的

https://www.acrylicwifi.com/en/wlan-software/wlan-scanner-acrylic-wifi-free/

【讨论】:

    【解决方案3】:

    首先,大多数无线网卡不支持混杂模式的说法根本不正确。捕获所有数据包的能力仅取决于软件,而不取决于设备本身。混杂模式支持是当今非常基本的要求,并且很可能由您的设备软件支持。您应该检查供应商文档以查看其是否属实以及如何启用它。

    几乎可以肯定,为了提高效率,数据包控制在 FW 内部实现,但理论上它也可以在驱动程序中实现。

    【讨论】:

      最近更新 更多