63

帖子

0

TA的资源

一粒金砂(初级)

21
 
对于《STM32F103RB的BootLoader软件安全设计方案》一文比较质疑的一点:
文中提到“读、写保护有效时将禁止调试接口和SRAM 中运行的程序对Flash读、写操作”,但是下面的流程图中竟然有“在SRAM Debug模式下擦除Option Bytes域设置芯片写保护无效”,请问是不是自相矛盾?最好是原作者出来讲解一下到底是个什么原理?
此帖出自stm32/stm8论坛
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

22
 
STM32的读保护一旦使能,就只有flash中运行的代码可以访问flash的内容,其他包括调试器,RAM中的程序或者BOOTLOADER都是禁止访问FLASH的。

但在SRAM中运行的代码可以取消对芯片设置的读保护和写保护,只是一旦取消了读保护,flash自动全部擦除。
此帖出自stm32/stm8论坛
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

23
 
文中所说方法并没有直接读flash的内容,而是在ram中运行程序取消flash的写保护(不是取消读保护),
擦除部分flash,并写入读取flash的程序.
重新从flash启动,就有可能会执行到新写入的程序,
这样就可以读出部分flash中的内容.
其实问题的关键是:使能读保护后,从ram中启动,倒底可不可以写flash
此帖出自stm32/stm8论坛
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

24
 
                                 20楼你说的是真的吗?………………
此帖出自stm32/stm8论坛
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

25
 
                                 STM32很简单,不如自己开发一个,破解干啥呢?意义不大
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

26
 
23楼的已经说了:“STM32的读保护一旦使能,就只有flash中运行的代码可以访问flash的内容,其他包括调试器,RAM中的程序或者BOOTLOADER都是禁止访问FLASH的”
就是说使能读保护后,从ram中启动,不管是读Flash,还是写flash都是不可以的,所以那篇文章中所说在ram中运行程序取消flash的写保护(不是取消读保护),再擦除部分flash是不成立的,所以也不能写入读取flash的程序。
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

27
 


那篇文章《STM32F103RB的BootLoader软件安全设计方案》有点自相矛盾,既然设置了读写保护,又怎么能进入SRAM Debug模式呢?他这个SRAM Debug模式到底是什么意思?如果是通过调试器进入SRAM调式的话,那是扯淡;如果是修改应用代码,通过木马方式,使代码在SRAM里面运行然后解除写保护的话,就是成立的,当然要是为了读出FLASH里面的代码,就完全没有必要解除写保护了,程序里面直接用指针读就好了。至少该讲清楚吧?论文应该是学术研究的成果,不能说得不清不楚的,让人产生怀疑和误解。
此帖出自stm32/stm8论坛
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

28
 
楼上的还是没搞清STM32的读保护机制。

我在23楼说过了,加了读保护,不影响芯片从SRAM BOOT,并通过调试器烧录代码到SRAM里,并在SRAM里运行代码。这段在SRAM里运行的代码,可以解除读保护(但是芯片会自动擦除FLASH),也可以解除写保护。

但是只要读保护使能,在SRAM里运行的代码是不能访问FLASH的,无论是读操作还是写操作,无论写保护是使能还是解除。
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

29
 
To bigarmer:

《STM32F103RB的BootLoader软件安全设计方案》是论文吗?发表在那本杂志上?你怎么知道是学术研究的成果?

况且那篇文章自相矛盾,这就说明那篇文章的内容是伪科学的!
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

30
 
谢谢楼上再次详细解码我的疑问。
设置了读保护可以通过调试器下载代码到SRAM,但是设置了写保护还能通过调试器下载代码到SRAM吗?
此帖出自stm32/stm8论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

31
 
                                 通过调试器下载代码到SRAM中与是否设置了写保护无关!
此帖出自stm32/stm8论坛
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

32
 
请各位关注此问题的朋友仔细阅读这个文档,尤其是第2.4节:
《STM32F10x闪存编程手册(2009年6月第6版)》英文下载 中文下载
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

33
 
下面内容是从ST翻译文档中截取的:
stm32_wrp.jpg
附上完整文档
stm32f10x_flash_programming_cn.pdf (234.75 KB)
此帖出自stm32/stm8论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

34
 
这篇文档太老了,对读保护和写保护的描述都非常不清楚。还是看V6版的英文文档吧。

另外你31楼的问题,写保护只是针对flash,不影响调试器写SRAM。
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

35
 
是啊,34楼给的文档太老了,有点误人子弟, 请使用我在33楼给出的链接。
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

36
 


**********帖子编辑修改原因,部分文字没有显示出来**********
谢谢vigia、版主、ST_ARM及其他网友的耐心指点。

重新阅读了版主发的新版文档发现我之前阅读的资料有误,对读写保护机制的理解是错误的,原《STM32F103RB的BootLoader软件安全设计方案》论文是没有技术问题的,作者实际上是利用了文档中提到的以下技术:
情形2:解除写保护之后仍然保持读保护,这种情况常见于用户自己的实现在程序中编程的启动程序:
-使用闪存控制寄存器(FLASH_CR)的OPTER位擦除整个选项字节区域;
-进行系统复位,重装载选项字节(包含新的WRP[3:0]字节);写保护被解除。

我也发现JLINK软件下有一个专门使用JLINK来解锁STM32的工具,其原理就是通过JTAG向SRAM里面下载代码来解除读写保护
(实际上是整片擦除)。

我把讨论的论文《STM32F103RB的BootLoader软件安全设计方案》也发上来供大家参考(该文章来自网络,版权归原作者和
出版商所有)。同时提醒大家,如果自己的产品里面使用了STM32,并且有自己设计的Bootloader的话,一定要考虑安全性
方面的问题。

STM32F103RB的BootLoader软件安全设计方案.pdf (268.98 KB)

此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

37
 
那是不是如果不用bootloader的话. STM32就非常安全而不容易被破解?
如果如1楼给的例子能用6w解开stm32的话. 那重要项目还真不敢用STM32
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

38
 
                                 只要“读保护”是使能的,不可能从SRAM中执行代码来改FLASH中的内容吧。
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

39
 
                                 昏,那也太麻烦了
此帖出自stm32/stm8论坛
 
 
 

回复

49

帖子

0

TA的资源

一粒金砂(初级)

40
 
                                 为什么要讨论破解这种问题呢
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表