打印
[STM32F1]

STM32写保护有什么实际意义

[复制链接]
3091|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
FAQ|  楼主 | 2015-5-3 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 FAQ 于 2015-5-3 11:10 编辑

读保护,可以防止别人读取flash里的内容。写保护呢?字面理解就是不让别人写入。想知道这样做有什么实际意义。


单从防止别人复制flash里面的代码这点考虑,个人觉得完全没有必要设置写保护。只设置读保护就够了。




自己辛苦做的产品不想被别人盗用,个人觉得只设置个读保护就足够了。
沙发
jinchen1227| | 2015-5-3 11:10 | 只看该作者
猜是可以避免写入错误代码影响系统功能吧

使用特权

评论回复
板凳
FAQ|  楼主 | 2015-5-3 11:12 | 只看该作者
jinchen1227 发表于 2015-5-3 11:10
猜是可以避免写入错误代码影响系统功能吧

你说的这个情况不考虑,我只考虑代码不被别人复制走。

使用特权

评论回复
地板
jinchen1227| | 2015-5-3 11:49 | 只看该作者
但不能说这个功能没有意义

使用特权

评论回复
来自iphone 5s
5
csust_omega| | 2015-5-3 13:21 | 只看该作者
防止程序被意外冲掉

使用特权

评论回复
6
Simon21ic| | 2015-5-3 14:01 | 只看该作者
本帖最后由 Simon21ic 于 2015-5-3 14:02 编辑
FAQ 发表于 2015-5-3 11:12
你说的这个情况不考虑,我只考虑代码不被别人复制走。

那别人写进去一段小代码,开机运行的时候,把其他block的数据都读取出来怎么办?
自从几年前的一个产品被**了,就再也没用过stm32,最多也只是验证方案用用而已。要安全,就不要用stm32的常用型号。

使用特权

评论回复
7
runningwzf| | 2015-5-3 14:43 | 只看该作者
你要真防止别人抄的话,其实还挺难,想想微软、甲骨文的软件都可以被**,我们民用的软件还有什么**不了的?
所以其实只能增加**的难度,提高**的成本,让对手觉得**你这个耗时耗力,还不如自己开发

使用特权

评论回复
8
runningwzf| | 2015-5-3 14:43 | 只看该作者
你可以琢磨琢磨怎么利用芯片的ID

使用特权

评论回复
9
FAQ|  楼主 | 2015-5-3 15:30 | 只看该作者
Simon21ic 发表于 2015-5-3 14:01
那别人写进去一段小代码,开机运行的时候,把其他block的数据都读取出来怎么办?
自从几年前的一个产品被 ...

第一种方案,首先你说先写进去一段小代码,那我就认为是写到flash内了。并非RAM。

你说的这个情况,不知道读出来的数据最终是通过什么接口输出到外面的。
如果让我做我会通过USART口,这样这小段代码可以很短。代码的功能就是设置好串口然后把flash从头到尾读出来。

不过是否我可行我觉得可能会有些问题。

首先这段代码的烧录位置都是问题。因为你不知道flash内原来代码存放的位置。

如果盲目的选一个起始地址(比如从默认的0地址开始),那么很大几率这个位置是原来flash代码存放的位置。
这样这部分代码就会被所写的这小段代码给覆盖掉。读出来的代码也是不能用的。

这种方案显然是很牵强的,几乎不能用。



第二种方案就是将这小代码写到RAM中。自带的bootloader好像只能将程序写到rom中吧。所以只能通过SWJ或 SWD口仿真器在DEBUG模式下,将这小代码写入到RAM中,然后把flash中的数据读出。

使用特权

评论回复
10
FAQ|  楼主 | 2015-5-3 15:37 | 只看该作者
csust_omega 发表于 2015-5-3 13:21
防止程序被意外冲掉




意外被冲掉?一个正常的设备,即使是收到外部的干扰。外部的干扰很难凑巧形成冲掉数据的数据脉冲流吧。


目前的产品都只是做了读保护,没有做写保护,最近才关注到这个问题。想了解下产中是否有必要做写保护。

就算是代码被冲掉,我也不关心,这个不是我考虑的范围,我只关心能否被别人复制我的代码。

虽然现在很多芯片都可以被**,但是这样也能增加别人的**成本。减慢产品被别人复制的进度。

使用特权

评论回复
11
FAQ|  楼主 | 2015-5-3 15:40 | 只看该作者
runningwzf 发表于 2015-5-3 14:43
你要真防止别人抄的话,其实还挺难,想想微软、甲骨文的软件都可以被**,我们民用的软件还有什么**不了 ...

是的,本次讨论只是为了增加别人的复制成本。即使复制也要设置些障碍。

至于别人真的花了精力给复制走了,也不是我考虑的问题。毕竟已经起到一定的作用了。

使用特权

评论回复
12
runningwzf| | 2015-5-3 16:54 | 只看该作者
FAQ 发表于 2015-5-3 15:30
第一种方案,首先你说先写进去一段小代码,那我就认为是写到flash内了。并非RAM。

你说的这个情况,不知 ...

如果你出去做**,你肯定破产,你太低估了我们**人员的水平了

使用特权

评论回复
13
runningwzf| | 2015-5-3 16:58 | 只看该作者
FAQ 发表于 2015-5-3 15:37
意外被冲掉?一个正常的设备,即使是收到外部的干扰。外部的干扰很难凑巧形成冲掉数据的数据脉冲流吧 ...

就我所知,亲身经历过的,早期的AT89S5X会出现程序被冲掉,SST89系列的会被冲掉,现在STC公司的大多数产品会被冲掉,ARM系列的在LPC21XX这个系列上也发现过有

使用特权

评论回复
14
kseeker| | 2015-5-3 17:06 | 只看该作者
FAQ 发表于 2015-5-3 15:30
第一种方案,首先你说先写进去一段小代码,那我就认为是写到flash内了。并非RAM。

你说的这个情况,不知 ...

如果允许写入代码,只要两个芯片,就可以将其中内容完整读出:
第一步,写一段代码到flash启动区域,将后面的代码都读出来。当然,启动代码已经被覆盖掉。
第二部,分析刚才得到的程序,向其中插入一段代码,读取程序的开头部分,并将其中多个函数入口指向这段插入的代码。运行程序,则只要执行到这几个修改过的函数入口,就可以读出第一步中被覆盖的代码。


使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
hxjxyz + 1 很给力!
15
huangqi412| | 2015-5-3 20:30 | 只看该作者
楼主太自信了

使用特权

评论回复
16
myxiaonia| | 2015-5-3 20:48 | 只看该作者
关于stm32**的问题,隔壁坛讨论过好多次了

我说说之前发过的思路,大家看看有没有问题:读保护后调试口基本废了,使用stm32内部iap程序将木马代码写入后面的扇区,包括向量中断,然后想办法修改中断向量偏移,并触发中断,接下来中断程序就可以读出flash代码了

使用特权

评论回复
17
FAQ|  楼主 | 2015-5-3 21:47 | 只看该作者

此话怎讲

使用特权

评论回复
18
mmuuss586| | 2015-5-3 21:49 | 只看该作者

万一误操作写入了,就麻烦了;

使用特权

评论回复
19
shdjdq| | 2015-5-4 08:12 | 只看该作者
myxiaonia 发表于 2015-5-3 20:48
关于stm32**的问题,隔壁坛讨论过好多次了

我说说之前发过的思路,大家看看有没有问题:读保护后调试口 ...

关键是怎样能修改中断微量偏移,如能修改了,当然就能读出。如果用ID保护了,**还是比较麻烦的。

使用特权

评论回复
20
Keyinme| | 2015-5-4 09:58 | 只看该作者
新人路过帮顶,有没有好人帮我下个东西

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

FAQ

227

主题

2029

帖子

9

粉丝