没有合适的资源?快使用搜索试试~ 我知道了~
STM32芯片程序加密方法.doc
1星 需积分: 1 22 下载量 27 浏览量
2021-10-18
08:47:29
上传
评论 1
收藏 27KB DOC 举报
温馨提示
试读
1页
资源会介绍id软件加密的破解方法,根据破解方法,列出设计id软件加密应该注意设计技巧 ,如果不注意设计细节,软件加密形同虚设
资源推荐
资源详情
资源评论
STM32 软件加密设计要点
开发人员一般设计软件加密方法:读 id---复杂算法计算---对比之前存储的对应
数据(与 id 相关)---判断芯片是否合法。
由于读 id 时很多人直接用 id 起始地址,例如 0x1FFFF7E8,破解的人只要把这
个数据改成 0x8000020,并且 0x8000020 程序区域填上
母片的 id,不管你的算法有多复杂,这时你的程序就被破解了,改这种软件加密
一分钟就改好了。
一、两层保护
a) 读保护。设置读保护功能,使芯片中的程序无法被读出。当关闭读保
护功能时,芯片会自动擦除 flash 中的所有程序;
b) 唯一的 ID 识别。每片 STM32 芯片都带有唯一的 ID,在程序中加入
ID 验证,使程序只能在一个 ID 下运行。万一程序被拷贝出来,烧入
其它的 STM32 芯片中也不能运行。
特点:有两重保护,芯片可重复使用。
二、熔丝方案
1. 功能简介:通过烧断芯片程序烧写口的熔丝,防止芯片中的程序被读出
或修改;
2. 特点:熔丝一旦烧断,程序就无法读写,程序升级只能换芯片。
三、利用 id 做软件加密
1,如果板子上有外部存储器,可以先编写一个程序,利用算法把 id 计算得
到一些值存入外部存储器,然后再烧写真正的程序,真正的程序去校验外
部存储器的数据是否合法即可
2,利用板子上按键组合,或是上电按住某些键,程序在这个时候利用算法
把 id 计算得到一些值存入程序区(stm8 为 EE 区),程序运行时去验证程序区
数据是否正确
3,轩微编程器有软件加密的功能,编程器会读芯片 id,根据算法直接改写
缓冲区,达到软件加密的作用
4,读出的 id 通过一定算法,例如异或加上一个数,得到的数据存入
ash(只运行一次,运行后标志位也存入 ash),下次读到这个标志位,就
不运行这个程序。//Q9272078
四、做软件加密时注意
1 , 不 要 在程序中 直 接 出 现 id 地 址 , 例 如 STM32:1FFFF7E8 1FFFF7EC
1FFFF7F0 STM8: 0x4865~0x4870
2, 利用校验和或是 crc 对程序区进行校验,防止改程序
详细可以和我沟通 QQ9272078
资源评论
- heavmen2023-04-11meiyong
meijc119
- 粉丝: 4
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功