内 容 简 介本书全面分析软件防护技术,系统阐述防范非法复制的解决方案。首先介绍解密工具、软件保护的基本类型、光盘保护策略、免费软件和共享件以及商业软件保护程序。然后论述防范SoftICE和TRW的反调试、反-反汇编策略;分析断点、跟踪程序和调试程序的检测方法。最后介绍Windows的重要结构和一些软件保护编写规则。本书是最新软件防护技术的结晶,适合那些从事软件保护工作和商业软件开发的技术人员,也适合从事软件保护研究的相关人员。
前 言 本书全面介绍软件防护,内容丰富,涵盖面广,涉及许多前所未有的主题。若您编写保护自己的软件又想,防止软件被非法复制,或创建免费软件又希望以保护源代码,那么,本书将是您的理想选择。 在目前,很难找到关于软件防护的书籍,更难获得有关软件保护的全面信息。在前捷克斯洛伐克共和国参加游戏产品开发时,我惊奇地发现,由于缺乏该领域的信息和经验,其软件保护非常简陋,有时根本不设防护。最终,他们的产品蒙受了巨大经济损失。 保护的制止作用 无论软件保护多么周密,解密者最终也能破解。软件保护是一种缓兵之策,可起到延缓及制止作用。 若保护制止力度大,成为网上免费(已破解)软件的时间便会后延,您就可以利用这个时间段销售更多产品。假如不采取任何保护措施,那么,程序或游戏(共享件或商业软件)在发布当天就可能被盗取,销售量必定大打折扣。 防止保护被正确解除是一种非常有效的方法,这将使盗版软件不能运行,或不能正确运行,由此增加了原始副本的购买人数。虽然解密者最终能够成功,但拖延时间就等于赚取利润。上好方案是尽量延长停滞时间,造成几种解密版本出现,其中一些不能正确运行。在这种情况下,很多铁杆盗版者也可能就此作罢,花钱购买原版软件,免于无休止的激战。 使用汇编程序 本书列举了很多防止调试、反汇编或反编译应用程序实例。源代码中添加了注释,以方便读者理解。所有实例都用汇编语言写成,而未使用其他高级语言。原因有以下几点: ?● 若使用C++之类的高级语言,会将其他高级语言用户拒于门外。 ?● 若使用Visual Basic,大多数实例的代码将无法编写。 ?● 即使C++代码也有一些是用汇编语言写成的。 另外,您可将汇编代码直接插入C++和Delphi代码,换言之,汇编程序实例可用于这两种语言。汇编代码不能直接插入Visual Basic,不过,编程人员可将代码插入在另一编程语言(汇编、C++或Delphi)创建的库,然后从应用程序代码调用该库。 发布解密者策略 本书资料大多来源于解密者的Web页。 软件防护及解密信息是一把双刃剑。可用作开发人员编写保护的工具,也可用作解密者破解保护的利器。本书的读者对象是前者,原因有: ?● 开发人员通常不具备充足资源,需要为他们提供一本权威技术书籍,帮助他们获得及时准确的信息,从而立足技术前沿。防止因信息不畅,开发过时的保护策略,最终无功而返,空耗人力财力。 ?● 解密者信息来源广,若解密者了解破除某种保护的方法,迟早也会在专用Web页上发布详细技术信息。对他们而言,本书并不非常重要。 解密者可创建出极好的软件保护,因为他们消息灵通,经验丰富。如能化害为利,软件业的未来必更加光明。若能如此,我们将感到无比荣幸。