nRF52840 制作BLE Sniffer(蓝牙嗅探器)

本文详细指导了如何在Windows10系统上利用Wireshark和Python工具,配合nRF52840Dongle,烧录bootloader并安装BLESniffer插件,用于蓝牙LE数据捕获。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件

硬件

    带有usb接口的nrf52840板卡,例如:

  • nRF52840 Dongle (PCA10059)

烧录工具

  • Jlink

开始制作:

一、固件烧录:

1、电脑上安装nRF Connect for Desktop。安装过程中,提示的Jlink驱动、nrf-command-line-tools等都装上。

2、用Jlink的SWD接口连接nRF52840板卡,打开nRF Connect for Desktop软件,安装Programmer工具。打开Programmer,左上角点击SELECT DEVICE,选择JLINK,连接成功后会识别到nRF52840芯片,添加open_bootloader_usb_mbr_pca10059_debug.hex文件,点击Erase&Write,烧录bootloader,如下图

3、拔掉Jlink,将nRF52840 Dongle插到电脑USB,重新选择SELCET DEVICE,识别到Open DFU Bootloader设备,证明bootloader烧录成功,如下图。

4、添加sniffer_nrf52840dongle_nrf52840_4.1.1.hex文件,点击Write,BLE Sniffer硬件制作完成。

二、Wireshark添加BLE Sniffer插件

1、下载并安装Wireshark

     下载并安装Python v3.6以上版本

     下载nRF Sniffer for Bluetooth LE 插件 v4.x 以上版本

2、安装BLE Sniffer捕获工具

  2.1 解压nRF Sniffer for Bluetooth LE到任一文件夹(例如:D盘下的nrf_sniffer_for_bluetooth_le文件夹),在nrf_sniffer_for_bluetooth_le\extcap文件夹中打开一个命令窗口。
  2.2 安装Python依赖项:在命令行输入指令:py -3 -m pip install -r requirements.txt

  2.3 添加BLE Sniffer到Wireshark中:打开Wireshark,菜单栏 帮助->关于 Wireshark->文件夹 双击Personal Extcap path,打开该文件夹以后复制nrf_sniffer_for_bluetooth_le\extcap中的内容到该文件夹下。

  2.4 使能 BLE Sniffer:重启Wireshark,菜单栏 视图->接口工具栏->nRF Sniffer for Bluetooth LE打勾。

  2.5 F5刷新,BLE Sniffer出现。双击它开始使用吧。

### 关于nRF52840嗅探器的设置与使用 #### 硬件准备 为了正确设置并使用nRF52840作为蓝牙嗅探器,需要确保拥有支持该功能的硬件设备。通常情况下,推荐使用的开发板为nRF52 DK或nRFPi Dongle,这些设备内置了必要的射频模块来捕获BLE通信数据[^1]。 #### 软件环境搭建 ##### Wireshark 安装与配置 Wireshark 是一款强大的网络协议分析工具,在配合特定插件的情况下也可以用于解析 BLE 数据流。以下是具体操作步骤: - **下载并安装最新版本的 Wireshark** 用户可以从官方网站获取适用于不同平台的操作程序,并完成基础安装过程。 - **Python 依赖项管理** 部分扩展功能可能依赖 Python 编写的脚本执行辅助任务。因此需确认目标机器已预置兼容版解释器及其关联库文件^。 ```bash pip install --upgrade pip setuptools wheel pip install pyserial==3.5 ``` - **集成 Nordic 提供的专用解码组件至 Wireshark 插件路径下** 将 `nRF Sniffer for Bluetooth LE` 解压后的目录复制到本地 Wireshark 应用对应的 plugins 文件夹位置^。 - **验证 nRF Sniffer 是否可独立启动** 双击桌面快捷方式或者命令提示符输入对应指令检查其图形界面能否正常加载显示[^1]^。 ```cmd C:\path\to\nrf_sniffer.exe ``` - **激活 Wireshark 中的 nRF Sniffer 功能选项卡** 打开应用程序后转至菜单栏下的 *Capture* -> *Options...*, 在 Interface 下拉列表里应该能看到新增加的一项代表通过 USB 连接上的 dongle 设备名称[^1]^。 #### 测试流程概述 当以上准备工作全部完成后即可进入实际演练环节: - 启动之前提到过的两个主要应用实例; - 设置过滤条件仅关注感兴趣的地址范围和服务 UUID 值等内容; - 开始记录一段时间内的交互详情以便后续深入研究分析^。 --- ### 示例代码片段展示如何利用 python 实现自动化控制部分参数调整工作 如果希望进一步简化日常重复劳动量,则可以通过编写简单的脚本来达到目的如下所示例子演示了修改默认监听频道的方法之一: ```python import serial def set_channel(ser, channel_number): ser.write(f'channel {channel_number}\r'.encode()) if __name__ == "__main__": with serial.Serial('COMX', baudrate=115200, timeout=1) as ser: try: desired_channel = int(input("Enter the target BLE advertising channel (37, 38 or 39): ")) if not (desired_channel >= 37 and desired_channel <= 39): raise ValueError set_channel(ser, desired_channel) response = ser.readline().decode().strip() print(response) except Exception as e: print(f"An error occurred: {e}") ``` > 注意替换 COMX 成真实串口号前缀!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值