NRF52832-USB-Dangle-DIY笔记

自制NRF52832 USB Dangle蓝牙抓包器

  • 硬件
  1. 主芯片NRF52832
  2. USB转串口芯片选高速稳定的CP2102, 因sniffer串口通信速率为460800,1000000
  3. 硬件连接:UART_TX->P0.06, UART_RX->P0.08, CTS->P0.05, RTS->P0.07.
  4. 原理图:

 

  • 搭建环境
  1. 下载软件

需要下载软件包:nrf_sniffer_2.0.0-beta-3_12oct2018_1c2a221

Wireshark v2.4.6 or later.

python v2.7.x

2.文件介绍

nrfsniffer200beta312oct20181c2a221.zip解压后如下图所示:

 

Extcap  Profile_nRF_Sniffer_v2_001 为wireshark组件, hex为sniffer固件,需要烧录到板子上。

3.软件安装与配置

注意安装步骤不要变,否则可能安装失败

(1)安装wireshark:

双击Wireshark-win64-3.0.1.exe进行安装,一路next,选中下图桌面创建快捷方式:

 

 

如下图,选中USBPcap(可能是1.5.0.0)并进行安装:

 

剩下就是一路允许和接受,直到安装完毕,然后重启计算机

(2)配置wireshark环境:

打开wireshark->帮助->关于wireshark->文件夹->双击打开Extcap路径,如下所示

 

双击Global Extcap path,解压nrfsniffer200beta312oct20181c2a221.zip文件,将里面的extcap文件夹里的四个文件复制到刚刚打开的这个wireshark的extcap路径下,如图所示为复制完毕的效果图:

 

然后双击wireshark里的个人配置的网址,在弹出的文件夹下打开profiles文件夹,然后将解压的nrfsniffer200beta312oct20181c2a221.zip文件中的Profile_nRF_Sniffer_v2_001文件夹拷贝到profiles文件夹中,如下图为拷贝完毕的效果图:

 

(3)安装python:

双击python-2.7.16.amd64.msi进行安装,一路next,直到如下界面:

此处需要选择该项,即添加环境变量,然后一路next即可,直到安装完毕.

(4)安装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 Files\Wireshark\extcap”命令,将cmd操作界面定位到“C:\Program Files\Wireshark\extcap”目录下,注意,这时wireshark安装目录的extcap目录,也就是刚刚我们往这里拷贝四个文件的地方,wireshark安装目录不同,此路径可能不同,请自行调整,如果切换不顺利,也可直接通过在C:\Program Files\Wireshark\extcap文件夹下按住shift按键的同时,鼠标右单机空白处,在弹出的菜单中选择“在此处打开命令窗口”来进行切换。切换目录后,输入“pip install -r requirements.txt”命令,则会自动启动pyserial v3.4的安装,也可能是更高的版本.

(5)安装jlink.exe

 在nrfsniffer200beta312oct20181c2a221.zip解压缩后的文件夹内有个JLink_Windows_V630b.exe,双击JLink_Windows_V630b.exe进行安装,一路next即可安装完毕

(6)安装nrfgostudio

用来烧录程序用,双击nrfgostudio_win-64_1.21.2_installer.msi 安装

 如果上述步骤都正确完成,电脑端的开发环境基本就搭建完毕了

4.烧录hex文件到NRF52832板子

 我们以nrfgo studio为例进行说明

如图所示,识别的开发板后,先erase all, 然后选择program application选项卡,然后选择对应的hex文件,然后点击program进行下载即可,比较简单

注意不同芯片对应不同hex。

NRF52832选sniffer_pca10040_1c2a221.hex

5.验证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 Files\Wireshark\extcap下面的python源码,发现wireshark能发现板子串口,通信波特率也对,数据的起始码及停止码都对,但是数据包的第3个协议版本号不对,正常应该是1或2,实际却根本不是。难怪一直报错(具体原因待分析)。于是怀疑是板子固件的问题。再次网上查找原因,发现别人用nrf_sniffer_2.0.0-beta-3_12oct2018_1c2a221这个版本的固件可以成功,于是从CSDN上下载到压缩包,按照他人的流程,再次搭建环境,重新烧录固件,结果成功识别,抓包成功了。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值