《软件加密技术从入门到精通》前言

越来越多的软件可以轻易地被破解掉,破解后的软件注册机、注册码、破解补丁在网上被公布出来,使软件作者蒙受了巨大的经济损失。造成这种情况的原因主要是软件开发者对软件加密的认识不足或是对软件加密不知道从何入手。他们要么太过于相信成熟的加密算法或是过于相信加密工具,要么没有分清注册码的明码比较和非明码比较,要么把加密算法的使用方法弄错了等等,如此做出来的软件保护方案在解密者手中简直就是不堪一击。

关于本书
本书将从最基本的基础知识开始讲起,逐步深入地介绍如何对软件进行加密,以及软件加密过程中所用到的各种知识,引导软件开发者设计出难以破解的软件保护方案。

本书各章的具体内容安排如下:
第1章 基础知识
讲述软件加密过程中用到的各种基础知识,包括注册表的读写操作、INI文件和自定义文件的读写操作、DLL文件和BPL控件的设计、结构化异常处理、防止应用程序的多个事例运行,以及在Delphi嵌入汇编进行编程。

第2章 加密算法
先介绍HASH算法(CRC32、MD5、SHA算法)、对称算法(DES、双重DES、三重DES、Blowfish、AES算法)、公开密钥算法(RSA算法)、其他算法(BASE64算法)的基本原理,然后用实例演示各种加密算法的 实现。

第3章 软件试用期
以原理和实例来讲述软件加密过程的试用期设置技术,这些设置技术包括软件试用次数、软件试用天数、软件最后试用日期、限制软件启动后的执行时间、NAG窗口提示等。

第4章 反跟踪技术
先介绍软件破解过程需要用到的各种工具,包括:SoftICE、OllyDbg、FileMon、RegMon、IDA Pro、W32DASM、DeDe,然后介绍检测这些工具的技术以及防脱壳技术、信息隐藏技术等。

第5章 注册认证和注册机
介绍软件的注册认证部分,包括如何选用加密算法和校验方式、硬件系列号保护方式、用户名保护方式、硬件系列号与用户名保护方式、随机注册码模式、KeyFile保护方式、用DLL实现注册认证、控件的注册认证方式、完整的软件保护方案实现,同时以实例演示各种技术。

第6章 网络验证
以Web服务器验证和本地服务器验证来讲述基于网络的注册验证技术,用网络验证技术实现在线升级的验证。

第7章 PE文件知识
讲述Win32平台下PE文件结构的知识,让读者能洞悉操作系统的秘密。

示例代码
本书是以实际应用作为写作依据的,在书中会出现大量的示例代码,限于篇幅,并没有把所有的代码放到书中,书里只放了关键的部分代码,书中省略代码处以“//…”标记,完整的示例代码可参看随书光盘。
本书全部的示例代码都是用Delphi 7.0进行编写的,书中的十六进制是以Delphi方式的$表示而不是0x表示,使用其他开发语言的读者需要区分一下。

致谢
首先要感谢母校的钱波、藤春芳、吴文虹,另外要感谢在本书写作过程中帮助与支持我的王国彦,最后感谢给予我支持和帮助的所有朋友。
史子荣
2007年2月于昆明
http://www.pefine.com