Hello,师傅们晚上好。今天我们来介绍个低功耗蓝牙小工具,在这之前我们先简单介绍一下低功耗蓝牙(BLE)
先附上地址|欢迎师傅们star
蓝牙自4.0版本以后开始支持低功耗,在与BLE交互的过程中,最重要的是Characteristic、Desciptor、Service这三个概念:
**Characteristic:**可以理解为一个数据类型,它包括一个value和0至多个对此characteristic的描述(Descriptor)
**Descriptor:**对Characterisctic的描述,如范围、单位等
**Service:**是Characteristic的集合,它可以包含多个Characteristic
重点:一个BLE终端可以包含多个Service,一个Service可以包含多个Characteristic,一个Characteristic包含一个value和多个Descriptor,一个Descriptor包含一个value(其中Characteristic比较重要,用的比较多)
我们再来看一下图片介绍
上图中,右侧图片为一个BLE设备的实例,可以看到在图片中有4个service,前两个为Unknown service,后两个分别是Battery Service(电池服务)和Current Time Service(当前时间服务)。而在第二个Unknown service中,有一个Unknown Characteristic。值得一提的是,Service和Characteristic各自拥有一个UUID用于标识,在BluetoothGatt类的相关函数中,就是用这些UUID找到所需的service和characteristic,这就相当于TCP通信中的端口(port)
胖猴实验室
根据胖猴实验室之前发布的文章,我们找到了同款存在未授权控制漏洞的灯泡,该灯泡可在未经绑定的情况下直接对其发送蓝牙数据进行控制,如下图所示:
这里我们使用litchi扫描附近的BLE设备连接,选择service、Characteristic并发送数据
当然也可以在启动的时候指定Device、Service、Characteristic,并直接发送数据
大家可以使用-h命令查看帮助
我们来看看效果
欢迎师傅们star
https://github.com/nian-hua/Litchi
点我留言