某蓝牙适配器逆向概述
看了Tarlogic研究团队在39C3(The 39th Chaos Communication Congress)的Liberating Bluetooth on the ESP32议题有感而发
Why Not the ESP32?
关于ESP32的蓝牙相关逆向,有BrakTooth: Causing Havoc on Bluetooth Link Manager via Directed Fuzzing的BR/EDR逆向和ESPwn32: Hacking with ESP32 System-on-Chips
的BLE逆向,还有39C3大会议题Liberating Bluetooth on the ESP32的BLE逆向。
虽然ESP32蓝牙支持双模,但它还是有些问题的,它的BLE是4.2版本,不完全兼容BLE5.0,并且它的CEVA蓝牙4.2 IP的BLE LMAC官方中断寄存器配置有些问题,官方参考实现的BLE UMAC的事件调度很一般,最好是找蓝牙硬件版本至少是5.0的CEVA双模IP的芯片进行逆向。
某蓝牙适配器的蓝牙芯片的硬件版本就是5.0,对其ROM固件进行逆向后的相关汇总,由于该蓝牙芯片采用CEVA蓝牙5.0双模IP,实际上是逆向CEVA蓝牙5.0双模IP的物理层和链路层的相关资料。
Architecture
Dual Mode
架构如下(图片来自CEVA Bluetooth Product Brief):
BLE 4.2
架构如下(图片来自CEVA Bluetooth Product Brief):
BLE 5.0
和BLE 4.2的区别是Bit Stream多了LE Coded FEC。
BR/EDR
和BLE 4.2的区别架构是没有Resolve Address List和White List Search,Bit Stream不一样,多了Audio Path,音频路径Audio Path有可能是ESCO<CVSD<PCM <MIC/Speakers或ESCO<Audio DSP<Audio ADC/Audio DAC<MIC/Speakers,BLE 4.2 Event Scheduler和Event Controller在BR/EDR称之为Frame Scheduler和Frame Controller,4.2版本
BR/EDR的Frame Scheduler和BLE的Event Scheduler并不兼容,5.0版本开始兼容,5.1版本统称Activity Scheduler。
PHY
Radio
使用自定义版本,频率合成采用的PLL不知道是不是ADPLL。
Modem
使用官方版本,官方有好多个版本,蓝牙4.x可能有2个,蓝牙5.x可能有2-3个,蓝牙6.x可能还有1个,本芯片大概采用官方蓝牙4.x版本的BlueJay Modem,官方蓝牙4.x版本的另外一个是Ripple Modem,有一个常见的实现是Ripple Radio和BlueJay Modem的组合,本芯片应该是采用自定义Radio和BlueJay Modem的组合。
MAC
LMAC
Radio Contoller
有三个部分:共用的Dual Mode、BR/EDR和BLE。基址?0000000H(隐去首地址),标记的寄存器偏移如下:
Offset
Mode
0x0000
Dual Mode
0x0400
BR/EDR
0x0800
BLE
---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-289868.htm
[原创]某蓝牙适配器逆向概述
107 浏览
1 回复
文章编辑器是不是在手机浏览器上有BUG?要想修改帖子提交按钮一闪而过就没了,Chrome和Edge都不行,两三年以前的版本就可以。给个建议把提交按钮放在前面:md编辑器切换不过去,一闪而过就保持原样
最后于 2026-1-29 08:45
被vasthao编辑
,原因:
最后于 2026-1-29 08:45
被vasthao编辑
,原因: