第04节-BLE协议抓包演示
在上几篇博客中,形象的讲解了BLE各个层的作用,各个层的数据结构。本篇博客将研究BLE协议抓包。
在实际开发中,有一个中央设备(central)和一个外设(Peripheral)。所谓中央设备就是指它可以识别出周边的蓝牙设备,可以发起连接。所谓外设就是手环等。中央设备和外设之间传递数据,我们使用一个抓包工具sniffer,来抓取空中传递的数据,进而分析和调试。
在实际开发中,抓包涉及的硬件框图如下:
但是在学习的过程中,使用下面的结构。
使用手机来模拟外设,在安卓手机上可以运行一个软件:com-ble-peripheral-sim.apk,使用该软件可以非常方便的创建各种蓝牙外设,创建各种服务。在实际开发中,可能使用一个手机当做中央设备。在学习中,使用一个usb蓝牙模块,将该蓝牙模块接到pc机上,使用pc机上的软件可以通过这个usb蓝牙模块去发现各种外设,连接各种外设,去修改、读写外设的值。无论是实际开发还是学习,都需要一个sniffer。
总结:
1. 使用手机来模拟蓝牙外设(Peripheral),可以很方便地新建外设的服务。
2. 使用USB蓝牙模块(CSR8510A10)作用蓝牙中央设备(Central),在PC上运行Bluetooth LE Explorer,可以很方便地去连接、设置蓝牙外设。
3. 使用Sniffer来抓包,它是一个硬件。
抓包过程涉及三个软件:
a. Windows PC:Bluetooth LE Exploer
用于控制蓝牙中央设备,发起连接外设、操作外设。
从Microsoft Store安装即可。
b. Windows PC:Wireshark
抓包软件,通过Sniffer硬件来抓包。
安装、使用方法参考文档《BLE_sniffer抓包工具使用手册》
c. Android手机:com-ble-peripheral-sim.apk
BLE外设模拟软件,可以很方便地新建BLE服务。
首先运行sniffer对应的抓包软件,即wireshark。
运行usb蓝牙模块对应的软件Bluetooth LE Exploer
第04节-BLE协议抓包演示的更多相关文章
- 第12节-BLE协议HCI层的数据格式
学习资料: 1. 蓝牙协议core_v5.0.pdf <Vol 2: Core System Package [BR/EDR Controller volume]>的“Part E: Ho ...
- 第13节-BLE协议L2CAP层
学习资料:官方手册 Vol 3: Core System Package [Host volume] Part A: Logical Link Control and Adaptation Proto ...
- 第03节-BLE协议各层数据格式概述
本篇博客根据韦大仙的视频,整理所得. 对于BLE系统,它分为上下两块.上面那一块,我们称为host主机.下面这一块是controller,你可以简单的认为它就是一个蓝牙芯片. 对于host这一块,它运 ...
- 初识Http协议抓包工具—Fiddler
1.Fiddler简介 Fiddler是用一款使用C#编写的http协议调试代理工具.它支持众多的http调试任务,能够记录并检查所有你的电脑和互联网之间的http通讯,可以设置断点,查看所有的“进出 ...
- 网络协议抓包分析——TCP传输控制协议(连接建立、释放)
前言 TCP协议为数据提供可靠的端到端的传输,处理数据的顺序和错误恢复,保证数据能够到达其应到达的地方.TCP协议是面向连接的,在两台主机使用TCP协议进行通信之前,会先建立一个TCP连接(三次握手) ...
- 网络协议抓包分析——IP互联网协议
前言 IP协议是位于OSI模型的第三层协议,其主要目的就是使得网络间可以相互通信.在这一层上运行的协议不止IP协议,但是使用最为广泛的就是互联网协议. 什么是IP数据报 TCP/IP协议定义了一个在因 ...
- 网络协议抓包分析——ARP地址解析协议
前言 计算机之间可以相互通信的前提是要知道对方的地址,才可以发送信息给其他计算机,就像别人要联系你也得先知道你的电话号码一样.这里的地址因为网络分层的原因就包括IP地址和MAC地址(即网卡地址.硬件地 ...
- Fiddler系列教程1:初识Http协议抓包工具
1. Fiddler简介 Fiddler是用一款使用C#编写的http协议调试代理工具.它支持众多的http调试任务,能够记录并检查所有你的电脑和互联网之间的http通讯,可以设置断点,查看所有的“进 ...
- 安全测试6_Web安全工具第二节(代理抓包分析工具)
上节课讲了浏览器及扩展,这节课继续来学习下抓包分析. 首先看下下图,了解下代理工具的原理:代理就相当于收费站一样,任何要通过的车辆必须经过它. 浏览器的代理我们可以通过设置进行手动设置代理,或者通过P ...
随机推荐
- [LeetCode] 289. Game of Life 生命游戏
According to the Wikipedia's article: "The Game of Life, also known simply as Life, is a cellul ...
- 【cf比赛记录】Codeforces Round #605 (Div. 3)
比赛传送门 Div3真的是暴力杯,比div2还暴力吧(这不是明摆的嘛),所以对我这种一根筋的挺麻烦的,比如A题就自己没转过头来浪费了很久,后来才醒悟过来了.然后这次竟然还上分了...... A题:爆搜 ...
- Centos 7.5 安装JDK
#wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com ...
- 使用arcpy添加grb2数据到镶嵌数据集中
#!coding: utf-8 import numpy as np import arcpy def addGRB2ToMosaic(grb2name): print "start add ...
- logstash之mongodb-log
1.logstash6.5.3 配置收集mongodb的日志: 首先在mongodb服务器上部署filebeat收集日志并上传到logstash进行处理,然后上传到ES. filebeat-conf: ...
- golang ----array and slice
Go Slices: usage and internals Introduction Go's slice type provides a convenient and efficient mean ...
- 还不错的PHP导出EXCEL函数挺好用的
直接上函数吧 //导出 $data内容二维数组 $title各个标题 $filename表名称 function exportexcelinfo($data=array(),$title=array( ...
- Java基础笔记之String相关知识
(二)String Sring 被声明为 final ,因此不可被继承. String的不可变性: 看String的定义(java9版本): public final class String imp ...
- python 库 PrettyTabble 使用与错误
参考链接:http://zetcode.com/python/prettytable/ PrettyTable能在python中生成ASCII 表,可以使用他控制表的很多方面,包括文本对齐.表的边框. ...
- Python中itertools.groupby分组的使用
Python中itertools.groupby分组的使用 有时候我们需要给一个列表按照某个属性分组,可以借助groupby来实现. 比如:一下列表我想以严重程度给它分组,并求出每组的元素个数. fr ...