最近做产品,想出一个加密方法,而且已经在产品中实现了,现在贡献出来,与大家分享:
第一步:选择合适的加密算法
第二步:利用分散加载,将部分重要函数放到RAM中运行
第三步:将RAM中运行的函数的BIN数据提取出来,用芯片唯一ID当密钥进行加密!
第四步:将加密后的数据放在固定Flash中
第五步:将原程序中的函数用NOP进行填充
第六步:程序运行初始化的时候,将固定Flah中的数据进行解密,并拷贝到RAM中,程序完整再开始运行!
这样子破解的时候就算进行程序对比,知道那块是加密程序,由于不了解算法,也没办法!
欢迎拍砖!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
对程序的完整性进行加密,主要是算法,算法千千万,如果你自己设置唯一密钥的话难度会加成!
你跟9楼的思路不能说不正确,但是当人力有限的时候,你不得不这么做,坛子里打官司的事情也不少吧?什么你抄我的我抄你的!其实还是自己把加密做好了,就没那么多事情了!
就像目前莫大做的防盗号的事情,是一个明显的例子,当别人抄了你的东西,你找他还不如自己把自己这块做到别人抄不走!就解决了所有事情了!
思路都有了,自己动动手就可以了!
说白了,究其本源 依旧是机密算法和唯一ID来进行做文章,就看怎么做了
可以将过程做得极其复杂,另外放入很多跟唯一ID做算法运算的垃圾代码,即人家即使能比较出来你2块Flash很多不同之处,但是依旧无法确定哪一块是加密有效期,所谓的声东击西之计
一周热门 更多>