BLE抓包

在进行网络开发的时候,抓包是一个很重要的调试过程,通过抓包可以分析网络传输的数据是否正确,可以深入理解网络传输过程。在物联网开发中,BLE低功耗蓝牙技术是一种非常通用的网络传输方式。在学习BLE过程中,除了要了解BLE基本架构,抓包是一个必要的环节,下面由华清远见·星创客讲师来介绍一下如何进行BLE抓包

一、工具

1、软件平台

集成开发环境:IAR

协议栈:TI-BLE-1.3.0

刷固件工具:smartRF   flash   program

Sniffer抓包工具

2、硬件平台

CC2540EM开发板

CC-Debug下载器

SmartRF04下载器

USB-dongle抓包工具

MiniUSB数据线

Ios/Android手机

二、抓包方式

1、专业工具usb-dongle

这是一个专业的抓包工具,可以抓取ZigBee、ble数据包。不过这个需要购买,增加成本

2、CC-Debug下载器+CC2540EM开发板

这种方式可以节省成本,毕竟你肯定有一个CC-Debug。但是这种方式对CC-Debug有要求,你必须给CC-Debug刷入专业的固件程序

3、SmartRF04 + CC2540EM开发板

这种方式可以节省成本,毕竟你肯定有一个SmartRF04。此方式也需要专业的固件程序

三、抓包的原理

其实抓包的原理很简单,既然你要抓取BLE数据包,那么你的抓包硬件必须是一个BLE设备,这样就可以接收到BLE的数据了。为了对数据进行透彻的分析,你需要给抓包设备输入固件,让它把整个数据包解析出来,然后显示在PC上位机。

四、准备工作

IAR、协议栈就不说了,到这个地步,你肯定已经把这两个装好了。

安装sniffer抓包工具,可以从网上下载一个,你还可以看一下sniffer的说明手册,里面有详细的使用方法。我们来看一下,sniffer支持哪些硬件抓包方案

五、采用下载器+CC2540EM来抓包

1、给CC2540EM开发板刷入抓包固件程序

这个固件程序在sniffer的安装目录下,我们可以找到目录“Packet Sniffer\bin\general\firmware”,看下面的截图

当前我们使用的是cc2540抓取BLE数据包,因此要刷入sniffer_fw_cc2540.hex(如果你想抓取ZigBee数据包,那么你需要下载cc2530的固件)。注意,当前这个开发板是用来抓包的哦,明确它的功能。

2、给另外一个CC2540开发板下载目标工程

由于BLE中常用的模式是“主从模式”,因此这里我给开发板下载一个从机工程,里面有5个特征值。至于主机,我们直接使用手机就可以了。提前给手机安装light blue工具,这个工具可以让我们随意的使用手机的蓝牙进行调试。

3、打开sniffer开始抓包

首先将下载器连接到第一步中的开发板(不是第二步 的哦),当然另外一头通过USB连接到PC。打开sniffer

这里首先要选择协议,我们在抓起BLE数据包,因此要选择“Bluetooth low energy”;如果你要抓ZigBee数据包,就要选择“ZigBee”。软件同时告诉我们,当前协议支持的抓包硬件方案。

4、sniffer使用

1)显示已连接的硬件

如果你的硬件是正确的,那么可以看到上面的结果,sniffer可以显示你当前的硬件。

2)设置频道

第二个标签用来设置信道。BLE会在37、38、39这三个信道来广播数据,你需要设置抓取哪个信道的数据。至于下面哪个“connect to initiator address”,我们后面再来研究。

3)点击按钮开始抓包

4)几种抓包结果

A.普通广播包

B.扫描应答包

C.连接请求包

D.请求读取数据包

E.请求数据应答包

5)显示设置

通过第三个标签,你可以设置显示的内容,上图是一个默认配置,显示所有的内容,你可以设置只显示某部分内容,如下图所示。这里对数据包,只显示包的类型,而不显示数据

6)过滤器

当周围的BLE设备太多的时候,我们可以抓取到很多的数据包,这时候你需要一个过滤器,让它只显示你的设备。我们可以在第6个标签中设置

APT代表包类型,这里我设置的是“发起连接请求”的包

AA5代表扫描应答包的mac地址,这里我设置的是“0x8030DCE03C17”

你还可以根据“field name”下拉列表来选择更多的过滤选项。

注意,这里的mac地址你要注意使用大写字母,小写字母不识别;另外前面还要加“0x”

7)设置自动跟踪已经连接的BLE设备

如果你仔细看就会发现一个问题,在第二步我们忽略了一个细节,现在该完善一下了。BLE设备会在3个频道广播数据,那么究竟最后在哪个频道连接的,之后又是在哪个频道传输数据的呢?sniffer可以帮你自动追踪,前提是你要设置第二步的address。这个address就是上面的“连接请求包”中的mac地址!当你设置好mac地址以后(别忘记前面打钩哦),接下来就尝试3个广播频道,经过若干次之后,总有一个频道会被你抓住的,祝你好运吧。。。

BLE抓包是怎么回事儿?的更多相关文章

  1. 【转】蓝牙ble app开发(三) -- 抓包

    原文网址:http://blog.csdn.net/lckj686/article/details/43156617 关于android 蓝牙app开发抓包的重要性在 android 蓝牙ble ap ...

  2. BLE广播数据的抓包解析

    前言: 报文由数据字节组成同时是按比特传输的,这就免不了牵涉到字节序的问题. 对于各个字节的传输,总是从最低位开始传输.如0x80是按00000001发送的,0x01是按10000000发送的. 同时 ...

  3. 第04节-BLE协议抓包演示

    在上几篇博客中,形象的讲解了BLE各个层的作用,各个层的数据结构.本篇博客将研究BLE协议抓包.在实际开发中,有一个中央设备(central)和一个外设(Peripheral).所谓中央设备就是指它可 ...

  4. 通过Wireshark抓包分析谈谈DNS域名解析的那些事儿

    文/朱季谦 本文主要想通过动手实际分析一下是如何通过DNS服务器来解析域名获取对应IP地址的,毕竟,纸上得来终觉浅,绝知此事要躬行. 域名与IP地址 当在浏览器上敲下"www.baidu.c ...

  5. 网络抓包wireshark(转)

    转自 网络抓包wireshark   抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经 ...

  6. Wireshark图解教程(简介、抓包、过滤器)

    开篇语 Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息.与很多其他网络工具一样,Wireshark也使用pcap netw ...

  7. 【抓包工具】wireshark

    wireshark下载地址:http://download.csdn.net/detail/victoria_vicky/8819777 一.wireshark优劣势 wireshark劣势:只能查看 ...

  8. 网络抓包wireshark

    抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经常要抓包的人员,学会用Wireshar ...

  9. Android抓包方法(二)之Tcpdump命令+Wireshark

    Android抓包方法(二) 之Tcpdump命令+Wireshark 前言 做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等.学会抓包分 ...

随机推荐

  1. 虚拟机创建流程中neutron代码分析(二)

    前言: 当nova服务发送了创建port的restful调用信息之后,在neutron服务中有相应的处理函数来处理调用.根据restful的工作原理,是按照 paste.ini文件中配置好的流程去处理 ...

  2. 数据库服务器---Qps

    QPS(Query Per Second)意思为"每秒查询率",是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准.同时也代表一种计算 ...

  3. 2017最新PHP经典面试题目汇总(上篇)

    1.双引号和单引号的区别 双引号解释变量,单引号不解释变量 双引号里插入单引号,其中单引号里如果有变量的话,变量解释 双引号的变量名后面必须要有一个非数字.字母.下划线的特殊字符,或者用{}讲变量括起 ...

  4. tcpdum使用详解

      http://starsliao.blog.163.com/blog/static/89048201062333032563/ TCPdump抓包命令 tcpdump是一个用于截取网络分组,并输出 ...

  5. xxx金融后台管理系统详细版:包括本地开发调试详细步骤

    效果演示地址, github地址: demo演示:         1.About 此项目是 vue2.0 + element-ui + node+mongodb 构建的后台管理系统,所有的数据都是从 ...

  6. 三十天学不会TCP,UDP/IP网络编程-ARP -- 连接MAC和IP

    继续来做(da)推(guang)介(gao)我自己的!由于这两年接触到了比较多的这方面的知识,不想忘了,我决定把他们记录下来,所以决定在GitBook用半年时间上面写下来,这是目前写的一节,目前已完成 ...

  7. Oracle学习笔记(7)——高级查询(1)

    在学习高级查询之前,我们先了解一下怎样查看Oracle数据库中的全部表.由于我们要使用到Oracle数据库中SCOTT用户下的几张表(这些表是Oracle数据库自带的表). 分组查询 分组函数的概念: ...

  8. x86 处理器开机顺序

    无论是千万行的linux ,还是百万行的uefi ,或者百十行的app, 它都有一个主线.应用程序是main() 函数里面全部函数运行完,程序结束.这里main() 做为程序的起点,uefi 能够觉得 ...

  9. 使用milang出错:LookupError: unknown encoding: idna

    今天同事安装了milang,结果发现例如以下出错: Traceback (most recent call last): File "F:\vmid.py", line 11, i ...

  10. Android之使用MediaMetadataRetriever类获取媒体信息

    一.昨天.介绍了使用MediaMetadataRetriever类来获取视频第一帧:http://blog.csdn.net/u012561176/article/details/47858099,今 ...