购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

软件逆向工程和破解是历史悠久且内容丰富的技术领域。几十年来,软件开发者一直努力在其应用程序中构筑防御措施,以保护知识产权,避免对程序代码的未授权修改。几乎从逆向工程师开始为了兴趣或盈利而研究和改动代码的那一刻起,软件破解的技艺就存在了。

在详细探讨逆向工程的工作原理之前,理解这些技术的背景非常重要。下面将介绍你能从本书中获得什么,同时深入讲解软件逆向工程和破解的历史背景及法律相关的考量。

本书目标读者

本书是给所有想探索、理解并修改封闭源代码软件的人准备的,无论是安全领域的专业人员还是充满热情的业余爱好者。本书将引领好奇的读者深入软件破解和计算机的核心,探索其运作机制。深入学习x86计算机的运行原理,不仅对软件逆向工程和破解来说至关重要,还能帮助读者在代码优化、效率提高、调试、编译器设置调整以及芯片选择等方面成为更出色的开发者。书中还将详细介绍软件破解的过程,让读者了解真实世界中破解者所使用的工具和技术,并通过实际动手破解真实应用程序的实验来验证学到的知识。此外,书中也会涉及防御策略,帮助读者理解如何对抗软件破解攻击。

通过掌握攻击与防御技术,读者可以成为出色的软件破解专家或软件防护专家。

本书值得期待的内容

本书主要基于逆向工程的三大核心原则:

●没有破解不了的软件。

●以提高速度为进攻目标。

●以放慢速度为防守目标。

基于这种理念,人们可以针对任何软件实施逆向工程,以揭示其秘密,绕过其保护机制。问题只在于时间的长短。

就像网络安全的其他领域一样,攻击方向和防御方向的逆向工程师都能从一套类似的技能中受益。本书将介绍以下三种相互关联的技能:

●逆向工程:一种拆解软件并解析其运作方式的过程。

●破解:在逆向工程的基础上,通过操控程序的内部机制让其执行原本不打算执行的操作。

●防御:尽管所有的软件都可以被破解,但防御措施可以让破解程序的过程变得更加困难和耗时。

不理解逆向工程和破解,防御者就无法制定有效的保护措施。另外,如果攻击者能够理解程序的运作方式并进行操作,他们就能更有效地绕过并战胜这些保护措施。

本书结构

本书是根据这三种核心技能来组织的。结构如下:

(续)

实践经验和实验

学习逆向工程和软件破解最好的方式就是进行实践。因此,本书将包含几个动手实验,以演示描述的概念。

本书的目标不是教授一套特定的工具和技术。虽然我们的重点是运行在Windows上的x86软件,但很多方法和技术也可以应用到其他平台上。我们会尽量展示多种工具,包括开源软件、免费软件、共享软件,以及商业解决方案。理解哪些工具可用,以及它们的优势和劣势之后,就能更有效地选择适合任务的工具。

我们的动手实验和练习将针对不同目标进行逆向工程与破解,这些目标包括:

●真实软件:一些练习会使用精选的真实软件,以避免侵犯版权。

●专为本书编写的软件:为了阐述用现实世界的例子难以展示的概念而专门为本书编写的软件。

●破解练习程序(crackme):这是由破解者开发的软件,用于阐述概念或挑战他人。

随书文件下载

本书提到了一些额外的文件,如实验或工具对应的文件。这些文件可以从https://github.com/DazzleCatDuo/X86-SOFTWARE-REVERSE-ENGINEERING-CRACKING-AND-COUNTER-MEASURES下载。

历史

在深入了解破解和逆向工程的细节之前,了解其历史是非常有用的。软件保护措施以及用来克服它们的技术和方法已经演变了几十年。

第一个软件保护措施

第一个软件版权保护措施出现在20世纪70年代。这个领域的一些早期行动者如下:

●AppleⅡ:AppleⅡ引入了专有的磁盘驱动器,这类磁盘驱动器可以在半轨道进行写入,允许写入额外的环,也允许错开并重叠扇区。这样做的目的是让非Apple机器和不会读写这些奇特偏移位置的软件无法使用这些磁盘。

●Atari 800:Atari 800系统会有意在其磁盘中包含坏的扇区,并尝试加载这些扇区。如果这些加载操作不返回“坏扇区”错误,那么软件就知道这不是一个有效的磁盘,并会停止执行。

●Commodore 64:正版的Commodore 64软件仅通过只读磁盘进行分发。这种软件会尝试覆盖磁盘,如果成功了,它就知道这张磁盘是假冒的。

所有这些保护措施都依赖于软件的异常行为,比如使用无效的内存或试图覆盖程序自己的代码。要打破这些保护措施,就需要理解软件的工作原理。

破解和逆向工程的崛起

破解和逆向工程兴起于20世纪80年代。然而,早期的破解者并不是为了钱。破解是一场比赛,比的是谁可以最快找出并绕过软件的保护措施。

在接下来的几十年中,逆向工程和破解领域不断发展。以下是逆向工程历史上的一些关键日期。

1987年 Fairlight的成立可追溯到1987年,由Bacchus创建,它是最早的运营团队之一。21世纪初,在美国联邦调查局(FBI)的打击下,Fairlight逐渐崭露头角。若想了解更多历史详情,请访问www.fairlight.to和csdb.dk网站。

1990年 Elliot J. Chikofsky和James H. Cross II定义了逆向工程:“逆向工程是分析目标系统,识别出系统的各个组成部分及各部分之间的相互关系,并以其他形式或更高层次的抽象来表示该系统的过程。”

1997年 Old Red Cracker(网络昵称+ORC)创立了基于互联网的高级破解大学(+HCU),使每个人都可以学习破解知识。+ORC在网上发布了“如何破解”的教程,并撰写了学术论文。+HCU的学生都使用以+开头的网络昵称。

1997—2009年 “破解圈”(warez scene)崭露头角,各团体竞相抢先发布受版权保护的材料。内部人士(也被称为“供应者”)为他们的团体提供早期访问权限,“破解者”(cracker)会打破这些保护措施,而“传递者”(courier)将破解软件分发到FTP站点。2003年—2009年,大约有3164个活跃团体在“圈内”竞争,他们主要是为了荣誉和吹嘘,而非金钱。

2004年 美国联邦调查局等开始对“破解圈”进行突袭。其中,“霹雳行动”(Operation Fastlink, 2004)导致60名破解圈成员被定罪,“关闭网站行动”(Operation Site Down, 2005)成功打击了25个破解团体。

软件保护措施和破解者之间的竞赛在持续进行,而逆向工程技能是双方都无法或缺的技能。破解者需要理解程序的运作方式,以便更好地操纵它并绕过防御措施。而在防守方面,理解最新的破解技术至关重要,这有助于我们开发能够保护知识产权和其他敏感数据的防御措施。

法律

“实践是最好的学习的方式”,这就是为什么本书包含了一些真实软件、专为本书编写的软件和破解练习程序方面的实验和实践。我们不是律师,如果有人有版权疑虑,请咨询律师。我们推荐电子前沿基金会(Electronic Frontier Foundation,网址为www.eff.org)。在第15章中,我们将讨论有关法律的话题,因为我们觉得每个人都需要理解影响这个领域的美国法律。主要有两部法律需要关注:《版权法》(Copyright Act)和《数字千年版权法》(Digital Millennium Copyright Act, DMCA)。

《版权法》的“合理使用”条款(Fair Use Clause)规定,当逆向工程用于“批评、评论、新闻报道、教学(包括课堂使用的多份复印件)、学术或研究……”目的时,属于“合理使用”。这一例外情况需要平衡“对版权作品潜在市场或价值的影响”。本质上,如果不分享或销售破解软件,那么用于教育目的的逆向工程就是合法的。

2016年10月,DMCA还增加了一条关于善意安全研究的例外规定。该规定指出:“仅为了善意测试而访问计算机程序……这样的活动应在设计好的控制环境中进行,以避免对个人或公众造成伤害……并且不能用于版权侵权的目的。”

本书中检视并用于练习的软件都是精心挑选的,可在不违反“合理使用”条款和DMCA免责条款下使用。如果你打算对软件进行逆向工程和破解,对于除自我学习以外的其他目的,应该先咨询一下律师。逆向工程的法律考量也将在后面的章节中进行更详细的探讨。

软件逆向工程和破解有着丰富的历史,这些技能既能用于攻击也能用于防御。然而,理解这些学科相关的法律并确保活动落在善意测试和“合理使用”免责条款范围内是很重要的。

本书的目的是为读者提供一套强大的软件逆向工程与破解的技能和工具。本书将从基础内容开始,逐步深入软件逆向工程和破解的各个环节,一直到一些高级攻防技术。 rNsptVF9X+v1qEOvONdUqfuxn3GbPYrbNV7SqyqPpWZjCVJrXIB2h88c1lujCU7L

点击中间区域
呼出菜单
上一章
目录
下一章
×