使用 WinPcap 获取原始 WiFi 数据包

2023-12-04

考虑简单的 C 代码发送单个原始数据包与WinPcap。与构建数据包标头相关的行以以下注释开头:

/* 假设在以太网上,将 mac 目标设置为 1:1:1:1:1:1 */

因此,您可能会猜测,为了发送原始 WiFi 数据包,您应该相应地更改此代码块。

然而,这种情况并非如此。您可以发送原始 WiFi 数据包,而无需更改该代码的一行,只需填写正确的 MAC 地址即可。当捕获数据包,数据包将具有以太网标头,而不是 WiFi 标头。

经过一番搜索,这个问题似乎与 Windows 在将数据包传递到 WinPcap 时模拟“假以太网”有关。不幸的是我找不到更多关于它的细节。

第一期
这个“假以太网”是如何工作的?是否可以绕过它或禁用它?

第二期
是否可以完全控制 WiFi 标头? (即使这需要 WinPcap 之外的其他东西)


这个“假以太网”是如何工作的?

网络适​​配器本身向主机提供带有假以太网标头的数据包(将 802.11 MAC、LLC 和 SNAP 标头转换为以太网标头,对于某些数据包,LLC 标头可能后跟 SNAP 标头),或者驱动程序不这样做所以。

这只适用于数据框;在此模式下捕获时不显示管理和控制帧。 802.11报头的源MAC地址和目的MAC地址成为以太网报头中的源MAC地址和目的MAC地址; TA 和 RA 字段被丢弃,帧控制和报头中的其他字段也被丢弃。如果该帧具有 OUI 全零的 SNAP 标头,表示“PID 是以太网类型”,则 SNAP 标头中的 PID 将成为以太网标头的类型/长度字段中的值;否则,帧中数据的长度,包括 LLC 标头及其后面的所有内容(但不包括 FCS)将成为类型/长度字段中的值。第一种情况下 SNAP 标头之后的所有内容以及第二种情况下 MAC 标头之后的所有内容都将成为以太网有效负载。

是否可以绕过它或禁用它?

是的,但您必须在计算机上安装特殊软件。

某些形式的特殊软件有“Fedora”和“Ubuntu”等名称。不幸的是,当尝试在您的计算机上运行 Windows 应用程序时,它们可能会导致问题。 :-)

不幸的是,当你试图send数据包,试图做到这一点without用 Linux 替换 Windows 并不像安装 Microsoft 网络监视器并用它捕获流量那么容易。很遗憾,Microsoft 的“Native WiFi”的“网络监视器操作模式”文档说,在该模式下,“驱动程序无法自行发送数据包或通过调用其微型端口发送网络缓冲区列表也许有一些方法可以连接到 Wi-Fi 驱动程序,就像图中的某些用户模式框一样这一页这样做,但是,要找到它们,您可能必须从Microsoft 本机 802.11 无线 LAN 的顶级文档页面并一路向下。

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

使用 WinPcap 获取原始 WiFi 数据包 的相关文章

  • 不调用bind()的情况下监听()

    我尝试了以下方法 int sockfd socket listen sockfd 10 accept sockfd 没有一个调用失败 并且程序开始阻塞 就像我调用了bind 一样 在这种情况下会发生什么 由于没有本地地址或端口 是否永远无法
  • Linux 上使用 C/C++ 编写的简单原始套接字服务器

    我正在尝试使用原始套接字构建以太网 我无法使用 TCP IP UDP 或任何其他协议 这是因为它将与非常简单的硬件进行通信 这些硬件没有资源来处理所有不同的协议层 我的网络将由一台主机组成 通过以太网交换机与多个硬件进行通信 此时 我基本上
  • 无法通过 SSH 访问 Vagrant VM(不使用 vagrant ssh)

    在准备调整结构部署脚本以与本地 Vagrant VM 配合使用时 我试图说服 VM 让我通过 SSH 连接到它而不使用vagrant ssh 我不断收到错误 我尝试了很多不同的设置组合 但这是最新的 Vagrant 文件 Vagrant c
  • 将 Docker 容器连接到网络接口/设备而不是 IP 地址

    经过仔细的研究 测试和摆弄 我只能找到通过从 IP 端口转发来将 Docker 容器连接到给定接口的方法 这可以通过添加来完成 p Host IP Host Port Container Port to a docker run命令 我有一
  • 使用 QNetworkAccessManager 支持 https。运行时遇到 SslErrors

    我正在使用 QNetworkAccessManager 执行 https get 操作 我在运行时遇到 SSLErrors 经过一段时间的研究 我能够在安装 OpenSSL 后运行我的程序 我需要两个 dll libeay32 dll 和
  • 为什么我无法发送这个IP数据包?

    我正在尝试使用 C 发送 IP 数据包 destAddress IPAddress Parse 192 168 0 198 destPort 80 Create a raw socket to send this packet rawSoc
  • unix select() 调用:如何组合 fd_sets?

    我正在用 C 语言为 Linux 编写一个应用程序 它使用 2 个独立的第三方库 这两个库都是异步的并使用 select 他们还提供了一个 API 可以返回他们等待的文件描述符 我的目的是将它们传递给我自己的 select 然后在设置了自己
  • 关于如何将 JSON 消息转换为 ASN.1 的想法

    我正在尝试将 JSON 消息转换为 ASN 1 我的目标是将 JSON 从wire shark 捕获 转换为 ASN 1 然后将 asn1 转换为 802 11p 我应该研究哪些想法或资源 我正在使用Python 3 7 您可以使用此工具将
  • 如何从服务器中的客户端池中识别客户端 - 设计

    好的 我正在使用一个客户端 服务器库 服务器可以接受来自客户端的多个连接 每次调用 Accept 时 如果成功 客户端套接字的句柄就会被推送到映射 并以假定的唯一 ID 作为键 这样当服务器稍后想要向特定客户端发送消息时 它就会使用该 ID
  • 两个或多个 Android 设备之间的 WiFi 聊天

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

    在 Python 中 确定 IP 地址 例如 127 0 0 1 or 10 98 76 6 是在专用网络 http en wikipedia org wiki Private network 代码听起来并不难写 但可能存在比立即显而易见的
  • C - 如何正确使用 OpenSSL 的 BIO_write()

    我是 OpenSSL 新手 我知道 BIO write BIO b const void buf int len 需要在循环中调用 但我不完全确定我是否正确使用它 我写了一个这样的函数 int32 t SendPacket BIO cons
  • 使用 igraph 将边缘属性显示为标签

    我在 R 中使用 igraph 进行网络分析 我想在图中的每条线上显示边缘属性 下面是一个例子 df lt data frame a c 0 1 2 3 4 b c 3 4 5 6 7 nod lt data frame node c 0
  • Android wifi的信号强度[重复]

    这个问题在这里已经有答案了 可能的重复 Android 如何监控WiFi信号强度 https stackoverflow com questions 1206891 android how to monitor wifi signal st
  • 如何在 iOS 应用程序中检测所有可用的 Wifi 网络并连接到其中之一

    在我的 iOS 应用程序中 我想检测所有可用的 wifi 网络 然后从列表中选择一个网络并连接到它 目标是不打开应用程序内置的设置来连接 Wi Fi 而是在我的应用程序中完成这一切 首先 这可能吗 如果可能的话 请指出要使用哪些框架和方法
  • C 语言中的套接字如何工作?

    我对 C 中的套接字编程有点困惑 You create a socket bind it to an interface and an IP address and get it to listen I found a couple of
  • Captive Wifi 弹出窗口:单击链接打开 Safari

    我们的 iOS 设备 ipad iphone 等 网络出现问题 连接到 SSID 后 iphone ipad 立即打开强制网络助手 CNA 它就像一个缩小版的浏览器 没有导航按钮等 显示我们的欢迎页面 准备好让用户在网络中验证他的 MAC
  • 套接字编程-listen() 和accept() 有什么区别?

    我一直在读本教程 http www cs rpi edu moorthy Courses os98 Pgms socket html了解套接字编程 看来listen and accept 系统调用都做同样的事情 即阻塞并等待客户端连接到使用
  • 如何用 C 语言通过 HTTP 协议发送图像?

    我是一名正在做网络服务器练习的学生 我需要一些帮助 我的网络服务器在文本页面上运行良好 但是每当浏览器发送一个 GET img jpg HTTP 1 1请求 我不知道如何处理 我听说 HTTP 协议是基于文本的 那么如何在 HTTP 响应中
  • windows下用nodejs抓包

    node js v0 8 0 XP WIN7 不是 Cygwin 谷歌并找到node pcap https github com mranney node pcap https github com mranney node pcap 但它

随机推荐

  • C# 中 const 和 readonly 有什么区别?

    有什么区别const and readonly in C 你什么时候会使用其中一种而不是另一种 除了明显的差异之外 必须在定义时声明值const VS readonly值可以动态计算 但需要在构造函数退出之前分配 之后它被冻结 const是
  • stWSO2ESB 输出序列处理

    我正在 WSO2ESB 中通过 XSLT 将 XML 请求转换为 SOAP 只是想知道是否可以使请求参数可用于响应 E g
  • 读取 oleObject 文件的代码[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我从 Word DOCX 文档 oleObject1 bin 等 中提取了许多 OleObject 文件 是否有开源代码 主要是 Java 来读取此
  • ggplot2 中的交错轴标签

    我想错开我的 x 轴标签ggplot2 令人惊讶的是 我尝试的方法有效 感谢 Hadley 和一致的语法 c lt ggplot mtcars aes factor cyl c lt c geom bar c theme axis text
  • 如何在 Blazor Server + ASP.NET Core API + SignalR 项目中管理客户端连接

    我正在使用 ASP NET Core API 通过 SignalR 连接开发 Blazor 服务器应用程序 以将实时更新从服务器发送到客户端 但是 我在管理用户连接时遇到问题 的独特性问题是用户在浏览器中打开的每个选项卡都代表 Signal
  • BigQuery 中的新 PIVOT 功能

    今天 BigQuery 发布了一个新的很酷的函数 名为PIVOT 下面是它的工作原理 with Produce AS SELECT Kale as product 51 as sales Q1 as quarter UNION ALL SE
  • 如何在特定文件夹(ZIP 中)中添加文件

    以下代码说明了如何使用 java 将文件添加到 zip 中 String source C Users XXXXX Desktop Helicopter zip try ZipFile zipFile new ZipFile source
  • MVC/JQuery 验证不接受逗号作为小数点分隔符

    更新 07 01 2018 尽管有人建议这是一个 jQuery 问题而不是 MS ASP MVC 问题 但我认为这是一个 MVC 问题 我已经在 asp net core 2 0 MVC 中创建了整个应用程序 但错误仍然存 在 对我来说 将
  • RichTextBox从文本中删除转义字符

    在将文本添加到 RichTextBox 中的 RTF 属性之前 我对文本进行了一些处理 添加转义字符 然后将数据划分为多行 文字是 第 1 行 n u001aline2 n u001aline3 n u001aline4 当我将 VS 20
  • initContainers 和 Kubernetes 中容器的区别

    我注意到在部署文件中有两个容器字段 例如initContainers and containers对我来说看起来很困惑 我通过互联网搜索但无法理解 谁能告诉我两者之间的区别initContainers and containers以及我们如
  • OAuth2 登录后 Facebook 获取个人资料链接

    我通过 Facebook 社交网络为网站上的用户使用 OAuth2 登录 登录后是否仍然可以获取特定用户的 Facebook 个人资料 URL 例如通过accessToken 或者 Facebook 现在隐藏这些信息 在发生数据泄露事件之后
  • 为什么 imshow 的范围参数会翻转我的图像?

    import matplotlib pyplot as plt import numpy as np n 16 im np eye n fig plt figure ax fig add subplot 121 ax imshow im a
  • 为什么会调用 OnlyOnCanceled 延续?

    打电话时await RunAsync 在下面的代码中 我希望继续TaskContinuationOptions OnlyRanToCompletion继续运行 但是OnlyOnCanceled继续被调用 产生调试输出 任务已取消 Why p
  • 我可以使用 Homebrew 安装最新的 AWS EB CLI 吗?

    自制似乎正在安装 an 旧版本 不支持 of the AWS 电子银行工具 有没有办法让 Homebrew 安装当前的版本 我是自制软件的新手 Homebrew 依靠志愿者来更新配方 如果您发现过时的公式 请提交错误或拉取请求
  • jquery post codeigniter 验证

    我们使用 jquery 将表单 load 到 div 中 然后我们使用 jquery post 将该形式发送到 codeigniter 控制器 即 app post 然后我们希望 Codeigniter 执行验证 但不确定如何返回页面以显示
  • 为什么积压已满时 ServerSocket 连接不会被拒绝?

    无私的好奇心 在 Java 中 我监听一个套接字 积压为 1 ServerSocket ss new ServerSocket 4000 1 我在壳里跑 netcat localhost 4000 很多次 到目前为止 5 次 连接永远不会被
  • 如何检索必须在另一个线程上计算的值

    在许多情况下 线程 A 需要一个必须在线程 B 上计算的值 最常见的是 B EDT 考虑以下示例 String host SwingUtilities invokeAndWait new Runnable public void run h
  • 如何在 pyomo 中将积分定义为目标函数?

    我希望能够定义一个积分pyomo作为目标函数的一部分 我无法弄清楚积分需要什么样的表达式 这是我最好的猜测 model ConcreteModel model t ContinuousSet bounds 0 1 model y Var m
  • Java GIF 动画无法正确重画

    我正在尝试为 GIF 图像制作动画 动画可以 但画得不好 It shows like this non animated screenshot In the image the tail wags like this 正如您所看到的 图像重
  • 使用 WinPcap 获取原始 WiFi 数据包

    考虑简单的 C 代码发送单个原始数据包与WinPcap 与构建数据包标头相关的行以以下注释开头 假设在以太网上 将 mac 目标设置为 1 1 1 1 1 1 因此 您可能会猜测 为了发送原始 WiFi 数据包 您应该相应地更改此代码块 然