OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7252|回复: 13

STM32防破解之分享

[复制链接]

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-9-5 16:05:45 | 显示全部楼层 |阅读模式
本帖最后由 edmund1234 于 2018-9-5 16:29 编辑

因为一案子快要送样, 这几天都在网上看了很多破解与防破解的海量信息, 自认为总结而找到, 现今最流行,不需什么仪器, 只需电脑一台, 也是最便宜的破解方法, X宝上大多都应该是用这方法。


但在这不会公开破解之法,只说防破解方法, 以免让某些码农误入歧途。

一) 复位后, 第一时间对Flash每个分区做校验, 若发现校验有错千万别乱跳到别的地方, 要不自宫, 要不就死循环。
二)必须保证从复位到校验这一过程, 都没有离开Flash的第一个Sector(即头四页)。
三)校验通过前不要打开中断。


以上是我自以为找到的破解的方法, 针对的是某一种破解方法, 不可能给任何人打保票, 只供参考。

另外, 若此防破解方法还有不足之处, 欢迎讨论, 甚至拍砖! 先谢了。



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
发表于 2018-9-5 17:22:49 | 显示全部楼层
这种方法,只是防止别人修改代码的内容啊
回复 支持 反对

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
 楼主| 发表于 2018-9-5 17:33:18 | 显示全部楼层
本帖最后由 edmund1234 于 2018-9-5 17:35 编辑
ssssssssssss 发表于 2018-9-5 17:22
这种方法,只是防止别人修改代码的内容啊

能修改你的代码, 就等同于可以读出你的代码, 你再想想是不是这个理

回复 支持 反对

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
发表于 2018-9-5 17:48:41 | 显示全部楼层
edmund1234 发表于 2018-9-5 17:33
能修改你的代码, 就等同于可以读出你的代码, 你再想想是不是这个理

都读出来了,我还修改什么,直接用
回复 支持 反对

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
 楼主| 发表于 2018-9-5 18:01:23 | 显示全部楼层
ssssssssssss 发表于 2018-9-5 17:48
都读出来了,我还修改什么,直接用

这是顺序的问题
因为可以写, 之后才可以读
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2018-9-5 21:26:55 | 显示全部楼层
edmund1234 发表于 2018-9-5 18:01
这是顺序的问题
因为可以写, 之后才可以读

让他读不了不就可以了么
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
 楼主| 发表于 2018-9-5 22:14:31 | 显示全部楼层
八度空间 发表于 2018-9-5 21:26
让他读不了不就可以了么

他能从你的代码中插入一段, 他所写的代码, 你还能用什么方法不让他读?
你自己要把现有的代码中加一段, 把Flash的所有内容通过USART发出去, 能有什么方法让你读不了Flash的?呵呵
回复 支持 反对

使用道具 举报

0

主题

126

帖子

0

精华

高级会员

Rank: 4

积分
502
金钱
502
注册时间
2016-11-28
在线时间
97 小时
发表于 2018-9-6 08:51:10 | 显示全部楼层
用独立的硬件认证IC,部分程序集成在认证IC内部,每一台机器上的认证IC内部都有不同的算法程序,硬件成本增加0.5元左右
回复 支持 反对

使用道具 举报

42

主题

297

帖子

0

精华

高级会员

Rank: 4

积分
994
金钱
994
注册时间
2016-7-22
在线时间
318 小时
发表于 2018-9-6 09:05:06 | 显示全部楼层
edmund1234 发表于 2018-9-5 22:14
他能从你的代码中插入一段, 他所写的代码, 你还能用什么方法不让他读?
你自己要把现有的代码中加一段 ...

设为禁止读flash,如果还想烧入代码,必须全片擦除才行,他还怎么读我的代码?
我是利用芯片的id号,利用加密字,还有加密算法,在bootloader中做判断,在sram做标志,对的话跳到应用程序,再去读sram中的标志,然后执行应用代码
回复 支持 反对

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
 楼主| 发表于 2018-9-6 12:02:20 | 显示全部楼层
本帖最后由 edmund1234 于 2018-9-6 12:05 编辑
hi我歌月徘徊 发表于 2018-9-6 09:05
设为禁止读flash,如果还想烧入代码,必须全片擦除才行,他还怎么读我的代码?
我是利用芯片的id号,利 ...

"设为禁止读flash,如果还想烧入代码,必须全片擦除才行"
用正常方式确实是这样的, 但偏偏就有方法可以绕过这样的限制, 否则就不叫破解了

用ID号是必须的, 那是双保险, 我上面说的是第一层保险

回复 支持 反对

使用道具 举报

3

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2016-3-1
在线时间
26 小时
发表于 2018-9-6 14:53:41 | 显示全部楼层
leiyitan 发表于 2018-9-6 08:51
用独立的硬件认证IC,部分程序集成在认证IC内部,每一台机器上的认证IC内部都有不同的算法程序,硬件成本增 ...

请教下独立的硬件认证IC有那些型号?因为这是我第一次听到,先到这里谢过
回复 支持 反对

使用道具 举报

0

主题

126

帖子

0

精华

高级会员

Rank: 4

积分
502
金钱
502
注册时间
2016-11-28
在线时间
97 小时
发表于 2018-9-18 21:40:23 | 显示全部楼层
oahzhao 发表于 2018-9-6 14:53
请教下独立的硬件认证IC有那些型号?因为这是我第一次听到,先到这里谢过

我用过深圳中巨伟业的芯片
回复 支持 反对

使用道具 举报

2

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-5-30
在线时间
36 小时
发表于 2020-5-19 19:34:21 | 显示全部楼层
如果读id直接出现id地址,编译后烧写文件找到1ffff7e8改成0x800f000,再在0x800f000里面填 上母片的id,程序就被破解了
回复 支持 反对

使用道具 举报

2

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-5-30
在线时间
36 小时
发表于 2020-8-10 14:06:03 | 显示全部楼层
三、利用id做软件加密
1,如果板子上有外部存储器,可以先编写一个程序,利用算法把id计算得到一些值存入外部存储器,然后再烧写真正的程序,真正的程序去校验外部存储器的数据是否合法即可

2,利用板子上按键组合,或是上电按住某些键,程序在这个时候利用算法把id计算得到一些值存入程序区(stm8为EE区),程序运行时去验证程序区数据是否正确

3,轩微编程器有软件加密的功能,编程器会读芯片id,根据算法直接改写缓冲区,达到软件加密的作用

4,读出的id通过一定算法,例如异或加上一个数,得到的数据存入flash(只运行一次,运行后标志位也存入flash),下次读到这个标志位,就不运行这个程序。//Q9272078

四、做软件加密时注意
1,不要在程序中直接出现id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0   STM8: 0x4865~0x4870
2, 利用校验和或是crc对程序区进行校验,防止改程序
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 06:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表