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

2020-02-20 20:45发布

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

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

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


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
wangpengcheng
1楼-- · 2020-02-25 14:21
richyhuang 发表于 2014-11-21 16:39
别人会动态调试你的程序的,ram里面的内容一样可以访问到的.

另外,RAM中的东西是可以改动的,在调完程序后完全可以改成别的东西,等下次再调用的时候再解密!甚至也可以把不同的函数想办法放到相同的ARM地址区!这样的话让他去解吧,去动态运行吧!不敢说完全解不了,但是解密的工程师累个半死那是肯定的
wangpengcheng
2楼-- · 2020-02-25 18:07
xuyuetc 发表于 2014-11-21 16:50
真高大上

自己多动动脑子,要比花钱打官司好很多!
wangpengcheng
3楼-- · 2020-02-25 23:00
huangqi412 发表于 2014-11-21 16:53
谢谢啦

不客气,呵呵,要是有需要我烧录器配合的,可以合作哦!
huangqi412
4楼-- · 2020-02-25 23:23
 精彩回答 2  元偷偷看……
wangpengcheng
5楼-- · 2020-02-26 03:39
huangqi412 发表于 2014-11-21 16:59
定义某一个程序编译到RAM空间的话,在分散加载文件设置,然后编译。再将HEX里这一段程序拷贝到没用的FLAS ...

理解完全正确,呵呵,只是在你往Flash里面拷贝的时候,将数据进行加密后再拷贝,当你从Flash里拷贝到RAM中时进行解密拷贝!麻烦是肯定麻烦一点,但话说回来,加密的人麻烦了,做破解的要比你累N倍啊!
huangqi412
6楼-- · 2020-02-26 05:16
wangpengcheng 发表于 2014-11-21 17:06
理解完全正确,呵呵,只是在你往Flash里面拷贝的时候,将数据进行加密后再拷贝,当你从Flash里拷贝到RAM ...

  从HEX里提取RAM函数代码拷贝到FLASH里合并BIN文件,似乎得搞个软件才行,手工弄麻烦。

一周热门 更多>