第122章 破解
在现代,盗版就好像是正版的孪生弟弟,他往往只比他的哥哥晚诞生“一会儿”,但是他却比哥哥的大方多了,他给所有人提供全部功能,乐意给所有人都提供免费服务。盗版和反盗版之间的斗争,犹如病毒和杀毒软件之间的斗争一样,打从出生起就是死对头,反盗版技术是“盾”,不断改进加密算法,从而达到不被盗版技术“矛”攻破的目的。
但是,在这场旷日持久的攻防战中,“矛”似乎更为锋利,经常将“盾”成功刺穿,从而取得胜利。其中的原因除了“盾”过于被动,只能老实巴交地乖乖等着“矛”来进攻之外,很大程度上还在于,“盾”的编制者通常只是一个公司或者一个团体的精英,而他们要面对的,往往是全世界的高手,这本来就是一种非常不对称的攻防战。所以,就算是像微软这种世界级的巨头软件公司,其推出的加密机制在一天之后,也往往逃离不了被破解的命运。
“盗版软件”这个词汇在商业软件出现之前是不存在的,自由软件是计算机业与身俱来的传统,看看计算机的发史,从1946年到60年代,从ib,从集成电路到pc机,从互联网到电信自由经营,每一个时期都留下了“自由”的影子。那个时候,软件的“自由拷贝”和“源代码”开放是整个计算机业,包括个人电脑及互联网两大领域的天然的软件开发和传播模式。早在60年代,就有以大学为阵地,以年轻人为主题,自由地交流的风尚,并在软件开发与研究方面硕果累累:如unix、tcp/ip、fortran、pascal、 lisp等等。在个人电脑革命还没爆发之前,软件的传播是鼓励自由拷贝的,正是这种自由拷贝、信息共享的精神上点燃了个人电脑革命,促成了软件业的发展。
而这也是黑客们一直坚持的“黑客精神”,他们始终认为,软件和互联网就应该像以前那样,继续保持自由、共享和免费。而比尔盖茨这孩子,以前也是一个黑客,他凭借自由软件搞出了basic,后来又搞出了ms-dos,但是这个时候他抛弃了黑客精神,转而发展所谓的“商业软件”,即要想使用他的软件,就得付钱。在70年代末,以比尔盖茨《致电脑业余爱好者的一封公开信》为标志,以世界知识产权组织《伯尔尼公约》为框架,软件步入了copyright的时代。
“软件破解者(cracker)”实际上也是从这个时候才正式从黑客这个主干分离出来,他们也从来不认为自己是一个盗版者,他们通常都有自己的精神信仰,破解软件,他们聚集在一起,号称是“不以盈利为目的的纯技术团体”。
而说起软件破解,就不得不提到一个词汇“warez”。这个单词由两部分组成,一个是“ware”,即“软件”,其后面的那个字母“z”,则是“零(zero)”的首字母,“零”即“零天(0day)”,通俗一点的说法就是:在不到一天的时间内,就可以将某个软件给破解出来。warez则可以理解为:可以无需任何代价的使用这个软件。
实际上,warez本身并不是一个具体的组织,它代表的只是一种理念,一个泛称,和世界上并不存在一个叫做“hacker”的黑客组织一样,warez所代表的是追求warez理念的人们自行组合而成各个小组。
这一届的全球黑客大赛上,出现了一个中国人,但是由于大赛的保密性质,他的出现也并没有引起多大的关注,只有圈内少数熟知内情的人知道而已。而这些人并没有心思去将这事大肆宣传,因为这种事情虽然不是什么不光彩的事情,但保持低调却是必须的。
这个中国人就是徐科。
徐科是看雪学院破解版块的版主,明面上他是以看雪论坛的代表的身份去参加这个比赛,但实际上,他还有一个身份,即为razor1911组织中国区负责人。这一次他去参加比赛,其实主要是接到了razor1911总部的邀请,让他去那边参加一个razor1911的内部核心成员会议。
而razor1911正是一个世界着名的warez破解组织。
由于家庭条件的原因,徐科并没有上大学,高中毕业之后就直接走上了社会,他的第一份工作就是在网吧打工,从此和电脑结下了不解之缘。
徐科很聪明,从小他的数学成绩就非常好,高考之后,他接到了水木大学数学系的入学通知书,可是这个时候,家里已经没有能力再供他上学了,为了让他读高中,家里已经是负债累累。穷人家的孩子早当家,徐科不得不辍学了,家里还有一个弟弟要上学。
那个时候,电脑还是于新鲜事物,根本没有现在这么普及,徐科通过一个同学的介绍,找到了一个网吧打工的工作,在那个时候已经相当不错了,令徐科满意的是,这份工作还能学到不少东西。
也就是在那个名为“网神网络”的网吧,徐科第一次接触了windows视窗操作系统,第一次知道了网络,申请了第一个qq号码,拥有了第一个电子邮箱……
由于每天长达十几个小时接触电脑,好学的徐科很快就成为了电脑高手,硬件或者软件方面的一些常见毛病,他都能轻易解决。
不过,徐科并没有满足,他开始利用工作的便利,通过网络学习更多的知识,他开始混迹于国内有名的电脑技术论坛,和志同道合者一起学习、交流和讨论。
还记得是九年前的那个暑假,混迹于某个黑客论坛的徐科无意中下载了一个破解教程,这个时候的他,已经有一定的编程基础,能够看懂一些简单的程序代码,但是在破解领域,他还是菜鸟一个,甚至一些基本的概念他都没有听说过。之所以下载这个教程,也只是他的习惯而已,因为那个网站上的那些教程,好像就只剩下这个没有看了。
按照他的习惯,他将整个教程一篇篇的看过去,每一篇都看得非常仔细,遇到要动手的地方,必定会一步一步完全按照教程中的步骤来。
也正是这个教程,将他引入了破解的世界,他真正了解了破解的一些基本概念,为什么要加密?什么叫“壳”?脱壳的原理主要是什么?……
看了这个教程之后,他发现破解似乎并没有那么神秘,于是他进入了该网站论坛的破解版,开始了他的破解学习路程。
当基础知识学得差不多的时候,他开始动手破解自己平生第一个“crackme”程序。
crackme程序通常是由破解高手写出来的一个很小很小的程序,它只有一个功能:要求你输入一些信息和注册码,然后点击确认之后,判断该注册码是否正确。实际上,这只是一个商业软件中的注册部分功能而已,高手们将这部分功能抽离出来,然后以出题的形式分发出去,给新手们作为破解入门的阶段练手用。它的作用就是供破解爱好者去破解它的加密原理,绕过注册步骤或者找出注册码,甚至写出注册机。这种程序单纯只是用作破解学习的,并没有任何特定的功能,也没有任何攻击性。
crackme最简单最直接的破解方法是所谓的“爆破”。爆破也是破解的初步,主要是指仅仅通过修改可执行文件的源文件,就可以达到相应的破解目的。例如输入注册码之后,程序通常要判断用户输入的注册码是否正确,如果否,则重新跳转到输入之前的那个步骤,这是一个循环。而使用“爆破”的手法,可以直接用编辑软件,将程序中的那个判断给修改掉,如改成这个判断永远正确,这样无论用户输入什么字符,都会认为这是正确的注册码,从而达到破解效果。
在秘界,软件破解者通常分三个阶段。初级,直接用“爆破”方式来破解。中级,使用调试软件,动态追踪出软件的注册码。高级,完全弄懂软件的加密算法,然后根据这个算法,写出一个注册机,可以用这个注册机算出无数个合法的注册码。
徐科刚学破解的时候,就是不断地去破解别人提供的各类“crackme”程序。一步一步,从初级升到高级。
原本以为自己技术已经很牛了的时候,徐科来到了“看雪论坛”,这个时候他才发现,原来国内的破解高手都集中在这里,自己和这些牛人比起来,依然还是小菜鸟一个。
于是,徐科的破解学习之路又重新开始了。