这里会显示出您选择的修订版和当前版本之间的差别。
cc2640r2f:packet_sniffer [2017/09/01 21:45] long |
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|Description|example| | ||
- | |---------|-----------|-------| | ||
- | |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_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 ## | ||
- | * 设置地址警告 | ||
- | ``` | ||
- | --------------------------- | ||
- | 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> | ||
- | </ | ||
- | </ | ||