STM32/GD32单片机防止程序克隆盗版解决办法

该文提出两种防止产品在市场中被电路板抄板和程序克隆的策略。一种是在程序中处理,利用芯片唯一ID进行比较,阻止程序在非原芯片上运行。另一种是通过电路设计,使用加密芯片增强程序安全性。同时,文章提及FMC上锁可防止程序被修改或擦除。
摘要由CSDN通过智能技术生成

1.目的

解决产品在市场流通过程中被电路板抄板,程序克隆。以各种手段窃取别人的知识产权。

2.解决方案

**1.在程序中处理:**
	在程序每次上电运行时,先获取1次芯片唯一ID缓存在int GetID[10]数组中,然后在Flash特定存储区位置读出
	数据记作int ReadID[10],如果ReadID为0xFFFF,那么这代表了芯片第1次上电,然后将GetID中的芯片唯一ID
	保存在芯片flash特定位置,也就是读出数据缓存在ReadID的位置。举例说明:芯片的Flash大小为512KB,地址
	为0x800 0000 ~ 0x808 0000,如果程序编译完成后,有剩余地址,假设ROM区占用地址为0x800 0000 ~
	 0x807 0000,那么0x807 0000~0x808 0000之间的扇区即可以用作用户信息存储,我们将读出的GetID芯片ID
	 在第1次上电时存在当前位置,在之后的每一次上电时,都读取Flash的这个特定位置,读取到的内容即为之前
	 存储的芯片ID,然后将读出的ReadID芯片ID与获取到的GetID本次获取的唯一ID做对比,如果相同,即代表
	 程序未被拷贝,如果不同,程序停止执行。
	 因为如果不同,证明程序被拷贝到了其他芯片,用特定软件读出程序的本质是对flash内存的拷贝,当运行过
	 1次或者N次的程序被拷贝走会随存储在特定位置的上个芯片ID一起被拷贝,当进入新的芯片运行时,会检测到
	 当前ID与存储ID不一致,即停止执行。这样可以防止芯片程序被盗版,如果想防止程序被恶意擦除和修改,
	 用FMC上锁或者禁用下载口方式实现,但如果想仿真程序请酌情使用,且当我们程序在线更新时,可以设置
	 在特定界面用FMC解锁以实现程序的修改。但当程序正常运行期间推荐使用FMC上锁达到不被修改和擦除程序区
	 内容。
**2.在电路中处理**:
	可以在电路设计中采用加密芯片,将主要程序放在加密芯片中,加密芯片本身破解的代价会比较大,所以对程序
	防克隆有一定的作用。

3.感言

	以上仅为本人拙见,如有小伙伴需要源码或者问题请评论留言,博主会第一时间回复,有什么不妥的地方请
	指出,及时改正。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值