BLE分析仪讲解(BLE广播包讲解)

前言:

WCH-BLE 分析仪(WCH-BLEAnalyzer)是一款多用途的BLE 开发和测试工具。主要用于监听BLE 广播通道数据包或连接设备之间的通信,并通过PC软件(BleAnalyzer.exe)对数据包进行分析,最终以一种简明的方式显示给用户。

BLE分析仪的功能特点手册在下载PC软件时已附录,相应工具和使用说明见链接:https://www.wch.cn/downloads/WCH_BLEAnalyzer_zip.html 这里主要提供BLE分析仪具体使用说明。

一、广播包

BLE分析仪插在电脑上,然后打开官网提供的软件,打开如图所示:

 

补充:

  1. SCAN_REQ: 扫描请求,由主设备(MASTER DEVICE)向从设备(SLAVE DEVICE)发出,目的是为了获得从设备的响应以得到更多的从设备广播数据信息(包括设备名字,或者服务UUID,及其它如厂家特定格式的信息,如硬件版本,软件版本号,设备系列号等等)
  2. SCAN_RSP:  从设备对就主设备发起的SCAN_REQ的响应,作为广播包的补充,从设备可以给主设备更多的广播数据,比如说,有些设备在广播包里面没有设备名字,这个时候就可以把设备名字放在这个包里面发给主设备

二、连接包

使用主机设备连接从机设备,此时若分析仪在广播通道监听到“连接请求包”后,则会开始跟踪连接通信,可抓取到连接通信的数据,如下图所示:

 

抓取到黄色包是连接包,如果设备已成功建立连接而我们没有抓到包,则需将设备断开重新建立连接,直到BLE分析仪可以抓取到连接包。

CONNECT_REQ,这是连接包之前必须有的一个包,具体含义:主设备向从设备发出连接请求。至此连接建立完成(从设备不会响应这个请求),如果从设备没有连接上面的问题的话,以后主从双方会开始相互交换有效数据(基于GAP,GATT及SMP协议)或者交换空包。CONNECT_REQ固定4个字节和内容(0x8e89bed6)的存取地址,BLE 芯片使用这个固定的地址作为广播通道的BLE数据接收。我们在检查连接包之前都是找这个包。包里面包含了一个重要信息:Interval = 0x24,及间隔为36。

 

主机在给从机发送一个包后,从机会在连接间隔的时间内返回一个应答包;如果从机没有返回应答包,主机会重新发送包给从机,直到从机返回OK。

刚建立连接时,连接包为粉色的,这些是属于蓝牙底层的协议解析。

名称 功能 备注
Time(us) 绝对时间和相对时间 8020186为绝对时间,可以使用最后断开的时间减去CONNECT_REQ的时间,即为主从机连接的时间;(+37940)为连接间隔,此时的连接间隔为37940us。建立连接的参数更新时,连接间隔也会跟着更新,这里也可以抓出相应的数据。
Channel BLE通讯通道 BLE分析仪监听的广播通道是37(0x25),可手动选择在37、38、39任意通道进行监听。建立连接后,主机和从机交互数据是在0~36通道进行的。
Access Address 接入地址(广播接入地址和数据接入地址)

广播接入地址:固定为0x8E89BED6,在广播、扫描、发起连接时使用。数据接入地址:随机值,不同的连接有不同的值。在连接建立之后的两个设备间使用。

Direction 主从机数据传输方向 \
Data Type 数据类型 \
LL Opcode 控制包 \
LL FEATURE REQ 数据包 \

三、主从机通讯解析

1、

①LL Opcode(粉色包)属于控制包;L2CAP Header(棕色包)属于数据包

如上图四个黄包:

  1. 主机先给从机发送控制层的协议;
  2. 从机给主机发送加密请求;
  3. 主机没有给从机发送加密后的数据包;
  4. 从机给主机返回刚开始控制层的应答包。

关于连接间隔补充:第一行绿包中Interval为0x28,换算十进制是40,再切换为时间是50ms(= 40×1.25ms)。我们查看第二次M->S&S->M之和,为50039us。

2、

这里重点看一下ACK Status,我们发现主机给从机发送一个包后,主机又给从机发送了一个数据包,从机才作了应答。这是因为主机给从机发送的第一个包有问题,从机没有收到,所以主机需要重新发送一次,也就是Retry,然后从机给了应答。

3、

 

这个包的内容是从机给主机传递的数据,为0x77、0x88、0x99,程序如下:

 

4、筛选

 

我们可以根据已知内容对广播包或者连接包进行筛选,这里以MAC地址筛选为例。输入已知需要解析的MAC地址,添加并且勾选条件显示区的内容,然后筛选。我们可以看到上述的广播包均为我们所需要的包内容,更方便解析。MAC地址的筛选仅对广播包有效。

四、小结

BLE分析仪主要是对蓝牙的广播包或者连接包进行抓取以及简要解析,上述是提供了一些基本概念和工具的简要介绍,具体的解析需要根据蓝牙协议规范对每一个包去进行分析。

附:

 

posted @ 2022-07-06 19:31  SweetTea_lllpc  阅读(2699)  评论(1编辑  收藏  举报