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. 内网神器-Bettercap

    安装bettercap 1 2 root@sch01ar:~# apt-get update root@sch01ar:~#  apt-get install bettercap 安装完成后查看一下帮 ...

  2. js限制日期选择范围是两个月

    $(".dateInputClass input:eq(0)").bind("click", function(){WdatePicker({dateFmt:' ...

  3. leetcode算法题2: 合并两个二叉树。递归,如何切入并保持清醒?

    /* Given two binary trees and imagine that when you put one of them to cover the other, some nodes o ...

  4. 一步步搭建Retrofit+RxJava+MVP网络请求框架(二),个人认为这次封装比较强大了

    在前面已经初步封装了一个MVP的网络请求框架,那只是个雏形,还有很多功能不完善,现在进一步进行封装.添加了网络请求时的等待框,retrofit中添加了日志打印拦截器,添加了token拦截器,并且对Da ...

  5. HAUT 1261地狱飞龙 自适应辛普森 数值积分

    1261: 地狱飞龙 时间限制: 1 秒  内存限制: 64 MB 提交: 300  解决: 68 题目描述 最近clover迷上了皇室战争,他抽到了一种地狱飞龙,很开心.假设地域飞龙会对距离为d的敌 ...

  6. ERROR: unable to bind listening socket for address ’127

    ERROR: unable to bind listening socket for address '127.0.0.1:9000′ 解决办法: killall php-fpm 然后重启即可. 我的 ...

  7. php IP转换整形(ip2long)

    如何将四个字段以点分开的IP网络址协议地址转换成整数呢?PHP里有这么一个函数ip2long.比如 <?php echo ip2long("10.2.1.3"); ?> ...

  8. 使用CEF的JSON解析功能

    Cef提供了JSON解析功能,在cef_parser.h文件内有三个JSON相关的方法: CefParseJSON CefParseJSONAndReturnError CefWriteJSON 以最 ...

  9. ListView原理

    表明转载自http://blog.csdn.net/iispring/article/details/50967445 在自己定义Adapter时,我们经常会重写Adapter的getView方法,该 ...

  10. linux0.11学习笔记(1)

    公布软件包包括内容: bootimage.Z - 具有美国键盘代码的压缩启动映像文件: rootimage.Z - 以1200kB 压缩的根文件系统映像文件: linux-0.11.tar.Z- 内核 ...