使用 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 数据包 的相关文章

  • 启用/禁用 Microsoft 虚拟 WiFi 微型端口

    我禁用了我的Microsoft Virtual WiFi Miniport网络适 配器来自Control Panel Network and Internet Network Connections 只需右键单击微型端口网卡并单击 禁用 它
  • 使用 python scapy 发送 DHCP Discover

    我是Python新手 正在学习一些网络编程 我希望通过我的tap接口向我的DHCP服务器发送一个DHCP数据包 并期待它的一些响应 我尝试了几种数据包构建技术 例如 structs 和 ctypes 最终使用 scapy 在这里 我能够发送
  • C# NetworkStream - 在读取时区分关闭套接字和 0 字节数组

    已解决 该问题基于错误的假设 在使用 TCP 时 我遇到了 NetworkStream Read 在两种不同情况下返回值 0 的问题 我很难区分 一些背景知识 我有一个有效的客户端 服务器解决方案 使用长度前缀消息通过 TCP 进行通信 然
  • AlamoFire 在后台会话中下载

    我在新应用程序中使用 Alamofire 基于 Alamofire 的下载管理器示例 我需要一些有关使用后台会话下载文件的说明 我需要重写 SessionDelegate 才能使其正常工作吗 要不就backgroundCompletionH
  • Java RMI 资源

    我目前正在进行一个涉及广泛使用 Java RMI 的项目 我想知道是否有人知道有关它的任何好的资源 我目前找到的材料所遇到的问题是它通常已经过时 如 Java 1 3 和 或半完整 我什至很乐意买一本关于它的书 但在亚马逊上看 所有的书都已
  • Linux 上使用 C/C++ 编写的简单原始套接字服务器

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

    我正在尝试使用 C 发送 IP 数据包 destAddress IPAddress Parse 192 168 0 198 destPort 80 Create a raw socket to send this packet rawSoc
  • Delphi 中的 Web 服务超时错误

    我有一个发出 SOAP 请求的客户端应用程序 我已将超时设置为 20 分钟 但是 有时我会看到 10 秒后发生超时错误 我的代码中有以下内容 RIO HTTPWebNode ReceiveTimeout 1200000 我需要设置Conne
  • boost:asio IPv4 地址和 UDP 通信

    问题已解决 请参阅底部的解决方案说明 我正在尝试构建一个简单的应用程序来测试支持以太网的微控制器 我想做的就是发送和接收小 UDP 数据包 该代码使用 boost asio 进行网络连接 并且非常简单 为了调试 我将所有初始化移出构造函数
  • 关于如何将 JSON 消息转换为 ASN.1 的想法

    我正在尝试将 JSON 消息转换为 ASN 1 我的目标是将 JSON 从wire shark 捕获 转换为 ASN 1 然后将 asn1 转换为 802 11p 我应该研究哪些想法或资源 我正在使用Python 3 7 您可以使用此工具将
  • 是否可以在不使用 WMI 的情况下获取网络适配器的 PnPDeviceId?

    我一直在尝试使用 p invoke setupapi 调用获取给定网络适配器的 PnPDeviceId 但没有成功 我不情愿地决定使用 WMI 如下所示 public static string GetPnpDeviceId string
  • 如何通过RAW套接字发送修改后的IPv6数据包?

    我正在尝试通过 C Linux 中的 RAW 套接字发送自定义 IPv6 标头 我已经使用 IP HDRINCL 套接字选项在 IPv4 中取得了成功 但是 IPv6 没有等效的选项 我找到了解决方法here http lists open
  • 两个或多个 Android 设备之间的 WiFi 聊天

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

    这个库对于获取 cpu ram 和其他人员来说非常棒 但是 我不知道如何获得网络速度 这意味着 在一段时间内发送和接收了多少数据 有办法给我这些数据吗 这可能是我正在寻找的东西吗 Tcp stat sigar getTcp stat get
  • Flutter IOS 使用连接或 wifi 插件读取 wifi 名称

    这个问题是类似的这个问题 https stackoverflow com questions 52498906 how to get the wifi namessid of the currently connected wifi in
  • 如何打开实际上已关闭的 Wifi 适配器的无线电?

    我在用着托管无线网络 http managedwifi codeplex com获取我的 Wifi 适配器的无线电状态 如果收音机实际上已关闭 如何将其打开 像这样的东西 WlanClient wlanClient new WlanClie
  • 序列化是通过套接字发送数据的最佳选择吗?

    有人告诉我 序列化不是通过套接字发送数据的最佳方法 但他们说他们在一本书上读过一次 并且不确定更好的方法 因为他们以前没有真正做过网络 那么序列化是最好的方法还是有更好的方法 如果这有很大的不同的话 这也是一个游戏 通过搜索有关通过它发送对
  • Android - 连接到已知的隐藏 Wi-Fi 网络

    我需要以编程方式连接到隐藏的 Wi Fi 网络 我知道它的 SSID 安全类型和密码 由于某种原因我无法连接它 如果没有隐藏 我可以连接到同一网络 这是我的代码 configure the network private void save
  • 什么是 SO_SNDBUF 和 SO_RCVBUF

    你能解释一下到底是什么吗SO SNDBUF and SO RCVBUF选项 好的 出于某种原因 操作系统缓冲传出 传入数据 但我想澄清这个主题 他们的角色 通 常 是什么 它们是每个套接字的缓冲区吗 传输层的缓冲区 例如 TCP 缓冲区 和
  • 有没有一种简单的方法可以在 R 的 igraph 中按度数对网络节点进行着色?

    使用igraphR 包 我想按度数对网络节点进行着色 颜色应代表渐变 例如从蓝色到红色 或从黄色到红色 从网络中观察到的最低程度到最高程度 我找到了一个可行的解决方案 https stackoverflow com questions 40

随机推荐

  • 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 数据包 您应该相应地更改此代码块 然