用FTS分析蓝牙数据包
来源:互联网 发布:仿真吉他软件下载 编辑:程序博客网 时间:2024/05/03 04:03
1.简介 FTS软件相当于蓝牙的数据分析仪器,它可以抓取通过蓝牙IC的数据包,从包中我们可以看到HCI,L2CAP等各层的封包数据,是一个十分有用的软件。
HCI Event Format:
HCI ACL Data Format:
HCI SCO Data Format:
Reset Command和Command Completed Event是一对成对出现的command和event。查询手册,Reset Command如下:
OCF为0x0003,OGF为0x03,return parameters定义如下:
可以看出,0x00代表reset成功,其余失败。
可以看出,首先是Event Code,为0x0e,其次为parameter total length为0x04,分别为Num_HCI_Command_packets=0x02,OpCode与Reset Command一样,为0x0c03,return_parameter为0x00,表示Reset command执行成功。
OCF为0x0009,OGF为0x04,返回的parameter为satus和BD_ADDR两个。
OpCode域为0x1009,其中OCF为0000001001(0x0009),OGF为000100(0x04)。因为是Little Endian的字节顺序,所以完整的OpCode为0x0x1009。因为不携带command parameter,所以parameter total length为0。
2.HCI的command和event以及Data的格式
HCI Command Format:
HCI Event Format:
HCI ACL Data Format:
HCI SCO Data Format:
3.Reset Command与Command Completed Event实例
OCF为0x0003,OGF为0x03,return parameters定义如下:
可以看出,0x00代表reset成功,其余失败。
Reset Command执行后将返回Command Completed Event,携带status参数。
Command Completed Event定义如下:
携带的event parameter为三个:Num_HCI_Command_packets,Command_Opcode和return_parameters
Num_HCI_Command_packets:表明controller要求host能够发送的command packet的个数,如果为0,表明controller禁止host发送command。
Command_Opcode和相应的HCI Command的Opcode域相同。
return_parameters即为HCI Command要求返回的status
利用FTS软件抓取实际蓝牙通信中的HCI层数据包,以Reset command和Command Completed Event为例,如下:
Reset Command:
上面的图是从软件中截下来的,可以看到OpCode为0x0c03,即OCF域为0000000011(0x0003),OGF域为000011(0x03)。因为是Little Endian的字节顺序,所以完整的OpCode为0x0c03。因为不携带command parameter,所以parameter total length为0。
再看Command Completed Event:
可以看出,首先是Event Code,为0x0e,其次为parameter total length为0x04,分别为Num_HCI_Command_packets=0x02,OpCode与Reset Command一样,为0x0c03,return_parameter为0x00,表示Reset command执行成功。
4.Read_BD_ADDR Command与Command Completed Event实例
首先看Read_BD_ADDR Comamd:
OCF为0x0009,OGF为0x04,返回的parameter为satus和BD_ADDR两个。
抓取实际的HCI Read_BD_ADDR Command包,如下:
OpCode域为0x1009,其中OCF为0000001001(0x0009),OGF为000100(0x04)。因为是Little Endian的字节顺序,所以完整的OpCode为0x0x1009。因为不携带command parameter,所以parameter total length为0。
再看Command Completed Event:
首先是0x0e的EventCode,其次是ToralLength = 0x0A = 10,然后分别为Num_HCI_Command_packets = 0x02,OpCode一样为0x1009,然后为46个字节的BD_ADDR,分别为00000000 00010000 00100111的LAP(0x271000);10000100的UAP(0x84);01001100 11100000的NAP(0xe04c);最后的00000000为returned parameter,00000000代表Read_BD_ADDR Command执行成功。
0 0
- 用FTS分析蓝牙数据包
- 用FTS分析蓝牙数据包
- 用FTS分析蓝牙数据包
- FTS抓包看蓝牙的SDP整个过程
- FTS抓包看蓝牙验证的过程
- FTS抓包看蓝牙验证的过程
- FTS抓包看蓝牙的SDP整个过程
- Estimote的蓝牙数据包
- 用Ethereal分析协议数据包
- 用Ethereal分析协议数据包
- 分析数据包
- 数据包分析
- 蓝牙低功耗数据包格式
- <蓝牙BLE>cc2540主机获取数据包
- fts.exe
- 初探数据包分析程序设计
- Gnutella数据包分析
- 初探数据包分析程序设计
- [程序员面试题精选100题]6.二叉查找树的后序遍历结果
- 索亚壁纸 - 免费版
- Class.getSimpleName()
- poj 2386(Lake Counting)DFS 水水,,潮水
- powerpivot 2013 已超出每个用户的最大允许会话数 The maximum numberof allowed sessions for each user has exceeded
- 用FTS分析蓝牙数据包
- Coursera台大机器学习课程笔记3 – 机器学习的可能性
- LeetCode:Remove Duplicates from Sorted List
- SVD++算法
- 在HCI层看从inquiry的整个过程
- 抢票感想
- Maven之HelloWorld
- iOS截屏 代码
- IE6IE7没有console对象