基本信息
编辑推荐
本书是密界一流高手段钢的呕心之作,通过解析大量实例来展现软件加密与解密的最深处,是软件开发人员不可多得的一本专业参考书。
内容简介
计算机书籍
软件保护是维护软件开发人员利益的主要手段,是软件开发过程中的重要环节。为了跟上技术发展的步伐,本书在第一版的基础上,更新了第一版中的过时内容,补充了许多新技术。本书全面讲述了Windows平台下的最新软件加密与解密技术及相关解决方案,采用循序渐进的方式,从基本的跟踪调试到深层的拆解脱壳,从浅显的注册码分析到商用软件保护,几乎囊括了Windows下的软件保护的绝大多数内容。本书共分三个部分。第一部分介绍与加密和解密技术相关的基础知识。第二部分全面讲述各种最新的软件加密与解密技术及方法,如静态分析技术,动态分析技术,序列号,警告窗口,时间限制,加密算法MD5、SHA、RSA、ElGamal等。第三部分主要介绍PE文件的知识,如增加文件功能、加壳与脱壳、补丁技术等。
本书是密界一流高手的呕心之作,通过解析大量实例来展现软件加密与解密的最深处,是软件开发人员不可多得的一本专业参考书。
目录
1.1 文本编码方式
1.2 WINDOWS API函数
1.2.1 Win API简介
1.2.2 什么是句柄
1.2.3 常用Win32 API函数
1.3 WINDOWS与UNICODE
1.3.1 Windows 9x与Unicode
1.3.2 Windows 2000/XP与Unicode
1.4 WINDOWS消息机制
1.5 WINDOWS注册表
1.5.1 注册表的逻辑结构
1.5.2 注册表相关函数
1.5.3 注册表分析软件
1.6 保护模式简介
1.6.1 虚拟内存
1.6.2 保护模式的权限级别
第2章 代码分析技术
2.1 认识PE格式
2.1.1 PE格式
前言
软件加解密的发展历史
我们通常是随着操作系统的不断升级来划分相应的软件,所以划分软件加解密的发展历史就是操作系统发展的历史。
1.DOS时期
这个时代的软件主要是正式版和功能不全的Demo版以及一些磁盘防拷贝保护,很少有所谓的共享软件(Shareware)。所以DOS时代所谓的解密通常是去掉软件中的某些限制或跳过原版磁盘检查,然后通过广大业余的BBS提供下载。但值得一提的是,这个时代的软件由于16位操作系统很容易接触到系统底层的原因,而导致个别软件保护方式异常强悍,又因为在16位平台上很难区分系统领空和程序领空而导致天然的破解跟踪困难,所以这个时代的软件保护机制两极分化很严重。
2.Windows 95早期
当 Windows 95出现的时候,很多人不适应这个平台,它上面的加解密资料奇缺,对许多人来说就像做了一场恶梦。这段时期共享软件渐渐地盛行起来,采用序列号保护的共享软件越来越多。由于当时许多程序员对刚刚出现的Windows 95不了解,感觉有些手足无措,编制的软件在加密部分都比较脆弱,所以那时候的序列号加密方案特别脆弱。
3.Windows 95末期
其实这段时期应该是Windows 95和Windows 98共存的时期。在这个时期,程序员已经对Windows 9x这个系统了如指掌,一些需要较高编程技巧、与系统核心等底层联系紧密的软件纷纷出笼。这个时期,共享软件大多还是采用序列号加密方式,但其序列号通常经过复杂的计算,所以很难像早期的软件一样,随随便便就能被解密。
4.Windows 2000/XP时期
这段时期就是Windows 9x和Windows 2000/XP共存的时期。这时,各种软件的加密外壳泛滥,特别是各种专用加壳软件的出现,大大地提高了软件的保护质量;同时,解密技术也不断提高,各种新式的解密工具随即出现。此时的序列号加密越来越多地采用密码学中不可逆的加密算法,使得解密的过程越来越像高等数学的研究。软件解密者要想得到正确的序列号就必须对各种成熟加密算法有很深的了解,或者找出软件加密算法的漏洞(像WinRAR,CloneCD等软件的Keygen就是利用ECC椭圆算法的加密漏洞而编制出来的)。
关于本书
2000年初,作者想找一些研究加解密的朋友交流一下,但十分令人遗憾的是,那时国内这方面的技术资料很缺乏,不成系统,大家的交流也有限,因此就建了一个主页“看雪学院”,与大家共同探讨加密与解密的知识。这个主页是当时国内惟一一个从技术角度研究加解密的站点,并在广大网友的支持下,健康地成长了起来。后来,主页提供的软件调试论坛成了国内知名的加解密技术论坛,吸引了密界众多高手。大家以知识共享的精神,无私地将自己所知的技术奉献出来了,至今为止原创了2500余篇文章,极大地推动了国内加解密技术的发展。
这是一本很难写的书,因为当时这是一个全新的领域。从Windows 95面世以来的6年内,市面上没有一本这方面的书,网上也缺乏相关资料。为了填补国内Windows平台上加密与解密书籍的空白,作者与软件调试论坛的密界一流好手努力合作,克服种种困难,于2001年9月推出了国内第一本全面介绍Windows平台下软件加密与解密技术的书籍,这就是本书的第一版《加密与解密——软件保护技术及完全解决方案》。
在第一版中,我们试图从软件加密和解密这两个方面对当今流行的软件保护技术进行了分析。希望读者看过本书之后,能够对各种流行的软件保护与破解技术有所了解。
第一版一面世就得到了广大读者的喜爱和认可,获得了2002年全国优秀畅销书奖(科技类)!在全国很多计算机专业书店获得了名列前茅的销售业绩,而且一年来在著名的华储网销售排行中都被排在前几名内。次年,本书在台湾发行了繁体版,得到了台湾读者的热烈欢迎。
为了跟上技术发展的步伐,作者花费了6个月时间做准备,6个月时间进行写作,汇集了国内顶尖软件调试论坛(看雪论坛)的众多密界一流好手,以本书第一版为基础,更新了第一版的大部分内容,最后完成了本书的第二版《加密与解密》。这本500多页的图书,几乎囊括了Windows下软件保护的绝大多数内容,从基本的跟踪调试到深层的拆解脱壳、从浅显的分析注册到商用的软件保护,其跨度之广、内容之深,国内至今尚无同类出版物能与之比肩。
内容导读
第二版是在第一版基础上写成的,删除了第一版中的过时内容,补充了许多新技术。全书有一半的内容与第一版不同,结构更加合理。补充和加强了Windows与Unicode、代码逆向分析、IDA详细操作、SoftICE符号调试技术、OllyDbg操作、密码学算法应用、VB的Pcode跟踪、增加PE文件的功能、SEH技术、脱壳技术等。
什么是API?什么是Unicode?什么是逆向分析?Winodws 9x与Windows 2000/XP上的加解密究竟有什么不同?只有了解这些基础知识,在加密与解密过程中才能有的放矢地处理各种问题。本书的基础篇(第1章“基础知识”和第2章“代码分析技术”) 将系统地解答这些问题。