ARM芯片程序完整性加密,增加破解难度,保护知识产权!

2020-02-20 20:45发布

最近做产品,想出一个加密方法,而且已经在产品中实现了,现在贡献出来,与大家分享:

第一步:选择合适的加密算法
第二步:利用分散加载,将部分重要函数放到RAM中运行
第三步:将RAM中运行的函数的BIN数据提取出来,用芯片唯一ID当密钥进行加密!
第四步:将加密后的数据放在固定Flash中
第五步:将原程序中的函数用NOP进行填充
第六步:程序运行初始化的时候,将固定Flah中的数据进行解密,并拷贝到RAM中,程序完整再开始运行!

这样子破解的时候就算进行程序对比,知道那块是加密程序,由于不了解算法,也没办法!
欢迎拍砖!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
wangpengcheng
1楼-- · 2020-02-28 01:25
 精彩回答 2  元偷偷看……
sblpp
2楼-- · 2020-02-28 04:37
amxx 发表于 2014-11-21 20:11
既然大家提到加密,我谈谈对STM32的看法,当然这是我个人的想法,因为时间关系还没有来得及实现,如果想法 ...

程序中使能flash读保护,即使再ram中运行 ,只要一读flash,就擦除全部flash。
amxx
3楼-- · 2020-02-28 10:33
wangpengcheng 发表于 2014-11-21 20:30
STM32程序加密后,用RAM启动也读不出来的!这个我试过!

不过我遇到过一种情况,因为我做烧录器,所以经 ...

楼主你的代码之针对STM32F030有效么?其他芯片测试过没?要是都有效,那你不是无敌了
wangpengcheng
4楼-- · 2020-02-28 15:40
amxx 发表于 2014-11-21 20:45
楼主你的代码之针对STM32F030有效么?其他芯片测试过没?要是都有效,那你不是无敌了 ...

那根本不是什么代码,而是我随便找了一个HEX文件,把它当BIN文件烧到Flash里面,是用来测试我烧录器的速度的!
nhztb
5楼-- · 2020-02-28 20:40
这个只对 能在RAM运行程序,而且还要能修改FLASH的单片机有效。还是烧录时做手脚比较好,程序先校验自身完整性。
wangpengcheng
6楼-- · 2020-02-29 00:39
 精彩回答 2  元偷偷看……

一周热门 更多>