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

2020-02-20 20:45发布

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

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

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


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
wangpengcheng
1楼-- · 2020-03-04 03:53
xivisi 发表于 2014-11-23 13:16
我说的 破解方法  甚至绝大多数破解方法   都是建立在代码可被分析的情况下 ...

我相信现在的破解技术,采用Flash保护位的芯片,百分之九十九都能被读出来!BIN基本上没什么保密性可言,但就是要想办法让解密的人去研究代码,花费时间才行!
1a2b3c
2楼-- · 2020-03-04 05:08
wangpengcheng 发表于 2014-11-23 15:38
算法会被读出来,关键是密钥的唯一性,用唯一ID加密,可以保证密钥的唯一性!但是唯一ID可能会被别人篡改 ...

这样的话,就应该像另外一位网友说的,直接操作ID了,这样实际上整个片子都是和原片完全一模一样的了,整片CRC也是一样的,

就是他说的那个ID的可篡改性到底如何了,真如他说的ID值可以重新蚀刻的话,那么的确能轻易破解目前99%的加密了
wangyu_2011
3楼-- · 2020-03-04 10:47
加密和解密都是针对不同的方法来进行应对的.有破解的办法就会有加密的办法.只是因为芯片设计我们无法参与.很多好的方法没有办法实现.我们只能在现在别人芯片的条件下来想办法.所以会没有完美的解.如果项目的价值不高,也没有人会想着的解的.如果项目价值高.可以选择高安全系数的芯片.其实这样的芯片很多的.最简单的就是我们常用的U盾.成本也不高,如果觉得资源不够,也可以用这个芯片来做从机.
如果你真做出这种方案,我想明白的人看完方案就会自己放弃的.

一周热门 更多>