概述
自制NRF52832 USB Dangle蓝牙抓包器
- 硬件
- 主芯片NRF52832
- USB转串口芯片选高速稳定的CP2102, 因sniffer串口通信速率为460800,1000000
- 硬件连接:UART_TX->P0.06, UART_RX->P0.08, CTS->P0.05, RTS->P0.07.
- 原理图:
- 搭建环境
- 下载软件
需要下载软件包:nrf_sniffer_2.0.0-beta-3_12oct2018_1c2a221
Wireshark v2.4.6 or later.
python v2.7.x
- 文件介绍
nrfsniffer200beta312oct20181c2a221.zip解压后如下图所示:
Extcap Profile_nRF_Sniffer_v2_001 为wireshark组件, hex为sniffer固件,需要烧录到板子上。
- 软件安装与配置
注意安装步骤不要变,否则可能安装失败
- 安装wireshark:
双击Wireshark-win64-3.0.1.exe进行安装,一路next,选中下图桌面创建快捷方式:
如下图,选中USBPcap(可能是1.5.0.0)并进行安装:
剩下就是一路允许和接受,直到安装完毕,然后重启计算机。
- 配置wireshark环境:
打开wireshark->帮助->关于wireshark->文件夹->双击打开Extcap路径,如下所示:
双击Global Extcap path,解压nrfsniffer200beta312oct20181c2a221.zip文件,将里面的extcap文件夹里的四个文件复制到刚刚打开的这个wireshark的extcap路径下,如图所示为复制完毕的效果图:
然后双击wireshark里的个人配置的网址,在弹出的文件夹下打开profiles文件夹,然后将解压的nrfsniffer200beta312oct20181c2a221.zip文件中的Profile_nRF_Sniffer_v2_001文件夹拷贝到profiles文件夹中,如下图为拷贝完毕的效果图:
- 安装python:
双击python-2.7.16.amd64.msi进行安装,一路next,直到如下界面:
此处需要选择该项,即添加环境变量,然后一路next即可,直到安装完毕.
- 安装pyserial v3.4:
按下键盘的Windows键和R键调出运行,然后输入cmd后回车,则进入命令行界面(注意以管理员身份运行cmd),cmd窗口输入“pip --version”命令,查询python的pip版本,如下所示,则代表已经正常启动pip且版本号为18.1:
输入”python –m pip install –upgrade pip”命令,更新一下pip,如下所示则更新成功
Pip 版本号可能更高。
输入“cd C:Program FilesWiresharkextcap”命令,将cmd操作界面定位到“C:Program FilesWiresharkextcap”目录下,注意,这时wireshark安装目录的extcap目录,也就是刚刚我们往这里拷贝四个文件的地方,wireshark安装目录不同,此路径可能不同,请自行调整,如果切换不顺利,也可直接通过在C:Program FilesWiresharkextcap文件夹下按住shift按键的同时,鼠标右单机空白处,在弹出的菜单中选择“在此处打开命令窗口”来进行切换。切换目录后,输入“pip install -r requirements.txt”命令,则会自动启动pyserial v3.4的安装,也可能是更高的版本.
- 安装jlink.exe
在nrfsniffer200beta312oct20181c2a221.zip解压缩后的文件夹内有个JLink_Windows_V630b.exe,双击JLink_Windows_V630b.exe进行安装,一路next即可安装完毕
- 安装nrfgostudio
用来烧录程序用,双击nrfgostudio_win-64_1.21.2_installer.msi 安装
如果上述步骤都正确完成,电脑端的开发环境基本就搭建完毕了
- 烧录hex文件到NRF52832板子
我们以nrfgo studio为例进行说明:
如图所示,识别的开发板后,先erase all, 然后选择program application选项卡,然后选择对应的hex文件,然后点击program进行下载即可,比较简单
注意不同芯片对应不同hex。
NRF52832选sniffer_pca10040_1c2a221.hex
- 验证sniffer是否安装成功
上述准备完毕,再打开wireshark,则会出现nRF Sniffer字样的东西,如下图所示,则说明安装成功了,后面就可以使用此环境进行抓包了。如果未能安装成功,请仔细核对以上所有步骤是否有未操作正确的
在diy过程中出现在问题:
最开始是从淘宝上买了个NRF52832的USB Dangle,用来抓蓝牙广播包及数据包。厂家说支持二次开发,于是找厂家要了软件包,想着在板子刷了其它程序后,可以刷回来,继续当抓包器用。最开始的时候,电脑为WIN10 64位系统,环境的搭建也是按照厂家提供的手册来,已成功抓包。后来想着刷个别的程序,然后刷回来,看还能不能当抓包器用,结果发现在wireshark可以识别到抓包器,为这个界面:
心想着,以前每次都进到这个界面,能识别到抓包器,抓包都没问题,这次肯定能行,就没有继续进行抓包测试,其实此时虽然能识别,却并不能抓包了,我却混然不知。由于工作电脑C盘太小,电脑运行越来越卡,所以决定重装系统,资料备份,全盘格式化,硬盘重新分区。此时悲剧开始了。重装系统为WIN10 64位纯净版,还是按照手册配置环境,可以识别,准备抓包,结果LOG一直报错RROR: packet creation error。问客服,得到的答复是我的环境没搭好,他们用的固件也是官网下的。于是不断重新搭建环境,Python从2.7到3.7,wireshark从3.2.2到3.4.0,在虚拟机中装其它WIN10 64位系统,家里笔记本WIN7系统,从官网下载固件2.0到3.0。各种尝试,全部失败,永远是错误RROR: packet creation error。后面没有办法,不再折腾环境,查看C:Program FilesWiresharkextcap下面的python源码,发现wireshark能发现板子串口,通信波特率也对,数据的起始码及停止码都对,但是数据包的第3个协议版本号不对,正常应该是1或2,实际却根本不是。难怪一直报错(具体原因待分析)。于是怀疑是板子固件的问题。再次网上查找原因,发现别人用nrf_sniffer_2.0.0-beta-3_12oct2018_1c2a221这个版本的固件可以成功,于是从CSDN上下载到压缩包,按照他人的流程,再次搭建环境,重新烧录固件,结果成功识别,抓包成功了。
最后
以上就是激动小熊猫为你收集整理的自制NRF52832 USB Dangle蓝牙抓包器的全部内容,希望文章能够帮你解决自制NRF52832 USB Dangle蓝牙抓包器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复