首先,对于一个真正的hacker来说在我看来就比cracker多了解了网络的知识,在我的印象中,cracker就是精通系统内核的人,当然,系统有很多种,主流的有Linux/unix及各种变体,还有win系列,光一个win系列就可以让一个人研究几年了,记得前2年放出过2个win的源代码包,有一个是NT的,很不错,不过当时还不怎么看的懂(现在估计还是不怎么看的懂)。linux的源代码就更多了,或许用一辈子也看不完。


那内核怎么研究呢,我想从设计系统的人的眼光出发或许会好一些,计算机的硬件和软件,不是鸡和蛋,他们的产生是有先后顺序的,当然是硬件先产生了,呵呵,不过在人们脑中的思想,数学等,能不能算软件我也不得而知了。就这样的理论来说,要想了解系统,必须先了解计算机的组成原理,操作系统说道底也是一个软件,所谓操作系统,就是操作计算机这个系统。计算机作为一个系统,是经过时间演变抽象而最终定型的,可能还不能说定型,不过也已经是比较完善的系统了,很多厂商在做不是开发而是改进,这就意味着性能的提升在当前的发展占了主导地位。对于一个想了解系统内核的人,现在是很好的时候,因为计算机架构在一段时间内不会有很大变化。了解了一个计算机系统的组成原理之后就可以开始着手对各个平台开始研究。


操作系统也是一个系统,也具有了一套比较完善的理论,所以从任何一个流行的系统学起都是可以的。因为我们可以举一反三,触类旁通。这里我选择先了解windows+intel内核。对于个人来说是最流行的配置,可以开始看windows internals,还有Undocumented win2000。这里又要说了hacker和cracker了,cracker始终比hacker低一手就是因为hacker们精通网络,网络可是一个奇妙的东西,它把世界上各种个样的机器连接起来。这是人类的伟大发明,这里我也不多罗嗦了。我们的目标是成为hacker,所以要先做一个cracker,好好学习一个系统。假如有能力自己也设计设计系统,不用像win那样,简单的就OK,这里推荐一本书,《自己动手写操作系统完全版》不象别的中文的关于操作系统原理的书那样无聊。当然在学习这些的过程中要先了解编程语言C+ASM,便于调试的时候看代码。我到觉得不需要非常精通,能看懂代码就可以。也许是因为我的水平有限才会说这样的话。当然编程水平能写出加壳机和脱壳机,也就了解内核了。这里壳当然是那种长得象病毒的壳咯。


继续走...当系统的了解了一个系统后,这里我们学的是win,我们就可以看看linux了,应该很容易理解了。尝试参看他的源代码,假如能找出几个设计不合理的地方或许你还可以自己改进呢。不象windows,不肯开源,顺便BS下。说道开源,假如你没win的代码,那从linux开始也是个不错的选择。而且从linux开始还有一个好处就是资料多。关于win的资料太少,这也和它不开源有关。了解系统之后我们可以称自己为一个cracker了,当然,要具有全部的技能,还有算法之类的需要学习,在学习系统的过程中我们必然会接触到,遇到不懂的算法到时补下就可以。要是单独学,那花的时间可就多了,对于高级的加密算法,对数学还得深入了解。这不是一年半载就可以的,从这个侧面看来,hacker不是那么好做的。单一们技能就要学几年,所有的技能加起来那就是十多年阿,天才点的时间短点,笨点那就不知道要多久,所以高手就是这样练就的,具有常人没有的毅力,当然,我不是高手,因为我处于cracker的最初级阶段。以上都是我瞎掰的,大家别当真阿,哈哈。
未完待续..

这里做个小广告,要下书可以到EvilOctal去下载,连接就在我blog的友链里面。当然你可以直接搜索。然后找电子书刊板块,里面的书都是本地下载。而且绝对经典。

——————————————————————————————————————

好了,上面其实我的一个学习计划,假如你有空把他看完了,那真的很感谢了,希望给个建议,是否,我的假设不对,是否,我走弯路了,希望能帮助我完善这个学习计划。