没有更锋利的矛,盾永远不会变得更加坚固。软件的加密解密技术也一样,只有了解解密,才能更好地加密。一个不熟悉敌手的战士不会有太多的胜利机会,不熟悉解密技术的软件开发者,也很难开发出不易被攻破的保护技术。
大多数人可能认为解密是一门高深的学问,其实这是因为以前这方面的技术资料缺乏,接触的人少,从而将“解密”这一学问过分的神化了。解密入门不难,你需要一些基础知识,再加上一些资料,就能轻松入门。学习解密建议掌握:
汇编语言一定得学好;
至少掌握一门高级语言;
最好掌握Win32编程,Win32程序设计就是API方式的Windows程序设计,学习WindowsAPI将使您更深入地了解Windows工作方式。此类书籍有CharlesPetzold著的《Windows程序设计》(以C来讲解)。
有精力,再看看《Windows核心编程》这类书,相信会使你内力大增的。
有了这些基础,再参考《加密与解密》这本书,你将会扣开加解密的大门。
解密技术涉及的内容很广,这里只是简单窥探一下破解者的操作手法――静态分析技术与动态分析技术。
一、静态分析
高级语言编写的程序有两种形式,一种编译成机器语言在CPU上执行,如VisualC++、PASCAL等。由于机器语言与汇编语言几乎是一一对应的,因此可将机器语言转化成汇编语言,这个过程称为反汇编(Disassembler)。另一种高级语言是一边解释一边执行的,称之为解释性语言。如VisualBasic、VisualFoxPro、.net系列等,这类语言编译的程序可以被还原成高级语言的原始结构,这个过程称为反编译(De白癜风的最佳治疗方法北京治疗白癜风医院那家比较好