stm32jlink 和加密算法

本文讨论了如何在STM32中利用JLink管脚,并提出了基于芯片ID的加密保护策略。通过设置映射复用寄存器以使用JLink作为GPIO,同时阐述了一种一次性运行的程序,该程序在启动时读取并验证芯片ID,防止未经许可的复制和使用。通过分散ID、添加自定义标识和设置读写保护,增强了固件的安全性。
摘要由CSDN通过智能技术生成

JLINK管脚在默认情况下,其引脚为调试端口,如果需要用其引脚做 GPIO管脚用,必须要设置其映射复用寄存器mapp。

STM32加密之我见

软件工程师很辛苦。每天加班熬夜,为了一个有创意的算法茶饭不思。面对当前强盗横行的世道,如何尽最大努力将你的劳动成果保住? 基本上锁有单片机都具备了读保护功能。但是还是很多很多的被解案例。所以单有读保护看来是不够的。STM32也难逃这个厄运。曾经看过一篇深圳大学出的文章(作者记不起来了)文章就讲到这个。能不能做点手脚,让被解出来的Flash文件不能直接在其他片上运行。所幸的是STM32具备了96为的芯片身份号码.可惜STM8自105以后的产品都没有了。

就此谈谈我的思路。其中借鉴了网友关于将Option 设置嵌入芯片的思路。既然可以将Option 设置嵌入一段程序到芯片中,那么我们就再多做一点。将读出芯片ID和写芯片ID也做进去。这样的话我们就可以在程序初次运行时让程序自动去读芯片ID之后再写入你指定的位置。再做读写保护设置。这个程序只运行一次后将永远不再运行了。在你的应用程序中每次复位后再运行都做ID确认,不对则进入一个空操作的死循环。这样的话即使程序被人读出来也不能治接应用了。如果他再做大量的反汇编这样就是间很困难的事了。这样做基本没人愿意做了。肯定还有更聪明的破解者会想到将你的Flash保存后再去读出目标芯片的ID,通过查找的方式从Flash文件中找出那段字符来的.这样你的程序也能被盗用到.谁说他要每个IC手工前进目标IC的ID有点麻烦,但终究还是可以用的.这样都不行,那还有什么办法?把ID拆散成不同组合写到不同且不连续的地址去.或者再带上你自己的标识.这样他还能查找得到吗?我觉得这基本不可能了.由于我目前还没有实际应用STM32做项目,所以也没有做这个实践.感情

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值