分析蓝牙低功耗流量

2023-11-24

在尝试研究 BLE 时,我想知道是否可以通过 Wireshark 和 snort 等工具对其进行分析?我遇到过一个名为“ubertooth”的 USB 设备,我们需要购买该设备才能在 BLE 框架上执行 DPI,对吧?是否可以在 Wireshark 上捕获和分析 BLE 帧?


是的,可以使用wireshark来分析BLE数据包,但您将需要额外的硬件。嗅探连接需要来自蓝牙芯片组内部实现的基带层的支持。您计算机内部芯片组的软件不支持嗅探,因此您需要另一个可以控制其软件的芯片组。

我用nRF51 加密狗,这是 nRF51 的开发套件,nRF51 是 Nordic Semi 的 BLE + Cortex M0 SoC。 Nordic 为该板提供了固件,可将其变成嗅探器。他们还为 Windows 提供了一个应用程序,该应用程序通过 USB 与该固件进行通信以取回嗅探数据,并以 Wireshark 可以理解的方式对其进行格式化。

如果您使用的是 Windows,则可以使用Nordic 在本页提供的工具,然后按照用户指南中的说明进行操作。

编辑2018-10:Nordic 已经发布了 Mac 和 Linux 应用程序的测试版来支持他们的嗅探器,因此本文的其余部分不再是必要的了。你可以在这里下载新工具.

然后,一旦一切正常并且您将数据包通过管道传输到 Wireshark,您就可以使用所有出色的 Wireshark 内置蓝牙和 BLE 过滤器:btatt, btl2cap, btle,...


原帖

如果您像我一样使用 Mac,则需要:

  • RKNRFGO对自定义固件进行编程
  • nrf ble 嗅探器 osx与其通信并将数据包通过管道传送到 Wireshark。

The nrf-ble-sniffer-osx 维基解释了如何设置它。感谢 Roland King 制作了这些工具。

Mac 设置的两个重要注意事项:

  • 在 nrf-ble-sniffer-osx 之前安装 Wireshark。这是因为 nrf-ble-sniffer-osx 需要为 Wireshark 安装一些额外的过滤器,以便它可以解码 Nordic 固件添加到数据包中的标头,如果之后安装了 Wireshark,则不会这样做。
  • 使用 Wireshark 版本 1.12。在撰写本文时,没有较新的版本适用于此设置。是的,这意味着您必须使用 XQuartz。

如果你使用的是 Linux,看来也可以使用这个加密狗,但我没试过。

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

分析蓝牙低功耗流量 的相关文章

  • 在 Android 上同时与多个 BLE 设备进行稳健通信

    尽管没有记录 但使用 Android BLE api 的传统观点是 某些操作 例如读 写特性和描述符 应该一次完成一个 尽管某些设备比其他设备更宽松 但是 我不清楚此策略是否应仅适用于单个连接 还是适用于所有活动连接 我听说最好一次启动与一
  • 用于 BLE 的 BluezV5.42 DBUS C API?

    我开发了 BLE 应用程序openwrt using BLUEZV5 30 我能够通过提取源代码来创建应用程序gatttool and hcitool 我还添加了这些工具提供的更多功能 例如阅读rssi 不过 我已经升级了我的bluez堆叠
  • 使用 PyParsing 解析 Snort 日志

    使用 pyparsing 模块解析 Snort 日志时遇到问题 问题在于分离 Snort 日志 它有多行条目 由空行分隔 并让 pyparsing 将每个条目解析为一个整体块 而不是逐行读取并期望语法适用于每一行 显然 它不是 我尝试将每个
  • iBeacons 的三角测量示例

    我正在研究使用多个 iBeacons 进行 粗略 室内定位的可能性 该应用程序是一种 博物馆 设置 能够更容易地形成一个包含不同对象位置的网格 然后形成单独的信标 尽管这也不是不可能的 是否有使用多个信标对某种位置进行三角测量的示例 经验
  • 使用wireshark或其他工具绘制RTT直方图

    我有一个小型办公室网络 但我遇到了巨大的互联网链接延迟 我们有一个简单的网络拓扑 一台配置为运行 ubuntu 服务器 10 10 的路由器的计算机 2 个网卡 一个连接互联网 另一个连接办公室网络 和一个连接 20 台计算机的交换机 我在
  • Android:BLE如何读取多个Characteristic?

    用于读取某些特征的 Android BLE API 方法本质上是异步的 当您请求某些值时 将调用您的 GATT 回调方法 如果您请求多个读取特征值 它只会丢弃其他值 直到它不满足第一个请求为止 如果有人知道我们应该采用哪种设计模式来解决这个
  • bluez 同时具有经典和低能耗设备

    Linux下的bluez是否可以同时连接多个经典和低能耗设备 bluez 网站提供这样的信息不是很有帮助 是的 我已经成功同时连接到 7 个低能耗设备 最大值因您使用的硬件而异 您还可以连接到多个经典设备 以下是我用于通过 L2CAP 连接
  • 如何让一个特性既可以读又可以写?

    我知道一个特征只能有一个属性和一个权限 并且该属性必须与权限具有相同的值 例如如果特征具有写入权限 则它必须具有可写的属性 那么如何使特征可读且可写 e g 怎么转这个 int permission BluetoothGattCharact
  • 在 Android BLE 中处理指示而不是通知

    使用蓝牙 SIG 应用加速器代码 它很好地演示了蓝牙低功耗的不同概念 然而 它没有提到与通知相反的指示 我知道与通知不同 需要确认指示 并且在代码中我会这样做byte val enabled BluetoothGattDescriptor
  • Electron Web 蓝牙 API requestDevice() 错误

    我正在尝试开发一个与蓝牙低功耗设备通信的应用程序 我使用 Web Bluetooth API 建立了一个工作 网站 一切正常 所以我使用 Electron 框架来构建一个应用程序 这个问题是已知的 如果你开始navigator blueto
  • 捕获文件似乎在数据包中间被缩短 - 如何防止此错误?

    在我的应用程序中 我打开 Tshark 进程并开始捕获 当我想完成捕获时 我会终止 Tshark 进程 因此有时捕获文件已损坏 当我尝试打开此文件时 我收到错误捕获文件似乎在数据包中间被剪短 如何防止此错误有没有更好的方法来关闭 Tshar
  • Scapy 和 rdpcap 函数

    我在用着rdpcapScapy 的函数读取 PCAP 文件 我还使用中描述的模块Scapy 中 HTTP 支持的链接 http blog sbarbeau fr 2011 06 http support in scapy html在我的例子
  • 扫描大量BLE标签

    我一直在寻找在一次扫描中扫描大量 BLE 标签 StickNFind 的可能性 我注意到 当我扫描 10 秒时 我可以轻松检测到大约 20 个 BLE 当我将扫描间隔增加到 30 秒左右并尝试扫描大量 BLE 标签时 例如200 个标签 我
  • Android BLE API:未收到 GATT 通知

    用于测试的设备 Nexus 4 Android 4 3 连接工作正常 但onCharacteristicChanged我的回调方法从未被调用 但是我正在使用注册通知setCharacteristicNotification char tru
  • 使用 setcap 功能运行时 JLI_InitArgProcessing 的 Java“符号查找错误”

    我们在服务器上安装了 Java 11 旨在监视网络接口的流量 初始安装后 yum install java 11 openjdk devel x86 64 the java命令对两者都适用root and a 普通用户 但是 我们的 Jav
  • Android BLE - 如何分块读取大特征值(使用偏移量)?

    我正在使用 Android SDKandroid 蓝牙 and android 蓝牙 le APIs 我想实现一个应用程序 发挥核心作用 并连接到 BLE 外设以读取特征值和描述符 应用程序需要读取的特征值较大 因此需要分块连续读取 我对如
  • 标准和定制 GATT 特征

    我正在为 Android 手机和 Android 手表 wearOS 编写应用程序 这些应用程序将通过蓝牙相互通信 基本上Android手机上的应用程序将与WearOS设备绑定 然后与WearOS上的应用程序通信以启动指定功能 获取电池信息
  • 从 WP8 连接至 Polar H7 心率监测器

    有没有办法从 Windows Phone 8 连接到低功耗蓝牙设备 例如心率监测器 例如 Polar H7 我尝试过的一些背景 我看过这个 Windows 8 的示例 http code msdn microsoft com windows
  • iOS CoreBluetooth:状态保存和恢复

    希望在这里得到一些意见 在我当前的 iOS 项目中 我使用 CoreBluetooth 和 swift 该应用程序可以在后台使用 CoreBluetooth 进行通信 这基本上可以工作 外设需要与 iOS 设备建立有效连接才能按预期工作 每
  • 如何找出数据包的HTTP头长度?

    我知道如何手动执行此操作 通过查看十六进制转储 我怎样才能自动获得相同的信息 我必须使用 API 吗 我有wireshark 和Microsoft 网络监视器 这可以通过简单地实现Lua解析器 http wiki wireshark org

随机推荐

  • OpenSSL:无法在 VC++ 2010 中构建

    我已经下载了最新的OpenSSL源码包 我想用 VC 2010 x64 构建它 按照说明操作似乎不起作用 配置步骤看起来不错 但是 C 1 gt ms do win64a bat C 1 gt perl util mkfiles pl 1
  • 使用 SymPy 将符号表达式转换为 Python 函数

    我有一个相当大的符号函数 它针对循环中参数的不同值进行评估 在每次迭代中 在找到函数的表达式后 导出偏导数 像这样的东西 from sympy import diff symbols exp def lagrange eqs a x y z
  • 如何使用 EV SHA2 证书对 ClickOnce 部署进行身份验证并避免“未知发布者”

    通过 Visual Studio 的项目 签名 设置页面对我的 ClickOnce 部署进行签名时 我指定了 SHA2 SHA256 EV Authenticode 证书并发布 发布并尝试运行引导程序 setup exe 后 我会在 Cli
  • 为什么我的观察者会因同一个更改而被调用两次?

    我有一个 AngularJS 1 4 应用程序在本地运行 尚未 该应用程序由 Laravel 5 1 后端 RESTFul API 提供服务 我必须制作这个代表打包旅行的应用程序 一个包裹由天组成 范围从0天到N天 每天都有一个服务列表 范
  • 函数calculate.overlap的输出顺序

    我正在 R 包 VennDiagram 中使用 calculate overlap 函数 我比较了四组数据如下 library VennDiagram overlap calculate overlap x list 1 1 2 2 3 3
  • 通过 script 标签加载外部 javascript

    我正在尝试使用脚本标记动态加载脚本 但我做不到 我的渲染方法如下 render div a href http www authorize net target blank Working Yipee a div 我尝试使用angerous
  • 如何扩展/膨胀 numpy 数组?

    我正在执行图像分析并以布尔值的形式生成种子array import numpy as np Example output array a np array False False False False True False False F
  • 布尔恒等 == True 与 is True

    这是使用的标准约定if foo is None而不是if foo None测试一个值是否是特定的None 如果你想确定一个值是否精确True 不仅仅是一个类似真实的值 有什么理由使用if foo True而不是if foo is True
  • 如何在C#中对数组列表的元素进行排序

    我有一个 ArrayList 其中包含 0 1 1 10 2 2 3 15 4 17 5 5 6 6 7 27 8 8 9 9 现在我需要对数组列表进行排序 使其变为 0 1 1 2 2 5 3 6 4 8 5 9 6 10 7 15 8
  • 如何在 flutter 应用程序中实现 reCaptcha

    我正在尝试在我的 flutter 应用程序中实现 reCaptcha 功能 但在验证码注册中 我需要提供一个域 而我没有用于移动应用程序的域 我浏览过一些指导如何在移动应用程序中实现 reCaptcha 的指南 但这些指南使用包名称而不是域
  • 添加非mvc路由时Html.ActionLink构造错误链接

    我这里有一个混合了 webform 和 mvc 的应用程序 我指定路由如下 routes Add AspxRoute new Route Upload New new WebFormRouteHandler
  • 给定时间内的 Cron 作业和随机时间

    我需要能够每天在完全随机的时间运行 PHP 脚本 20 次 我还希望它仅在上午 9 点至晚上 11 点之间运行 我熟悉在 Linux 中创建 cron 作业 如何在上午 9 点到晚上 11 点之间每天随机执行 20 次定时任务 这在 cro
  • 防止 UIAlertView 关闭

    作为一种验证形式 有什么方法可以防止按下 确定 按钮时警报视图消失 场景 我在警报视图中有 2 个用于用户名 密码的文本字段 如果两者都是空并且用户按 确定 我不希望警报被解除 iOS 5 引入了一个新属性UIAlertView来准确处理这
  • 从哪里开始使用 CPanel 托管在 PHP 中运行命令行

    我正在查看一些 PayPal 脚本 代码示例 其中很多需要通过命令行运行的 php 脚本 我以前从未在 PHP 中从命令行运行过任何东西 所以根本不知道从哪里开始 我不知道我是否使用了正确的搜索词 因为谷歌没有帮助我回答 我是否需要使用不同
  • 如何安全地读取不受信任的 Clojure 代码(不仅仅是一些序列化数据)?

    def evil code str slurp mnt src git clj clojure src clj clojure core clj def r read string evil code 有效 但不安全 def r cloju
  • 为已安装的 Rails 引擎设置 default_url_options

    使用 Rails 3 2 13 和 spree 2 0 2我遇到过类似的问题动态范围内的导轨安装式发动机 我的路线 scope locale locale en jp do mount Spree Core Engine at store
  • 推送或弹出时应用程序在 ios 8 上冻结

    我的应用程序有一个大问题 主要是在 iOS 8 上 因为我们在其他 iOS 版本上没有发现这一点 当推送到新的视图控制器或弹出到以前的视图控制器时 它有时会冻结 但奇怪的是 如果您按主页按钮并从后台启动应用程序 它会运行一点 这里我的意思是
  • 如何正确处理 R 中的转义 Unicode 字符破折号 (—)

    我在处理 R 中转义的 unicode 字符时遇到问题 特别是从 MediaWiki API 获取信息时遇到的问题 我会找到一个 JSON 字符串 例如 query categorymembers ns 0 title Banach u20
  • 有哪些 iPhone 推送通知服务? (托管服务,而不是 APNS)[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 在处理 Apple 的推送
  • 分析蓝牙低功耗流量

    在尝试研究 BLE 时 我想知道是否可以通过 Wireshark 和 snort 等工具对其进行分析 我遇到过一个名为 ubertooth 的 USB 设备 我们需要购买该设备才能在 BLE 框架上执行 DPI 对吧 是否可以在 Wires