扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共4页)
5、采用国际标准加密算法加密的程序一定很难破解
对于软件加密的概念理解不很清楚的人,往往会有这样的想法,他们认为好的加密算法就会带来好的软件保护效果。实际上这完全是两个不同的概念。象 DES、RSA 等国际标准加密算法的对象是数据,对于纯数据保护来说,好的加密算法代表一切,但对于软件来说则不然。
软件是运行在客户计算机上面的程序,这个程序对于客户来说是完全公开的。如果能让用户在他的计算机上正确无误的运行软件,所有的解密、判别过程都必须在程序中出现。即使破解者看不懂开发商所使用的加密算法,但若把解密后的比较过程改写为强制成功的话,一样可以破解开发商的软件。
所以,对于软件保护来说,防止破解的有效方法是"隐藏算法"而不是"使用高难度算法",当然在算法能够很好隐藏的前提下使用国际标准算法会比自己编的算法效果更好些。既然算法能够被隐藏,那么最好也同时把算法进行某些变形处理,让算法和标准算法的处理结果有一些差异性,这样才能实现更好的隐藏效果。
6、编译出来的程序一定比解释运行的程序难破解
很多开发商会有这样的认知,完全是因为很多解释运行的程序有反编译工具的存在。因为被解释的内容就是实际程序的二进制压缩编码,反编译工具能够一点不差的把它回复成原始的代码。正因为这个原因,大多数开发商都认为解释运行的程序在安全性能上都很差,如果要搞加密的话一定要使用C/C++这样的编译类型的语言来开发。其实这个观点是不正确的。在当前市场上开发语言种类很多,并非所有的解释型开发语言都有反编译器的存在。没有反编译器存在的解释运行类的开发语言所开发出来的程序在跟踪和破解上比编译类型的开发语言要困难得多,在加密上具备了先天上的优势。
这也是我们所提倡的一个观点,真正好的加密应该是无为而治,通过技术复杂度来实现安全。开发者不需要特别考虑软件加密的问题,但加密出来的软件却非常难破解。
在软件技术极大丰富的今天,即使是最好的破解者也不可能掌握所有的技术。一个最蹩脚的 Lisp 编写程序的加密效果可能比一个最好的 C 编写程序的加密效果要好得多。因为 Lisp 这种比较冷僻的语言懂得的人很少,99%的解密者根本不知道如何分析一个编译 Lisp 语言编写出来的执行程序。这就是我想表达的一种思路,加深软件上的技术复杂度,往往比采用任何特别的反跟踪、反调试手段更为有效。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。