使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)

硬件准备:

1)nRF52840 Dongle
2)待抓包的蓝牙设备

软件准备:

1)Python
2)Wireshark
3)nRF Sniffer for Bluetooth LE

Python安装

需要注意的是下载的nRF Sniffer for Bluetooth LE版本是否和python版本匹配。因为nRF Sniffer for Bluetooth LE从3.0.0版本之后就不再支持python2了。
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第1张图片
如果电脑上已经安装了python的话,使用cmd命令行工具键入pip list,如果提示如下:
pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1 字符: 1
说明没有这个组件。pip是后续安装Pyserial和Psutil必须要有的。那么需要把python的安装路径加入环境变量中。

我电脑上安装的是Python 2.7.4,加入环境变量还是不行,这个版本的python其他地方还要用。所以就直接安装高版本的python,安装的时候Optional Features界面中的pip要勾选,Advanced Options界面的Install for all users不要勾选,如果只安装一个版本的python,Install for all users要勾选上。

python安装完成后使用cmd命令行工具键入pip list(不管安装一个或两个版本的python版本都可以直接输入),出现如下提示,可以进行后续操作:
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第2张图片

Wireshark安装

安装wireshark的时候如果安装Npcap软件需要注意,在Installation Options界面的第二项不要选(红框标注这一项)
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第3张图片
如果勾选了之后,安装完成后会一直提示The helper program for “Admin-only Mode”

使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第4张图片

如果需要重装wireshark,需要先去把Npcap卸载了,然后再重装,否则重装的时候Npcap这个界面就不可选了。
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第5张图片

Pyserial和Psutil安装

使用cmd命令或者powershell命令将路径切换至下载的nRF Sniffer for Bluetooth LE下的extcap文件(路径里面可以有中文)。具体的安装命令可以参考nordic官方的nRF_Sniffer_BLE_UG_v4.1.x文件。
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第6张图片
如果安装了两个版本的python,高版本的安装时Install for all users没有勾选,那么就不能使用python -m pip install -r requirements.txt命令,否则使用的还是低版本的python,会报SNIMissingWarning和InsecurePlatformWarning警告,如下所示:
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第7张图片
那么直接用pip install -r requirements.txt命令进行安装,安装完成后如下:
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第8张图片
此时再使用pip list查询时,可以查到Pyserial和Psutil的版本
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第9张图片

Wireshark设置

1)打开wireshark,帮助→关于wireshark→文件夹。
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第10张图片

选择Global Extcap path下的路径打开文件夹,把下载的nRF Sniffer for Bluetooth LE下的extcap文件夹中内容全部复制过来。
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第11张图片
选择个人配置下的路径打开文件夹后进入profiles文件夹,把下载的nRF Sniffer for Bluetooth LE下的Profile_nRF_Sniffer_Bluetooth_LE文件夹复制过来。
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第12张图片
2)编辑→Configuration Profiles,选择Profile_nRF_Sniffer_Bluetooth_LE后点OK。
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第13张图片
完成后,右下角wireshark会有显示:
在这里插入图片描述

开始抓包

nRF52840 Dongle可以直接在网上买,一般买回来里面烧录的就是抓包的固件,可以直接使用,如果里面没有固件的话,可以自己使用jlink下载固件,下载时用的是hex文件(nRF Sniffer for Bluetooth LE下的hex文件夹)。
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第14张图片
插上Dongle后,捕获→刷新接口列表,找到对应的COM口后双击进入开始抓包。
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第15张图片
抓到广播包如下:
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第16张图片
抓包的时候会抓到很多设备的包,可以通过Source里面的地址找到对应的待抓包设备,然后在上方Device里面选择对应的设备,这样就会滤除无用的数据包,如果蓝牙名称是中文的话在Device里面不能正常显示,可以改成英文的名称,如果还是没有显示,重新打开wireshark软件后就可以在Device里面直接根据蓝牙名称直接找到对应的设备。
使用Nordic的nRF52840 Dongle配合Wireshark对蓝牙设备抓包(BLE)_第17张图片

你可能感兴趣的:(蓝牙,wireshark,python,BLE)