前面的文章分析过通达信指标加密最安全的方法是什么,请参考这个文章 通达信指标加密保护方法 ,其中最后提到DLL指标加密是目前安全性最高的方法,今天就针对这种加密方式,再次扩展讲讲通达信DLL加密指标加密安全性最高的改进方式,我们先加密一段代码,假如要对下面这段代码进行加密:
M5:=MA(C,5);
M10:=MA(C,10);
M20:=MA(C,20);
M1:REF(M5,2) > REF(M5,1) && REF(M5,3) > REF(M5,2)&& REF(M5,4) > REF(M5,3);
在之前的文章介绍过指标一键加密方式
我们先通过该一键加密工具加密出来的代码是这样:
M5:=TDXDLL8(230,C,TDXDLL8(118,27,813,3),99);
M10:=TDXDLL8(230,C,TDXDLL8(123,197,504,47),375);
M20:=TDXDLL8(230,C,TDXDLL8(124,156,527,121),3);
M1:TDXDLL8(111,TDXDLL8(111,TDXDLL8(106,TDXDLL8(217,M5,TDXDLL8(115,252,174,287),103),TDXDLL8(217,M5,TDXDLL8(114,43,35,53),306),207),TDXDLL8(106,TDXDLL8(217,M5,TDXDLL8(116,12,317,663),220),TDXDLL8(217,M5,TDXDLL8(115,355,897,836),252),376),924),TDXDLL8(106,TDXDLL8(217,M5,TDXDLL8(117,387,137,115),29),TDXDLL8(217,M5,TDXDLL8(116,131,47,115),747),747),75);
仔细看的朋友应该知道,上面这段加密代码是一行一行代码加密出来的,即通达信明文代码的每个符号,每个函数通达信DLL都有对应函数与之对应,这种加密方式性能跟通达信明文指标差不了多少的,安全性肯定会比其它加密方式的高,但是这种方式能否继续提升其安全呢?【之前的文章分析过指标做DLL加密安全性是最高的,做为专业保护者,有责任去分析更安全的加密方法】
我们知道,对于一个软件,黑客看到越多信息,如果让黑客都看清楚了你的加密思路,那么黑客破解起来就更容易【当你真正去做过破解时就非常能理解我这句话】。所以我们针对上面加密后的指标做改进,上面这个公式我们只输出了一条线,其它线都不输出,所以只要把M1结果输出来即可,而M1是依赖M5,M10,M20,所以如果我们如果把M5,M10,M20,M1的所有实现细节都隐藏起来的结果是如何呢?看下面加密后的代码:
M1:TDXDLL1(101,C,0,0);
一行代码实现四行代码效果
看到了吧,一条代码把所有细节都隐藏了,如果让黑客去破解,这么一条代码可以说没有提供任何可用的信息,如果黑客要破解这个指标,那么就需要把整个DLL给反汇编,然后一点一点去还原,最后再还原成通达信的代码【基本是不可逆转的】,所以很明显这种加密方式安全性最强的。
写在最后,这个世界往往就是这么对立的,在我们要追求最安全的时候,要实现起来确实最复杂,要求最高的。在前面介绍的一健加密时,如果实现了所有底层库函数,可以通过一键加密工具来实现代码的加密,非常的方便,但是如果要做到本章所讲的,那么就需要把待加密的代码给到加密者【自己有编程实现能力除外】,让加密者把多行指标代码封装到DLL里【建议不要把整个指标发给开发者,只发局部需要加密的代码给开发者即可,减少泄密风险】,这样可以大大提升代码的安全性。
好了,今天的分享就到这,有什么想法可以在评论区讨论