【征文】【原创】一路坎坷一路歌--我的破解之路
本篇文章 纯属原创 如有雷同 实属不幸
    当我第一次Crack的时候,我不知道自己在Crack。

    那时我还在读大学,没别的嗜好,就喜欢上网。上网的过程中,我发现一件很不爽的事:网吧里的机子装的是清一色的Windows 98,这是一个不稳定的操作系统,经常蓝屏死机,更遭的是机子里还装有还原精灵,使我费了半天劲下载的东西随着一次重启而人间蒸发。于是我仔细查看了一番还原精灵,发现它有备份功能,可以保存想要保留的数据,但是使用该功能前必须输入密码,这个密码当然是网管预先设置的。怎样才能获得这个密码?通过搜索我找到一篇教程,图文并茂,讲的很详细,我就按图索骥利用WinHex居然找到了密码。只是当时不知道为什么这样可以找到密码,所谓“知其然而不知其所以然”。当然现在看来原理是很浅显的:输入一个错误的密码并在内存中找到它,正确的密码就在附近且是以明文显示的。只是……当时已惘然……我并不知道这就是一种简单的Crack技术(我头脑中甚至没有Crack这个词),我在无意之中完成了一次Crack,尽管没有多少技术含量。

    我学的专业是生物,却对计算机技术有浓厚的兴趣。为什么会有兴趣?这个……兴趣这东西很奇怪,有时候连自己也说不清楚。能说清楚的是我学习破解和这个兴趣有很大关系(相信许多朋友也一样)。大学期间我频繁出入图书馆,借阅最多的便是计算机类图书。在图书馆成筐成箩的书籍中,我发现了《加密与解密》第一版,正式开始了Crack的学习,也记住了看雪论坛的网址。

    可惜的是,在大学里虽然有大量参考书可以阅读,却鲜有实践的机会。学校机房经常人满为患,外面网吧又太贵。我如同一个学武之人可以埋头练武却找不到人拆招,能理解并最终掌握多少可想而知。

    去年这个时候我大学毕业,经过努力,终于在今年年初购置了一台电脑,实现了多年的夙愿。

    生活总爱给人出难题。当初我在学校的时候有那么多书籍可供阅读,却苦于没有电脑,现在有了电脑,本打算好好学习一些电脑知识,却发现参考书奇缺。无奈之下就想到网上找资料,看雪学院的网址在我脑中闪现出来,无巧无不巧,赶上了论坛精华合集的推出,索性一古脑全下载下来,又把主页上的工具下载了大半,在其它地方找了一些编程书籍和工具,我的电脑没有联网,只能跑去网吧用256M的小优盘一次次把我需要的资料下载回来。

    我学破解的初衷就是想以一种有趣的方式来学习电脑知识。学校里那种按部就班、重理论轻实践的方式为我所不喜。还有就是我认为人类天生就具有攻击性,然而现实世界的种种束缚使我们的这种天性没有施展之处,破解在一定程度上迎合了我们的攻击性。常玩破解的朋友可能都有这样的体会:当我们读一本正儿八经的教科书时可能会昏昏欲睡,但当我们破解软件时却精神抖擞,大脑异常兴奋,思维也极其活跃。破解完成后尽管有些疲惫,心里却非常舒畅,可见破解还有利于心理健康,呵呵。破解的另一个好处是能够完善我们的知识体系。形形色色的Crack技术几乎涉及到计算机技术的方方面面,我们学习一种技术时,会对与此相关的计算机技术有更深入的理解。举个例子,在我学习C/C++等高级语言时,对教科书中所说的程序运行时堆栈的变化情况很费解,这些困惑却在我跟踪软件时一扫而空。

    下面说说我的学习方法。本人是菜鸟一只,妄谈学习方法有班门弄斧之嫌,不过本文旨在与和我一样处于破解初级阶段的朋友交流切磋,因此鼓起勇气谈一谈,高手请勿见笑。

    虽然我在大学的时候读过几本关于破解的书,但是缺乏足够的实践,所以决定从头学起。然后我在看雪论坛精华合集里找了几篇入门性的文章认真阅读,主要内容涉及破解的一般流程(查看是否加壳、脱壳、如何下断点、如何找关键代码、注册算法分析、暴破、追注册码、写注册机等)、工具的使用(OD、PEiD等),从而在整体上把握破解。接下来就拉出OD进行CrackMe,遇到问题就回过头来读文章。再下来就开始破成熟的商业软件,有人要问了:“破得出来吗?”答案是--破不出来!不过别泄气,这是预料中的事。如果学破解这么容易,那么人人都是高手了。尝试破解商业软件的目的是找出不足,提高自我(不要为了破解而破解,恶意破解商业软件是不道德的行为)。俗话说下棋找高手,同样,破解就要找那些保护强度高、代码规模大的商业软件,在破解这些软件的过程中,会遇到破解CrackMe时遇不到甚至想不到的困难,这就是提高水平的好机会。每当这时我就会想:为什么破不出来?是壳脱不掉还是关键代码找不到?是软件使用了某种Anti技术抑或是使用了某种我不知道的加密算法?确定原因之后我就翻看精华合集里的文章以找出相应的对策。五花八门的Crack技术就这样渐渐被接触和掌握。掌握一种技术之后及时地进行归纳总结做出笔记,便于理解记忆。等到成功破掉一个软件,最好写一篇破文,把整个过程记录下来,一方面可以理清思路,总结经验,另一方面可以贴到论坛上便于交流。

    可以看出,我的学习方法是以实践为核心的。伟人说过在战争中学习战争,我的学习方法归纳为一句话就是在破解中学习破解。

    要说明的是,由于每个人的知识结构、思维习惯、个性喜好等是不同的,所以学习方法也应该因人而异。学习方法本身的优略并不重要,重要的是适合自己。请记住适合自己的方法就是好方法,所以一定要总结出一套自己的方法,我的方法同样仅供参考,切忌照搬照抄。
    回想我学习破解的过程可谓一波三折,磕磕绊绊,期间遇到过挫折,也享受过破解成功后的成就感与满足感,所幸总算坚持了下来。 在此想对那些想学破解或刚开始学习破解的朋友说点体会,谈不上什么秘诀,只是我自己付出代价换来的经验,希望新手朋友少走弯路。
    第一点,汇编很重要。破解某种程度上等同于汇编,毫不夸张地说,破解之路,汇编起步。因为破解是在和底层打交道,汇编是了解底层细节的重要工具,甚至是唯一的工具。汇编是Crack的内功,决定了Crack的层次。即使是最简单的暴破,也要求你知道几条跳转指令,更不用说分析注册算法了。所以学习破解之前先学汇编是明智的,尽管这个过程很枯燥,却是必须的。熬过这一关,后面的路就好走了。

    第二点,实践很重要。学习过程中遇到不懂的问题就设计个试验做一下,或许就豁然开朗了。头脑中有了一个想法,不知道是否行得通,也可以实践一下。另外实践还可以加深对所学知识的理解,巩固已掌握的知识。

    第三点,要有耐心。破解过程中经常要面对长长的反汇编代码,计算机不到一秒钟就可以执行完,我却要看上老半天,有时还看不懂。怎么办?除了耐心还是耐心!据说有些高手为了破解一个软件,可以连续坐在电脑前十几甚至几十小时,不眠不休,可谓为伊消得人憔悴,衣带渐宽终不悔!

    第四点,要有创造性。我们脖子上长的不是电脑是人脑,人脑虽然在很多方面比不上电脑,有一点却是电脑比不了的,那便是创造性。当所有已知的方法都不管用的时候,就是创造性发挥作用的时候,创造性是Crack的终极武器。

    第五点,学无止境。世界每天都在变,计算机领域更是如此。我只是一个在海边拾贝克的小孩……

    最后,别忘了常上看雪论坛,论坛上有很多高人在无私地奉献着,翻译资料、汉化工具、编写教程、维护论坛……我所取得的每一点进步都得益于他们无私的劳动。