软件保护的安全性涉及到许多方面,包括反调试、反跟踪技术以及反静态分析技术等。但是就软件加密的安全性而言,安全性取决于两个方面:
(1)算法的安全性;
(2)特征码提取的难易程度。
动态注册码基于安全的公开算法,同时采用了动态提取特征码的方法,因而具有了较高的安全性。
此外,为了提高加密的安全性,在程序设计时做到了以下4点:
(1)附加码在程序中进行了简单的替换,这样就不能根据可执行程序直接分析出附加码的明文;
(2)将生成注册码的代码和检测注册码是否合法的代码分开,这样就不可能通过简单地判断系统调用来获得注册码;
(3)生成的注册码不存放一个数组中,而是分散存放,破解者就很难通过分析内存获得注册码;
(4)检测注册码时,加入了一些无用的运算,通过误导破解者来加大破解难度。