跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教一下关于使用 Python 的 scapy 库通过 npcap 驱动抓包时遇到的无法抓取无线网卡流量的问题
未分類
5 2 月 2021

请教一下关于使用 Python 的 scapy 库通过 npcap 驱动抓包时遇到的无法抓取无线网卡流量的问题

请教一下关于使用 Python 的 scapy 库通过 npcap 驱动抓包时遇到的无法抓取无线网卡流量的问题

資深大佬 : EtherShark 5

最近参照网上的 scapy 库的使用方法写了一个用于抓取所有数据包的脚本,一开始一切正常,但是后来为了测试没有安装驱动的情况下可以输出需要安装驱动,而不是直接报错,于是把 npcap 驱动反复安装卸载多次,就遇到了这个问题: 电脑在连着无线网的时候脚本就抓不到数据包,但是连着有线网就可以抓到。与此同时,wireshark 却一切正常,无论是无线还是有线都可以抓到包。
之后尝试了

  1. 用 ccleaner 清理注册表;
  2. 安装 winpcap 驱动替换 npcap ;
  3. 自己去注册表搜索 npcap 字样的项,并通通删除;
  4. 去 system32 与 syswow64 目录下删除 Npcap 目录,与 wpcap.dll 和 packet.dll 文件,以及 drivers 目录下的 npcap.sys 和 npfs.sys 和 npf.sys 文件
    但是反复卸载重装后问题依然无法解决,只能抓取有线网卡的数据包,无法抓取无线网卡的数据包。 以下是代码:
from scapy.all import * import time  def countfun(packet):     global n      n += 1     print(n)      if not IFACES.data:     print("Need install npcap driver") else:     print("Capturing...")     n = 0     dpkt = sniff(prn=countfun, count=0)     capfile = time.strftime("%Y%m%d%H%M", time.localtime()) + ".pcap"     print(n,"packets captured")     if n != 0:         wrpcap(capfile, dpkt)         print("Saved in " + capfile) 

大佬有話說 (2)

  • 資深大佬 : disk

    。。。你有指定哪个网络接口吗

  • 主 資深大佬 : EtherShark

    @disk 没有指定网络接口,我看 scapy 的 sniff()函数的介绍,如果不指定 iface 的话,默认是抓取所有网卡的数据包,而且在我反复卸载之前,也是可以抓到数据包的。并且相同的代码,放到另一台只有有线网卡的设备上,是可以正常捕获数据包的。

    另外,我下午找到的一个“解决方法”,通过迭代 IFACES.data.items() 获取到所有网卡名字,并放到 list 里,传给 sniff 的 iface 。

    目前的情况是,可以抓到数据包了,但是相比 wireshark 抓包的结果看,漏抓了数量巨大的数据包,基本上单位时间,能差出去 4-6 倍的数据包,导致抓到的结果完全不具备参考价值。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具