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

2020-02-20 20:45发布

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

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

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


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
wangyu_2011
1楼-- · 2020-03-03 13:54
这个方法和我的想法一样。我在另一个帖子里回过。对于修改解密代码后打开调试接口的办法。其实可以在程序'中判断调试状态和用运行超时的办法监控。当然还有一个更好的办法,但我公开。
wangyu_2011
2楼-- · 2020-03-03 15:17
最好的加密就是让别人不能了解你的系统。和有些信息是别人不知道的。
wangpengcheng
3楼-- · 2020-03-03 18:25
1a2b3c 发表于 2014-11-23 13:41
昨天还是前天我才回答了一个这个问题,
就是基于唯一ID的加密,不管用什么多复杂的算法也好分散也好,只要 ...

亲,看一下我86楼的回答,呵呵!
wangpengcheng
4楼-- · 2020-03-03 22:15
1a2b3c 发表于 2014-11-23 13:43
楼主也参与了那个帖子的讨论的啊

就是看到你那个帖子,然后自己最近又在研究这个东西,我才发的这个帖子,呵呵!
wangpengcheng
5楼-- · 2020-03-04 02:09
 精彩回答 2  元偷偷看……
wangpengcheng
6楼-- · 2020-03-04 02:54
wangyu_2011 发表于 2014-11-23 15:20
最好的加密就是让别人不能了解你的系统。和有些信息是别人不知道的。

你说的对,呵呵,我是把加密方法公布了,所以讨论的时候很多人会针对这种方法来想办法!如果别人根本不知道我是用什么方法加密的,那么他可能需要时间来看汇编代码来理解!

一周热门 更多>