在监控模式下使用 libpcap 嗅探 wifi

2024-01-10

问题陈述

Calling pcap_activate()结果是PCAP_ERR_RFMON_NOTSUP错误,即不支持 RF 监控模式。

Context

我正在编写一个小型 C 程序,其工作是在监视器模式下监听我的笔记本电脑的 wifi 卡。该笔记本电脑运行的是 Ubuntu 12.04 LTS。我跑了airmon-ng start wlan0命令之后出现 mon0 界面。以下显示了运行 airmon 命令后 iwconfig 命令的输出:

$ iwconfig
mon0      IEEE 802.11bgn  Mode:Monitor  Tx-Power=16 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

eth0      no wireless extensions.

lo        no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:"SKY88F48"  
          Mode:Managed  Frequency:2.412 GHz  Access Point: 7C:4C:A5:3B:33:59   
          Bit Rate=52 Mb/s   Tx-Power=16 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=43/70  Signal level=-67 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:4  Invalid misc:415   Missed beacon:0 

Question

在我的程序中,我使用以下命令在设备 mon0 上创建网络句柄pcap_create()。然后我成功设置了快照长度和混杂模式。

当我检查是否可以设置 rfmon 时,使用pcap_can_set_rfmon()方法,它返回正值。然后我使用设置 rfmonpcap_set_rfmon()成功通过的方法。我也设置了超时。最后当我打电话的时候pcap_activate()它返回错误PCAP_ERR_RFMON_NOTSUP,即不支持 RF 监控模式。我正在以 root 身份运行我的程序。

需要注意的一件事是,我安装了wireshark并开始监听mon0,它成功捕获了所有流量。


您不需要在 mon0 上设置 rfmon 模式 - 它本质上处于监视模式。只需捕捉它即可;这就是您使用 Wireshark 所做的。

由于各种原因与

  1. libnl 有多个不兼容的版本,因此选择正确的版本来构建 libpcap 显然对于发行版构建者来说是一件痛苦的事情;

  2. 选择与同时使用 libnl 和 libpcap 的应用程序所使用的版本不同的版本,由于上述不兼容性而导致可怕的问题;

Linux 的 libpcap rfmon 模式代码最适合大多数设备,它使用 libnl (本质上,它创建一个新的 monN 接口,复制 airmon-ng 的功能,打开该接口进行捕获,并在捕获完成时将其删除),是not由于配置了 libpcap,因此在许多 Linux 发行版中启用not使用 libnl.

因此,它在 Linux 上运行得不太好。

为 libpcap 编写代码以直接使用 netlink 套接字,而不是通过 libnl,在我的待办事项列表中,但不幸的是,它落后于该列表中的许多其他问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在监控模式下使用 libpcap 嗅探 wifi 的相关文章

  • 如何使用 iPhone 使用蓝牙或 wifi 与 OBD II 通信

    我喜欢为 iOS 创建一个简单的应用程序 它通过 ODB II Wifi 蓝牙设备从汽车读取数据并显示在 iPhone 屏幕上 但我不知道从哪里开始 请有人帮助我实现以下结果 我有蓝牙和 WiFi 适配器 第 1 步 将蓝牙或 Wifi 适
  • 如何使用Java连接wifi设备? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在Java中在wifi范围内的设备之间建立连接 要通过网络 WiFi 电缆等 在两个设备之间建立连接 您需要编写 2 个软件 1
  • 获取WIFI信号强度-寻求最佳方法(IOCTL、iwlist(iw)等)

    我想扫描从3个AP接收到的信号强度 如果每 300 毫秒 最多 500 毫秒 发生一次 我会很高兴 我在路由器上刷了 OpenWRT 我正在寻找一个好的工具来做到这一点 首先 我发现 iwconfig 可以工作 但仅限于我连接到的网络 所以
  • 检测连接到 Wifi 的 Android 设备

    我想制作一个连接到 Wifi 网络的 Android 应用程序 假设网络 SSID ABC 假设它已连接到 Wifi ABC 连接到 ABC 后 我希望我的应用程序显示连接到同一 wifi ABC 网络的所有 Android 设备的 ip
  • 有没有办法在 iOS 中以编程方式打开和关闭蓝牙和/或 WiFi?

    我正在寻找一种简单的方法来在 iOS 4 x 设备 iPhone 和 iPad 上切换蓝牙和 WiFi 的打开和关闭状态 当我在不同的位置和使用场景之间移动时 我会不断切换这些功能 现在需要多次点击并访问 设置 应用程序 我希望创建一个简单
  • 如何在 python 中连接/断开/配置无线网络?

    我正在寻找是否有一种方法可以在 python 中连接或断开无线网络 最好是一种在我提供密码的情况下适用于公共网络和安全网络的方法 如果我可以配置有关无线的选项 那将是一个额外的好处 例如 查看范围内的所有网络 查看有关范围内的网络的信息 例
  • 从 PCap 文件读取并在 c 中打印出 IP 地址和端口号,但我的结果似乎是错误的

    我正在读取一个 pcap 文件 我想打印出每个数据包的 IP 地址和端口号 我正在使用来自的代码http www tcpdump org pcap htm http www tcpdump org pcap htm and http www
  • 如何使用Python连接WiFi网络? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试用 Python 编写一个脚本 该脚本将使我能够搜索无线网络并连接到它们 有没有为此目的的Python 库 None
  • Wifi 睡眠,即使有锁

    总结 即使获取了wifi锁 当手机使用电池运行时 wifi也会在一段时间后断开 我已将问题简化为带有启动线程的按钮的单个活动 它只是向 PC 上运行的回显服务器发送 100 000 个字符串 每 100 毫秒一个字符串 请参阅下面的代码 我
  • 通过 Wi-Fi 扫描 MFI 产品

    在 iOS 8 中 Apple 允许我们通过 Wifi direct 连接到设备并与其共享 WiFi 网络凭据 我们可以在 wifi 设置页面中执行此操作 也可以在应用程序中执行此操作 我正在尝试启动扫描来查找 wifi MFI 设备 我可
  • C libpcap API 提取 DNS 查询

    我正在尝试使用 libpcap api 从捕获的 DNS 数据包中提取 DNS 查询 但是我的结构一定有问题 在最后一次转换 使用结构问题 之后char name指针指向正确的地址 查询名称的开头 但它只包含 42 45 20 00 但应该
  • 解释 802.11 Wireshark 跟踪中的帧控制字节

    我有一个 Wi Fi 捕获 pcap 我正在分析并发现 802 11 规范与 Wireshark 对数据的解释之间存在不一致之处 具体来说 我想要分解的是 2 字节 802 11帧控制 field 取自http www4 ncsu edu
  • 如何在 Mobile Safari 中检测 3G 与 Wifi 连接?

    我特别询问的是移动网页上的 javascript 而不是 Objective C 应用程序 是否有像 Apple Reachability for javascript 这样的东西 以便我可以知道 Edge 3G 或 Wifi 连接何时建立
  • Android 智能手机与其他设备之间的直接 Wifi 通信

    我想在 Android 设备和另一个设备 不是另一个 Android 智能手机 而是使用 C 实现的带 wifi 的设备 之间建立通信 通过 WIFI 我已经发现android提供了直接无线网络 http developer android
  • Android wifimanager总是返回true

    这简直要了我的命 任何帮助将不胜感激 我想使用 wifi 管理器连接到开放网络 我遇到的问题是该代码声称连接到任何网络 甚至是不存在的网络 下面是执行并使用网络 SSID 调用的完整代码 无论您传递给它什么字符串作为网络的 SSID 即使不
  • p2p0是android中WIFI DIRECT的无线接口吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我打印 Android 设备中的所有接口时 03 10 19 50 15 484 I System out 22415 lo 03 10
  • 启用/禁用 Microsoft 虚拟 WiFi 微型端口

    我禁用了我的Microsoft Virtual WiFi Miniport网络适 配器来自Control Panel Network and Internet Network Connections 只需右键单击微型端口网卡并单击 禁用 它
  • libpcap 在它们下面使用原始套接字吗?

    我对原始套接字和 libcap 的使用感到有点困惑 任何人都可以简单地指出使用两者的优点 我读了几个链接 但是 它让我感到困惑 libpcap 在不同的操作系统上使用不同的机制 在 Linux 上 它使用 PF PACKET 原始套接字或熟
  • 当scapy和pypcap严重丢失时,如何嗅探python上的所有数据包?

    我尝试使用 python 在 Win10 上嗅探数据包 然而 我发现很多数据包实际上是被 scapy 丢弃的 例如 我从 ftp 下载一个 2 MB 的文件 wireshark 捕获了近 2000 个数据包 而 scapy 只捕获了 500
  • 两个或多个 Android 设备之间的 WiFi 聊天

    我想开发一个聊天应用程序 使用 wifi 网络在两个或多个 Android 设备之间聊天 该应用程序应该能够相互发送或接收字符串 我有在pc和android之间使用蓝牙网络的经验 任何人都可以给我任何建议或正确的方向 提前致谢 您可以在两个

随机推荐

  • 强制 Internet Explorer 9 使用 IE 9 模式

    我正在使用 HTML5 文档类型 其顶部附近带有 X UA Compatible 元标记
  • 如何在 Swift 中将 Int 转换为 NSData?

    在 Objective C 中我使用以下代码 转换一个Int变量变为NSData 一个字节包 int myScore 0 NSData packet NSData dataWithBytes myScore length sizeof my
  • 如何从其余客户端推送通知以进行测试

    您好 我正在尝试将通知从其余客户端推送到 Android 应用程序 我正在做如下 URL https android googleapis com gcm send Method POST Headers Authorization my
  • Heroku (Docker) nginx 中的 PORT 环境变量

    我只需对 Dockerfile 进行一些修改 即可在 Heroku 上使用 nginx 运行它 Heroku 的特别之处在于 一切都以非 root 身份运行 第二个特定行为是使用来自 Heroku 本身的随机端口 并且无法修改 他们提供了
  • 序列输出的循环 - python

    我一直在努力寻找一种方法 将序列中的 6 聚体打印在单独的行上 这样 注意每行的间距 atgctagtcatc tgctag gctagt ctagtc tagtca etc 到目前为止 我已经能够在字符串中获取序列 如下所示 from B
  • 如何通过代码将Jupyter Notebook保存为HTML?

    我有一个 Jupyter Notebook 程序 它可以为我进行分析 运行后 我想将其保存为 HTML 以便稍后查看 然后我可以更改输入数据文件以对其他数据进行分析 通常 我手动执行此操作 这看起来像 但这对我来说感觉非常乏味 所以我想知道
  • 数据表 - 动态列

    我知道这个问题之前已经被问过 但我的变体与其他答案不匹配 我有一个这种形式的 json 数据源 columns title Store Number data StoreNbr title Store Name data StoreName
  • 如何添加和删除拉斐尔元素的发光?

    我正在尝试为拉斐尔元素设置悬停 以便当鼠标位于元素上时 它会发光 当鼠标离开时 发光会被移除 我已经弄清楚如何添加发光 但我在删除它时遇到了麻烦 我的脚本如下所示 document ready function var paper Raph
  • 如何找到现有数组的下一个数字索引?

    我正在寻找一种简单的方法来获取 PHP 也会选择的新元素的数组的下一个数字索引 示例1 array array array new index 对于这种情况 该值将为 0 示例 1a array array 100 gt prefill 1
  • 一种生成数据集中项目配对的所有可能方式的有效方法

    这在某种程度上是一个组合问题 我正在尝试找出一种有效的方法来配对数据集中的所有项目 例如 我有一个长度为 6 的数组 1 2 3 4 5 6 我想对数组中的内容进行所有可能的配对 如下所示 1 2 3 4 5 6 1 2 3 5 4 6 1
  • sql 按函数分组

    我只需要获取每个产品 ID 具有最高交易时间的行 所以在这种情况下 我需要获取第一行 并且所有其他带有productid 224的行都应该消失 我怎样才能解决这个问题 现在我按 NQ 进行分组 但有多行 因为 NQ 根据每笔交易而变化 我也
  • 如何在 Linux 中正确安装 gsl 库?

    我在安装 GNU Scientific Library gsl 时遇到问题 我将软件包放在桌面上 并根据包含的文档执行了 configure make 和 sudo make install 我检查了 usr local include 目
  • .NET 的未来版本是否支持 C# 中的元组?

    Net 3 5 不支持元组 太糟糕了 但不确定 net 的未来版本是否会支持元组 我刚刚从 MSDN 杂志上读到这篇文章 构建元组 http msdn microsoft com en us magazine dd942829 aspx 以
  • 遍历目录并检查文件的大小

    我想遍历目录和子目录 并检查每个文件的文件大小 如果它与定义的文件大小匹配 它将被删除 我知道 我必须使用 os walk 但我不太确定以哪种方式 我用于目录列表的代码是 import os path C Python27 i 0 for
  • 从两个表中获取数据?

    我有两张桌子 说出表 A 和表 B Table A id Article Name date 1 ABC 25 2 2011 2 xyz 26 2 2011 Table B id Comment Article id 1 good 1 2
  • 我可以在没有 MySQL 表的情况下将 CSS 值保存在我的 WordPress 主题中吗?

    我是 WordPress 主题开发的新手 我无法在这里或通过很多 Google foo 找到答案 所以我想知道这种情况是否可能 我正在为 Themetatic 编写一个子主题 我想为最终用户提供从主题控件中的对话框更改 CSS 颜色值和字体
  • VS2010:在构建后事件中我们可以有多个 if 吗?

    我们可以有这样的东西吗 if Debug ConfigurationName goto nocopy else if Release ConfigurationName del TargetPath config copy ProjectD
  • Lawnchair-IndexedDB 不支持多记录

    我尝试在索引数据库中创建多个记录 但它不允许我 例如耐克和阿迪达斯objectStores var nike Lawnchair adapter indexed db name stores record nike function e c
  • List l = new ArrayList() 和 List l = new ArrayList() 的区别[重复]

    这个问题在这里已经有答案了 以下两个声明有什么区别 List
  • 在监控模式下使用 libpcap 嗅探 wifi

    问题陈述 Calling pcap activate 结果是PCAP ERR RFMON NOTSUP错误 即不支持 RF 监控模式 Context 我正在编写一个小型 C 程序 其工作是在监视器模式下监听我的笔记本电脑的 wifi 卡 该