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

2020-02-20 20:45发布

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

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

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


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
机械码农
1楼-- · 2020-02-26 07:01
跑linux和安卓的arm有什么思路?
wangpengcheng
2楼-- · 2020-02-26 11:29
huangqi412 发表于 2014-11-21 18:11
从HEX里提取RAM函数代码拷贝到FLASH里合并BIN文件,似乎得搞个软件才行,手工弄麻烦。 ...

正在考虑12楼的方法,如果能非常方便的做到烧录器中,这个方案还是可行的!不过只是在KEIL中做过分散加载,不知道IAR的怎么弄!
wangpengcheng
3楼-- · 2020-02-26 14:44
 精彩回答 2  元偷偷看……
swap2013
4楼-- · 2020-02-26 17:31
这个比较厉害.
以前做的民用项目,连续工作第32天比对芯片唯一ID的bit8~bit15,错误后永久死机.差点把自己坑到...
wangpengcheng
5楼-- · 2020-02-26 19:04
swap2013 发表于 2014-11-21 19:02
这个比较厉害.
以前做的民用项目,连续工作第32天比对芯片唯一ID的bit8~bit15,错误后永久死机.差点把自己坑 ...

那你测试的时候是如何测试的?等32天?哈哈
swap2013
6楼-- · 2020-02-27 00:45
机械码农 发表于 2014-11-21 18:44
跑linux和安卓的arm有什么思路?

bootloader 里一样可以实现

一周热门 更多>