该篇文章主要讲蓝牙设备的测试环境搭建以及能使用到的程序。
硬件设备篇
硬件设备的话是针对那些没有app的或者没有Android的app的环境下进行的。 这里列出的工具有:
- Ubertooth
- Holling BLE sniffer
- NORDIC dongle或者德州仪器(TI)CC2540 –
- CC Debugger
Ubertooth
设备固件等内容地址 :https://github.com/greatscottgadgets/ubertooth 包含环境安装、常见问题、wireshark联动、固件升级等内容等内容。
环境安装参照https://github.com/greatscottgadgets/ubertooth/wiki/Build-Guide –
- 第一步 :在构建libbtbb和Ubertooth工具之前,需要安装一些先决条件。其中许多可从您的操作系统的软件包存储库中获得,以下为Debian / Ubuntu(kali)的内容如果其它系统请参照原网址
sudo apt-get install cmake libusb-1.0-0-dev make gcc g++ libbluetooth-dev \
pkg-config libpcap-dev python-numpy python-pyside python-qt4
- 第二步 :然后安装libbtbb
#wget https://github.com/greatscottgadgets/libbtbb/archive/2017-03-#R2.tar.gz -O libbtbb-2017-03-R2.tar.gz #tar xf libbtbb-2017-03-R2.tar.gz #cd libbtbb-2017-03-R2 #mkdir build #cd build #cmake .. #make #sudo make install #sudo ldconfig
- 第三步 :安装Ubertooth tools
#wget #https://github.com/greatscottgadgets/ubertooth/releases/download/2017-03-R2/ubertooth-2017-03-R2.tar.xz -O ubertooth-2017-03-R2.tar.xz #tar xf ubertooth-2017-03-R2.tar.xz #cd ubertooth-2017-03-R2/host #mkdir build #cd build #cmake .. #make #sudo make install #sudo ldconfig
- 第四步 :安装wireshark Wireshark BTBB和BR / EDR插件允许使用Kismet捕获的蓝牙基带流量在Wireshark GUI中进行分析和检测。它们与Ubertooth和libbtbb软件的其余部分分开构建。传递给cmake的目录MAKE_INSTALL_LIBDIR因系统而异,但它应该是现有Wireshark插件的位置,例如asn1.so和ethercat.so
#sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake #cd libbtbb-2017-03-R2/wireshark/plugins/btbb #mkdir build #cd build #cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins .. #make #sudo make install
- 第五步 :安装BT BR/EDR插件
#sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake #cd libbtbb-2017-03-R2/wireshark/plugins/btbredr #mkdir build #cd build #cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins .. #make #sudo make install
- 第六步 :联动wireshark 运行命令: mkfifo /tmp/pipe 打开Wireshark 点击捕获 – >选项 点击窗口右侧的“管理界面”按钮 点击“新建”按钮 在“管道”文本框中,输入“/ tmp / pipe” 点击保存,然后点击关闭 点击“开始”在终端中,运行ubertooth-btle:
ubertooth-btle -f -c /tmp/pipe
wireshark执行以下进行过滤
btle.data_header.length > 0 || btle.advertising_header.pdu_type == 0x05
选择了ubertooth one启动,必须让三个LED灯亮起来。其中两个绿色的LED(RST和1.8V)都亮说明Ubertooth成功插在了你的主机上,红色LED(USB LED)亮了表示Ubertooth可以通过USB端口进行通讯了。
参考链接:
https://github.com/greatscottgadgets/ubertooth/wiki/Getting-Started
http://www.freebuf.com/sectool/95426.html
http://www.freebuf.com/articles/wireless/106298.html
http://www.freebuf.com/news/88281.html
Holling BLE sniffer
BLE设备是在37,38,39这3个频道进行广播,有时候是在一个频道广播,有时候是在这3个频道中轮询广播,而这些BLE Sniffer却只能监听某一个频道的数据,或者是轮询监听3个频道的数据,若只监听一个频道的数据,那么就有可能找不到不在这个频道广播的设备,当然用轮询监听3个频道的数据是可以解决这个问题,但是还是会有新的问题,那就是监听BLE设备连接问题,因为BLE设备在建立连接的时候,除了单频道广播的设备,其他多频道广播设备建立连接的频道是不固定的,这样就会导致轮询监听3个频道数据的BLE Sniffer存在丢失数据的可能。 Hollong BLE Sniffer内部使用3颗BLE芯片,同时抓取37,38,39这3个频道的数据。
参考链接:http://blog.csdn.net/viewtool2017/article/details/73887641
该工具相关程序资料下载地址http://www.viewtool.com/product/BLE-Sniffer/
环境软件安装
下载并安装软件(一路下一步即可), 将设备通过USB线连接到电脑,等待驱动自动安装完毕。
启动软件,点击“Start”按钮,然后选择设备列表中的你需要查看数据的设备即可。
软件界面介绍
软件操作流程演示
NORDIC dongle(EN-Dongle)或者德州仪器(TI)CC2540
NORDIC的意思是使用nrf的sdk的dongle(另一位一起参加众测的iot设备的师傅推荐用这种)通常叫 EN-Dongle。 德州仪器(TI)CC2540这种雪碧师傅说过这种嗅探方案优点是廉价,不足是只能嗅探到广播信道的数据包,无法捕获连接完成后也就是设备通信过程中的数据包。
引用地址 http://www.freebuf.com/articles/wireless/106298.html
德州仪器(TI)CC2540环境安装
- 第一步 : 把“ sniffer_fw_cc2540_usb.hex” 固件烧录到CC2540 USB Dongle,并在电脑上安装 SmartRF Packet Sniffer 驱动,详细内容可参考:https://wenku.baidu.com/view/0e4baac5daef5ef7bb0d3c0a.html 。正常来说购买时默认都烧录完成的
- 第二步 : 打开SmartRF Packet Sniffer软件后,选择Bluetooth Low Energy并点击Start
- 第三步 : 点击Start开始捕抓数据
在Radio Configuration tab选项中勾上Connect to Initiator Address并填入主机地址,捕抓设备将根据填入的地址去跟随主机与从机之间的数据连接,如果不选择这个选项,捕抓设备不会跟踪指定连接,会开始跟随在当前广播通道上(37)的出现第一个数据连接; 从机开始广播,捕捉到数据如下:
主机连接从机,捕抓数据如下:
参考链接:https://blog.csdn.net/zhuangjitongxue/article/details/49337445
SmartRF Packet Sniffer使用手册中文版:http://pan.baidu.com/s/1o6AbAqu
SmartRF Packet Sniffer使用手册英文版:http://pan.baidu.com/s/1o608kL8
EN-Dongle
软件需求:ble-sniffer_win_1.0.1和Wireshark
驱动及软件安装
- CP2102驱动
- Wireshark
- Sniffer
安装CP2102驱动 :
解压“CP210x_VCP_Windows.zip”,解压后如下图,根据具体情况选择安装32位版本或64位版本驱动。
wireshark安装 : 此处正常下载安装即可
安装Sniffer : Sniffer是绿色软件,无需安装,解压后双击“ble-sniffer_win_1.0.1_1111_Sniffer.exe”即可运行。
环境运行
- 将EN-Dongle连接到计算机的USB接口上,并让EN-Dongle处于Central和Peripherel的信号覆盖范围内,如下图所示 :
- 双击“ble-sniffer_win_1.0.1_1111_Sniffer.exe”,启动Sniffer。Sniffer启动后会自动检查串口及周围的 BLE 器件,如下图所示 :
上图中信息栏显示了Sniffer读取的串口是:COM25。设备列表中显示Sniffer已经抓取到两个BLE设备,编号分别是“0”和“1”。
- 输入编号,选择BLE 器件,如下图所示 :
- 输入“w”启动Wireshark,开始抓包 :
- 启动Wireshark :
选中一个BLE包(这里捕获的是广播包),展开树形目录,即可看到Wireshark对这个广播包的分析
参考链接:https://blog.csdn.net/lep150510/article/details/78770398
CC Debugger
参考链接: http://www.waveshare.net/txt/CC-Debugger-Interface.htm
该物件要连到蓝牙芯片上后安装SmartRF Packet Sniffer查看数据可以针对一些设备接收数据进行收集
注:
- CC Debugger的2和9引脚需要短接,方可识别CC254x。
- P2.2引脚一定要加上拉电阻,否则会下载失败。
使用手册https://wenku.baidu.com/view/fb7271af941ea76e58fa04e7.html
另外说明
cc debugger 与 smartrfo4eb
- 焦点问题1:CC-Debugger仿真器和SmartRF04EB仿真器的区别?
答:该问题几乎是所有打算购买CC-Debugger仿真器用户的第一个问题,区别非常大,但是可以总结为下面三个方面
1、所支持的芯片差异
A) SmartRF04EB实测后支持的芯片有CC2430、CC2530、CC2531、CC2540,不支持CC2541
B) CC-Debugger支持的芯片非常之多,除了和04eb相同的仿真及下载功能外,还可以通过SPI总线控制CC系列的收发器。
2、能够连接的目标板电压不同
A) SmartRF04EB仿真器只能链接3.3V目标板电压,如果强行连接非3.3V接口,可能会烧坏芯片。仿真器目标接口的第2脚和第9脚是相同的,电压是3.3V
B) CC-debugger仿真器则支持宽目标板电压,从1.2V到3.6V均支持,为什么CC-Debugger能够支持这么宽的目标电压呢,这是因为CC-Debugger与目标芯片之间加了信号电平转换芯片:SN74AVC4T245DR。
3、所具有的的功能不同
A) 我们的SmartRF04EB只有仿真器的功能,如通过IAR软件在线仿真单步调试,以及通过Flash Programmer直接烧写hex文件
B) CC-Debugger除了具有和SmartRF04EB相同的功能外,还有具有协议分析的功能 使用CC-Debugger作为协议分析仪和独立的USBDongle协议分析仪有些区别,CC25xxUSBDongle作为协议分析仪时,独立工作,只需连接USB,就可以通过PacketSniffer抓包 而使用CC-Debugger用来协议分析时,需要连接目标芯片,连接的接口如上图,必须要接SPI。
- 焦点问题2:CC-Debugger无法识别目标芯片?
答:到目前为止,用户反映的不识别的情况只有下面三种:
1、没有向CC-Debugger放着器目标接口 第2脚提供Target Voltage,没有电压的愿意有两种,一个是你的板子没有供电,第二个就是你的板子debugger接口的第2脚没有接VCC。详情参加焦点问题1 如果你用的不是标准的10Pin,而是只有DC DD RESET GND四个信号,开发板无法提供连接VCC时,可以用杜邦线将CC-Debugger目标接口的第2脚和第9脚短接,自己对自己供电。
2、你自己做的板子存在虚焊,CC2540等CC系列的芯片通常是QFN封装,这种封装手工焊时非常容易出现虚焊。
3、忘记按复位按键,连接目标板之后,记住一定要按复位按键,然后仿真器识别到目标芯片后,再进行下一步操作。
- 焦点问题3:如何安装驱动,支持64位系统吗?
答:CC-Debugger是支持Win7 64位系统的,有对应的驱动程序。 安装下列软件会自动安装CC-Debugger驱动: SmartRF Studio、Flash Programmer、IAR For 8051、PacketSniffer等。如果软件已经安装,CC-Debugger驱动仍未能成功安装时,请到设备管理器中,右击带黄色感叹号的CC-Debugger,手动更新驱动程序, Flash Programmer软件自带的驱动程序位于(默认路径):C:\Program Files\Texas Instruments\SmartRF Tools\Drivers\cebal IAR For 8051软件自导的驱动程序位于(默认路径):C:\Program Files\IAR Systems\Embedded Workbench 6.0\8051\drivers\Texas Instruments
如有意成为绿盟科技博客作者,欢迎进入作者群讨论!
绿盟科技博客作者QQ群:695158981
绿盟科技博客作者微信群: