西湖论剑IOT蓝牙
西湖论剑IOT蓝牙前言转载文章,记录学习
来源
https://xuanxuanblingbling.github.io/wireless/ble/2021/06/26/ble/
蓝牙协议协议简介新老并存是蓝牙协议栈复杂的主要原因,协议分层如图:
[](https://xuanxuanblingbling.github.io/assets/pic/bluetooth/protocal.png)
想了解最全面的蓝牙协议栈设计,可以去 蓝牙官网 找,目前最新的白皮书是:Bluetooth Core Specification v5.3。
协议实现谈协议分层总是很简单,因为上面这种图片随处可见,但其本质的内容是一个抽象的设计方案,而不是具体的实现方案(软件代码,硬件电路)。对于黑客来说,我们不仅仅关注抽象的协议设计上有没有问题,更关注的是协议的实现,因为设计一般都是经过世界上顶尖的大脑们反复推敲出来的,而实现可能就是某个开发者半夜一边吃外卖一边写出来的。协议设计的问题可能在白皮书中隐约看到,但实现的漏洞你是不可能从白皮书中看出来的,比如:
Bleeding Tooth:Linux蓝牙驱动远 ...
蓝牙:ATT和GATT
蓝牙:ATT和GATT包含低能耗规范的蓝牙 4.0 为标准带来了两个新协议:ATT(属性协议)和 GATT(通用属性配置文件)。它们主要针对低能耗模式,每个 LE 配置文件都应使用它们。但它们也可以在传统蓝牙 (BR/EDR) 上使用。
概述ATT 是一种有线应用协议,而 GATT 规定了如何在服务组合中使用 ATT。每个低功耗配置文件都必须基于 GATT。因此,最终,每个 LE 服务都使用 ATT 作为应用协议。
将 LE 配置文件绑定到这些协议可带来以下几个优点:
ATT 针对低功耗设备运行进行了优化:它使用尽可能少的字节,并且实现可以使用内存中的固定大小结构来存储数据包(PDU)。
ATT/GATT 的简单性和统一性促进了互操作性。ATT 和 GATT 往往在 BT 堆栈内实现,从而减轻了应用程序的低级繁琐工作。
作为一个统一而简单的协议,操作系统可以为应用程序提供通用的 ATT/GATT API。
最后一点非常重要。它允许应用程序级配置文件支持。在 经典蓝牙 中,支持新配置文件需要系统升级(对于不太常见的配置文件,这可能永远不会发生)。还有一些 ...
蓝牙里面的local host 和local control ,remote device
蓝牙里面的local host 和local control ,remote device在蓝牙技术中,“local host”、“local controller”和“remote device”是指不同角色和组件的概念,它们在蓝牙通信中承担不同的职责。以下是对这些概念的详细解释和它们之间的区别:
Local HostLocal Host是指本地设备中的主处理器或应用处理器,主要负责高层协议和应用逻辑:
协议栈的高层处理:
处理蓝牙协议栈的高层部分,如L2CAP(逻辑链路控制和适配协议)、SDP(服务发现协议)等。
管理设备的蓝牙连接、服务查找和数据传输等高层任务。
应用交互:
提供接口让应用程序能够访问蓝牙功能,例如配对、连接和数据交换。
处理用户界面和应用程序逻辑,与操作系统和用户应用进行交互。
Local ControllerLocal Controller是指本地设备中的蓝牙芯片或模块,负责低层协议和物理层操作:
协议栈的低层处理:
处理蓝牙协议栈的低层部分,包括HCI(主机控制接口)、链路层(LL)和物理层(PHY)。
负责实际的数据包传输、信号调制和解调,以 ...
蓝牙调试工具介绍
蓝牙调试工具介绍前言蓝牙有很多抓包工具,本篇就来汇总下常用蓝牙调试工具,针对这些调试工具air packet sniffer(空口包)和hci sniffer(空口包)进行详细说明,总结各个工具的使用场景。
常用的抓包工具介绍总的抓包工具框图
总的抓包工具框图
hw hci sniffer:硬件hci sniffer,通过芯片模组上飞出四根线(TX,RX,CTS,RTS)到特定设备接到电脑上,通过PC上位机就能抓取硬件hci sniffer,host与controller之间的交互流程。
缺点:要付费买类似逻辑分析仪的抓包装备
如下图所示
soft hci sniffer: 软件hci sniffer可以是local host也可以是Remote Device端。local host设备端常用的就是hcidump,btmon,btsnoop. Remote Device端手机端也能抓btsnoop就要将手机的开发者选项打开抓btsnoop. soft hci sniffer与hw hci sniffer都是抓Hci sniffer, 区别就是hw hci sniffer是抓硬件的, ...
蓝牙发展及其分类
蓝牙发展及其分类1、概念蓝牙,是一种支持设备短距离通信(一般 10m 内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。
2、发展历程蓝牙 1.0 (1999年)早期的蓝牙版本,有数据泄露风险,并没有被广泛应用;
蓝牙 1.2 蓝牙技术一直在迭代,发布于 2003 年的蓝牙 1.2 是蓝牙真正走向安全可用的标志;
蓝牙 2.0(2004 年)则着重提高多任务处理能力,同时支持双工模式,可以一边语音通讯,一边传输文件;
蓝牙 3.0(2009 年)引入高速传输,加大带宽,客观上挤占 WiFi 的位置,增加了功耗和成本;
蓝牙 4.0(2010 年)重新找准定位,引入 BLE 概念,即 Bluetooth Low Energy 低功耗蓝牙;
蓝牙 5.0(2016 年)让蓝牙在低功耗下具备更强大的传输能力,提高了安全性和可达性,逐渐成为目前主流。
蓝牙 5.2(2020 年)聚焦LE Audio,发布多个LE音频规范和全新的LC3高品质低延迟编码器,增强蓝牙音频体验。
所以蓝牙技术已经发展了很多个年头,蓝牙技术联盟分为经典蓝牙和低功耗 ...
蓝牙Bluetooth学习
蓝牙Bluetooth学习Bluetooth 蓝牙协议栈技术“蓝牙”(Bluetooth)原是一位在10世纪统一丹麦的国王,他将当时的瑞典、芬兰与丹麦统一起来。用他的名字来命名这种新的技术标准,含有将四分五裂的局面统一起来的意思。蓝牙技术使用高速跳频(Frequency Hopping)和时分多址(TIme DivesionMuli—access)等先进技术,在近距离内最廉价地将几台数字化设备(各种移动设备、固定通信设备、计算机及其终端设备、各种数字数据系统,如数字照相机、数字摄像机等,甚至各种家用电器、自动化设备)呈网状链接起来。
[](https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2022/11/7-1667537950.png)
蓝牙技术在发展至今,衍生出了多个版本,如老的经典蓝牙版本和4.0后的低功耗版本,下面主要讨论蓝牙低功耗也就是BLE。
蓝牙工作过程
配对:配对是指两个蓝牙设备首次通讯时,相互确认的过程,在通过配对后的数据传输不需要再重复进行确认
pin:个人识别码,蓝牙使用的pin码长度为1-8个十进制位数
D ...
经典蓝牙、低功耗蓝牙、蓝牙Mesh
经典蓝牙、低功耗蓝牙、蓝牙Mesh同样是蓝牙技术,为什么有经典蓝牙、低功耗蓝牙之分,蓝牙Mesh又是什么回事?
1、蓝牙技术发展简史网上关于蓝牙技术的发展介绍已经很多了,这里就不再过多介绍了,可以看下面这张图简单了解下。
蓝牙技术发展史(截止2019)
蓝牙技术的官方组织是蓝牙技术联盟(Bluetooth special interest group,简称Bluetooth SIG),目前蓝牙协议已经发展到了蓝牙5.2(2020.5),如下是蓝牙技术的官方网站。
[蓝牙 技术网站 |官方网站 蓝牙 技术。www.bluetooth.com/zh-cn/[![img](https://pic3.zhimg.com/v2-dcd2603158f26e23ab4de1f7e7c341d6_ipico.jpg)](https://springbird3.oss-cn-chengdu.aliyuncs.com/lianxiang/20221022230518.png)](https://link.zhihu.com/?target=https%3A//www.bluetooth.com/zh- ...
深入浅出低功耗蓝牙(BLE)协议栈
深入浅出低功耗蓝牙(BLE)协议栈BLE协议栈为什么要分层?怎么理解BLE“连接”?如果BLE协议只有ATT层没有GATT层会发生什么?
协议栈框架一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构。
协议栈/1366713-20180428221935991-1554321639.png)
如上图所述,要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协议栈,最后在协议栈上开发自己的应用。可以看出BLE协议栈是连接芯片和应用的桥梁,是实现整个BLE应用的关键。那BLE协议栈具体包含哪些功能呢?简单来说,BLE协议栈主要用来对你的应用数据进行层层封包,以生成一个满足BLE协议的空中数据包,也就是说,把应用数据包裹在一系列的帧头(header)和帧尾(tail)中。具体来说,BLE协议栈主要由如下几部分组成:
PHY层(Physical layer物 ...
小米手环测试
小米手环测试前言测试mac地址
D0:62:2C:D1:C4:CB Xiaomi Smart Band 8 C4CB
BLECTF低功耗蓝牙CTF change
BLECTF:低功耗蓝牙CTF change前言环境配置需要的设备
esp32(含有wifi和蓝牙模块的板子)
CSR4.0(外接蓝牙模块)
这里需要注意的是esp32的设备需要用好一点的连接线才可以连接成功,有时候连接不成功可能是连接线的问题
https://blog.csdn.net/qq_40589912/article/details/108301290
下载ESPtools可以直接通过apt-get安装,但是可能会存在包不对的情况,之类的
1sudo apt-get install esptool
也可以直接下载github库
1git clone https://github.com/espressif/esptool
烧录BLECTF根据这个教程去烧录
https://github.com/hackgnar/ble_ctf/blob/master/docs/setup.md
首先下载blectf
1git clone https://github.com/hackgnar/ble_ctf.git
然后进入blectf目录
1cd ble_ctf
最后直接烧录(我 ...