最近做产品,想出一个加密方法,而且已经在产品中实现了,现在贡献出来,与大家分享:
第一步:选择合适的加密算法
第二步:利用分散加载,将部分重要函数放到RAM中运行
第三步:将RAM中运行的函数的BIN数据提取出来,用芯片唯一ID当密钥进行加密!
第四步:将加密后的数据放在固定Flash中
第五步:将原程序中的函数用NOP进行填充
第六步:程序运行初始化的时候,将固定Flah中的数据进行解密,并拷贝到RAM中,程序完整再开始运行!
这样子破解的时候就算进行程序对比,知道那块是加密程序,由于不了解算法,也没办法!
欢迎拍砖!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
要比那种进行比较跳转的在加密性能上可靠N倍!而且是函数在调用,可以将主要的几个函数进行加密,这样的话如果那几个函数解密错误,那么程序是随机出问题的,哈哈!
http://www.amobbs.com/thread-5592242-1-1.html
看看这个,这个是把函数固定在Flash中,只是地址不一样罢了!其实从ARM7开始,网上就有N多分散加载的讨论,呵呵,多搜搜万能的神坛,多问问度娘!
看看JLINK 在某宝上的价格,你觉得呢?
一周热门 更多>