Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bluetooth I’;我想修改蓝牙模块(HC-05)的固件文件_Bluetooth_Firmware - Fatal编程技术网

Bluetooth I’;我想修改蓝牙模块(HC-05)的固件文件

Bluetooth I’;我想修改蓝牙模块(HC-05)的固件文件,bluetooth,firmware,Bluetooth,Firmware,我正在研究蓝牙的LMP层 我想做的是修改链路管理器协议(LMP)的实现以控制LMP数据包 根据蓝牙规范,LMP通常在蓝牙模块的固件中实现 我能够从HC-05模块中提取固件并重新刷新固件 有许多网站解释了如何使用blue suite从蓝牙模块中提取固件 下图是提取的固件文件的十六进制视图 如您所见,提取的文件不是二进制文件 我必须将固件文件转换为二进制文件,以便使用IDA pro分析指令 在我将固件文件转换为二进制文件后,我可以看到类似固件的文件格式 这是我转换成二进制格式的固件文件 这就是我

我正在研究蓝牙的LMP层

我想做的是修改链路管理器协议(LMP)的实现以控制LMP数据包

根据蓝牙规范,LMP通常在蓝牙模块的固件中实现

我能够从HC-05模块中提取固件并重新刷新固件

有许多网站解释了如何使用blue suite从蓝牙模块中提取固件

下图是提取的固件文件的十六进制视图

如您所见,提取的文件不是二进制文件

我必须将固件文件转换为二进制文件,以便使用IDA pro分析指令

在我将固件文件转换为二进制文件后,我可以看到类似固件的文件格式

这是我转换成二进制格式的固件文件

这就是我到目前为止所做的


这是我的问题

  • HC-05的CPU架构是什么?(我需要指出
    用于反汇编指令代码的固件体系结构)

  • 是否有蓝牙固件的源代码版本

  • 您是否有分析固件文件以修改特定功能的提示


  • 谢谢

    以这种方式修改固件很可能行不通。快速搜索发现HC-0X模块是CSR的BlueCore 04模块,运行在某种16it RISC mcu上。IDA支持的处理器列表很长,但90%是32/64位,所以这将是您的第一个问题。其次,任何sane固件开发人员都将使用固件映像的校验和/哈希验证,该映像可能在可编程数据区内,也可能不在可编程数据区内,可能会也可能不会使用CRC等的私有实现,这让事情变得更加困难。感谢您的评论markus nm 11,如果我可以使用IDA反汇编固件,这将是最好的结果,但如果不能,我想通过研究指令集来分解我自己的代码,这就是我寻找HC-0X模块的特定体系结构的原因。我坚信,在我研究三星打印机的固件时,绕过校验和验证是微不足道的,他们验证了固件的校验和,但校验和值只不过是每2字节固件相加一次。一旦我能够分析固件,也许我可以处理校验和问题。DARE2支持CSR反汇编。此外,如果您将捕获错误,我们将很高兴地修复它们。如果您想自己编写汇编程序,可以使用C或Python作为RAsm的插件: