专栏中心

EEPW首页 > 专栏 > STM32加密之我见

STM32加密之我见

发布人:0750long 时间:2010-02-09 来源:工程师 发布文章

STM32加密之我见

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

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

 

1 在主程序的起始位置做程序是否为初次运行检查,是就进入第2步的程序中。不是初次运行是就做ID校验,通过开始运行程序,不能通过进入空操作死循环。

 

2写一段程序包含ID读写功能函数、Option字设置函数、当然Flash 读写函数也是要的。在这个函数中安插一个初次运行标志。运行完后擦除掉。应用程序以此判断是否需要执行这段程序。这段程序不要放在别人容易猜测到的位置。

 

3在应用程序中事先做几个数组,用于保存从芯片中都出的ID。这个数组里事先放一组自定义的字符。在做写ID时先看看这里面是不是你安排的字符。不是就不写ID。

 

4将你读出的ID打乱后分成几组写入预定好的数组中。

 

5写Option字的读写保护及其它相关位。

 

到此结束,希望对能用得着的朋友有点帮助。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

“iiizyj”的智能小车正向行驶视频

视频 2012-05-11

ZY886B IC卡水表LCD液晶显示模块使用说明

英特尔Gaudi 2D AI加速器为DeepSeek Janus Pro模型提供加速

winCE msdn讲座(10)

50%的年长者可能会听障?!救赎的办法在这里

2012年中国连接器行业市场竞争分析

视频 2012-05-15

英飞凌推出基于MEMS的集成式先进超声波传感器

使用德州仪器功能安全合规型降压稳压器为下一代ADAS处理器供电

2024年DigiKey新增了110多万种零件和455家供应商

元件/连接器 2025-02-07

光刻机厂商ASML发布2024年全年财报, 销售额283亿欧元

EDA/PCB 2025-02-07

winCE msdn讲座(9)

数据保存期限100年,安森美新款EEPROM是如何做到的?

ZY886C IC卡煤气表LCD 液晶显示模块使用说明

TDK推出广泛适合汽车和工业应用的无铅NTC热敏电阻

英飞凌2025财年开局略优于预期,因汇率影响上调全年业绩展望

“asean”的AD采集_温度采集_超声测距_日历时钟_LCD显示视频

视频 2012-05-10

优良的设计、卓越的链接

视频 2012-05-15

传统相机开发基本流程参考请收藏!

winCE msdn讲座(11)

光端机在军工领域的应用和发展趋势

视频 2012-05-15
更多 培训课堂
更多 焦点
更多 视频

技术专区