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

2020-02-20 20:45发布

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

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

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


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
wangpengcheng
1楼-- · 2020-03-01 10:59
3DA502 发表于 2014-11-22 19:11
我见过的解密的人是土老板,只会销售
拿一块板子,寄给北京的XXX,然后等结果
解密的XXX读出bin文件后进行 ...

就是因为有这种直接解密就能拿到BIN文件的,才要在程序中想办法加密!让破解难度增大
wangpengcheng
2楼-- · 2020-03-01 11:59
witbrave2014 发表于 2014-11-22 20:29
没有破解不掉的加密,只能尽量增加破解成本才能延长产品被破解的周期

是这样的,呵呵,其实不管怎么加密,最终芯片运行时肯定是机器码!所以,拿到BIN文件其实在目前的破解方法来说还是比较简单的,所以要做一些软件上的加密,增加其破解难度与周期
zhangchaoying
3楼-- · 2020-03-01 14:42
 精彩回答 2  元偷偷看……
GoingDown
4楼-- · 2020-03-01 19:52
产品上不敢这么用,这么复杂的加密手段,可能引起产品的不稳定。我做的产品从来不加密。
xivisi
5楼-- · 2020-03-02 01:11
表示  直接改写的BOOT机器码   在你解密完成返回函数那里  放置一个 原地跳转指令    JTAG 读取所有数据出来  直接破解还把你的加密整个干掉   

楼主还有其他地方函数呢?
codefish
6楼-- · 2020-03-02 02:07
本帖最后由 codefish 于 2014-11-23 09:55 编辑

不错的方式,不过就是有点麻烦
目前我的加密水平还只是停留在设置芯片自身的加密位上面。欢迎大家来破解。

一周热门 更多>