这里会显示出您选择的修订版和当前版本之间的差别。
cc2640r2f:packet_sniffer [2019/08/06 11:26] jaylee |
cc2640r2f:packet_sniffer [2021/06/22 23:14] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | < | ||
- | # PacketSniffer BLE 抓包 # | ||
- | 对于任何复杂协议的深入学习,我们都建议一个通用的学习方法,从规范-> | ||
- | 对于蓝牙空中抓包,暂时地我们只有使用[CC2540 USB Dongle](http:// | ||
- | ## 使用 ## | ||
- | ### 安装 ### | ||
- | 成功安装PacketSniffer,我们直接插入[CC2540 USB Dongle](http:// | ||
- | |||
- | ![](http:// | ||
- | |||
- | 选择启动PackeetSniffer,并且选择Bluetooth Low Energy | ||
- | |||
- | ![](http:// | ||
- | |||
- | ### 界面功能 ### | ||
- | 我们将详细讲解界面功能, | ||
- | * 开始/ | ||
- | ![](http:// | ||
- | |||
- | * Capturing Device | ||
- | 当前用以抓包的的硬件设备,我们这里的为CC2540 USB Dongle | ||
- | |||
- | * Radio Configuration | ||
- | Advertising Channel 广播信道,在< | ||
- | ![](http:// | ||
- | |||
- | * Select fields | ||
- | 选择抓包指定协议层,指定类型显示,除非我们对协议分层和PDU有很好认识,否则这里我们保持全部选择。 | ||
- | |||
- | * Display filter | ||
- | ![](http:// | ||
- | 显示过滤,此功能就强大了,同样建立在我们对协议分层很好认识,否则这里的过滤将无从下手。`Field Name`表示支持的过滤选项,选择后会在`Template`窗口进行配置的过滤规则模板显示,设置好直接Add进行添加规则。注意这里模板窗口,可以通过“;”进行分割,分割的关系是“与”,同可以通过Add多次添加过滤规则关系是“或”。 | ||
- | 作为一个[负责任的公司](www.leconiot.com)就一定会讲解这里过滤规则的`FiledName`。对于这里的过滤规则主要是通过PDU(协议数据单元)不同的域进行过滤,主要参考 **蓝牙核心标准-> | ||
- | |||
- | | FiledName | ||
- | | ------------- | ------------------------------------------------------------ | ------- | | ||
- | | AccessAddress | 接近地址,正如我们知道,BLE通过跳频在37个信道切换,切换的规则就是这里AccessAddress。 | | | ||
- | |ADV_PDU Type|广播协议数据单元 类型,APT=x,x表示ADV_IND、ADV_CONNEREQ|| | ||
- | |ADV_CONNREQ AdvA|广播连接请求的广播的地址,AA6=x x表示广播的设备的MAC地址,例如AA6=0x546C0E9B69D9|| | ||
- | |ADV_CONNREQ InitA|广播连接请求的发起者地址 IA2=x x 表示初始化广播连接的设备地址。|| | ||
- | |ADV_DIR_IN||| | ||
- | |ADV_DIR_IND AdvA||| | ||
- | |ADV_DIR_IND InitA||| | ||
- | |ADV_DISC AdvA||| | ||
- | |ADV_IND AdvA|指定某个MAC地址设备的广播,过滤 AA1=x x表示|| | ||
- | |ADV_NONCONN AdvA||| | ||
- | |ADV_SCANREQ AdvA|扫描请求到某个广播设备地址过滤,AA4=x|| | ||
- | |ADV_SCANREQ InitA|发起扫描请求的设备地址过滤,SA1=x|| | ||
- | |ADV_SCANRSP AdvA|广播设备对扫描请求进行的回复, | ||
- | |Chanel||| | ||
- | |CRC||| | ||
- | |Data Type||| | ||
- | |Data Type||| | ||
- | |FCS ERROR||| | ||
- | |FCS OK||| | ||
- | |Opcode||| | ||
- | |PktNumber||| | ||
- | |RSSI||| | ||
- | |||
- | ### 开启蓝牙抓包 ### | ||
- | 对于蓝牙抓包,我们可以清 | ||
- | |||
- | ### 过滤规则举例 ### | ||
- | * 过滤显示某个设备的广播数据(ADV_IND AdvA) | ||
- | |||
- | 指定设备MAC地址为x546C0E9B69D9,通过添加规则 `AA1=0x546C0E9B69D9` 后点击Apply filter 使能规则。 | ||
- | ![](http:// | ||
- | |||
- | * 过滤某两个设备之间的扫描请求和回复 | ||
- | 对于抓包,我们需要监听手机A(Scanner/ | ||
- | |||
- | > **注意**:注意规则的";" | ||
- | |||
- | ![](http:// | ||
- | * 连接请求 | ||
- | ![](http:// | ||
- | 我们需要显示手机A(Scanner/ | ||
- | |||
- | ## Troubleshooting ## | ||
- | * 设置地址警告 | ||
- | |||
- | ```bash | ||
- | --------------------------- | ||
- | GenPacketSniffer | ||
- | --------------------------- | ||
- | Invalid format of initiator address. Should be given as 12 hex digits. | ||
- | Examples of correct format: 0x0123456789AB, | ||
- | --------------------------- | ||
- | 确定 | ||
- | --------------------------- | ||
- | ``` | ||
- | |||
- | 地址格式不对。 | ||
- | |||
- | * 抓不到蓝牙建立连接 | ||
- | |||
- | ## 加入我们 ## | ||
- | 文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http:// | ||
- | <div> | ||
- | <p align=" | ||
- | <a target=" | ||
- | © Copyright 2017, 成都乐控畅联科技有限公司. | ||
- | </p> | ||
- | </ | ||
- | </ |