如果没有遇见你,我将会是在哪里?     

     时间过得真快啊,转眼间已工作快一年半了。现在回想起刚毕业时找工作的前景,还仿佛像是上个月那样的清晰。走上IT这条路,跟论坛有大的关系。如果没有来到看雪,也许我不会从事于IT业吧。一个学包装工程的,从接触计算机到大学二年级的时候,都还只会用QQ聊天,玩玩单机游戏的学生,从来就没有想过计算机是怎么运作的,程序又到底是什么东西。

    来到看雪学到了很多,也改变了我的一生,改变了我原来人生的轨迹。
    如果没有遇见“看雪”,没有看过论坛的一篇入门教程,也许我的人生就又是另一番风景了。我还清晰的记得,教程上面的内容是关于学习破解的流程:汇编 --> Windows编程 -->加密解密
    真的是很好,很快的学习方案。也许只有真正受益于此的人才能体会的到吧。 
    大学的确是时间最充足的地方,闲的你总要给自己找点事情来消磨时光。所以,有些人选择了恋爱,有人选择了考试,还有人选择了睡觉,有人选择了上网、游戏。我最喜欢玩魔兽了,不过那时是刚玩,所以总是被简单电脑虐,我是个不愿意轻易服输的人,越是这样我越想要赢,于是玩命练习,总是想赢一次。一次偶然的机会,晚上出去通宵玩魔兽的时候,也许是被电脑虐的实在麻木了,就随便浏览网页看看电影。不知道怎么就点了一个广告,内容好像是关于入侵网站,然后登陆后台给充QQ币的,觉得蛮有意思的,毕竟免费的QQ币还是有些吸引力的,可是当时什么都不懂,动画也看不明白,依葫芦画瓢也没成功,于是乎感到很好奇,就来了兴趣。
    开始到图书馆去借一些计算机方面的书,不过那时也不知道该借哪些书。后来觉得买一台电脑回去摸索摸索,用着用着也许就熟悉了。就跑到电脑城去转了一圈,感觉很新奇,却又不知道该怎么买,因为各式各样的电脑配件,真是让人眼晕啊。电脑城跑了几次,渐渐的熟悉了,也从一个老板那里学到了一些DIY知识,然后就到阅览室里看<微型计算机>,天天下午跑去看,一直看到晚上,日子久了,对于CPU,内存,显卡,主板等硬件都有了一些的认识,就开始去电脑城DIY自己的电脑了。那些硬件的知识在我后来的学习过程中也起到了重要的作用。
    不过有了电脑之后,还是先好好的玩玩游戏吧!
    没想到买了电脑之后早把原先的想法抛到外太空了。刚买电脑的半年,我几乎没再去上过课了。有的时候想去听一节课,又因为不知道教室在哪,而走到半道又回去玩游戏去了......那学期我一次挂了四科,也是我大学唯一挂科的一次。
    游戏的时候时间过得真快,就这样游戏着进入了大三了。不过,我的“水平”也在游戏和维护电脑的过程中上升了,起码DOS的很多命令都用的很熟了,也能写写批处理,偶尔一些病毒也能手动查杀掉了,因此,很多同学开始找我去帮他们杀杀病毒,装装系统了。
    在网上逛的时候,就渐渐的又接触到了HACK。IPC啊,输入法漏洞,到我知道的候也基本上消失了。哎!也用着工具注入了一些网站,但是,之后一直没有什么进步。不过,那时最大的娱乐除了玩游戏之外,也偶尔去论坛逛逛。
    慢慢的就接触到了破解,起初也就是想破解给自己用,因为很多软件都需要注册,而我“坚信”网络的资源是共享的。所以,按部就班的用W32Dasm破解了几个软件,也用过WinHex破解过还原精灵的密码,但都只是套用别人的方法,自己所知甚少。
    渐渐的也就听说了看雪论坛。和其他论坛一样,我都会去注册一下,然后没过多久就会忘记了。
    但是没想到,就是论坛的一篇文章改变了我,我开始安静的学习计算机的语言了。
    那时,论坛还没有多少版块,一进论坛可能最先看见的就是“提问的智慧”。我灌了些水,就走了。
    闲暇的时候,又来到了看雪。看见了指引新手的帖子,学习破解的流程,也就是“解密分析入门基础知识”。看完的时候,感觉很奇妙,豁然开朗!好像一下子找到了如何开始学习计算机的方法,而这正是我一直以来都没有找到的。所以,我看了好几遍的帖子,看完之后,我就按照上面的流程一步一步的开始学习了。
    在图书馆借了几本汇编的书,开始安静的在图书馆里看书了。刚开始学汇编,真是艰难啊。虽然那时已经学会了C语言,不过编写的竟是些加加减减的计算。
而汇编却又复杂了很多,看了很多教程也不得要领,只能强记下每个寄存器,每个指令,而寻址模式就更难了。之后就开始学windows编程了,那时没找到《Windows程序设计》,就找了本古老的《Windows 3.1程序设计》,好在差别不是很大。
    没想到这一学就是几个月,我已不在迷恋于游戏,变成了一个天天泡在图书馆的“好学生”了。
    后来再去看《加密与解密》果然轻松了很多,从调用约定,到PEDIY和脱壳,我觉得自己好像已经开始入门了。
    转眼间,到了找工作的时候了,平时热闹的寝室已变得异常沉寂,看着空空的寝室,心理有些失落。我想从事于自己喜欢的计算机事业,却又担心着自己的能力,毕竟不是学计算机的,很多东西都不懂。好在在论坛知道了病毒分析要求不高,通过在论坛的学习,我觉得自己应该没问题。运气也不错,毕业回家的时候经过北京,在那里找到了自己喜欢的工作,遇到了自己欣赏的公司。
    工作的一年是我进步最快的一年,真正的学会了使用OD,真正的理解了调试器和脱壳的原理。
    刚工作的几个月花在了调试病毒和Win32编程上面了,每天下班回到住的地方就看Win32编程,一直看到12点才睡。那时我第一次写出了一个对话框,兴奋了很久很久。就这样一发不可收拾,我对程序的热情一下子被点燃了,不论是在上班坐公交的路上,还是晚上睡觉的时候,我的脑子里都只有“程序”,那时过得真充实啊。
    后来,在论坛看到了“RootKiT”专题,接触到了系统内核,于是在过完年的时候,开始学习《Windows驱动详解》,结合着论坛里的文章,把所有的Hook都弄了一遍,觉得真像别人说的那样:RootKiT是速成的,而真正的操作系统原理才是真正的"天书"。
   不过在看完几遍《文件系统内幕》,又结合Windows的源码看NTFS,之后结合DKK中的例子和网上的一些资料,觉得文件过滤是比较容易的(包括TDI,NDIS的过滤,因为
过滤驱动只需要处理特定的条件,而自己真正的去写一个却不是轻松的了),对于驱动的分层也是一个很好的理解过程。然后动手又调试了一下Windows,终于对于驱动编程,操作系统有了一些理解,也萌发了写一个自己的操系统的愿望。从此,开始积累源码管理和软件设计经验,仔细阅读Windows和Linux源码......
   想起这一年多的经历,感到一丝欣慰,毕竟我没有辜负这一年多的时光,从不懂编程到现在,我付出了很多,也得到了回报。
   不过也有一些难过,毕竟在论坛我学到了很多,乌鸦尚且反哺,人何以堪?我总想能把自己所学回报给论坛,可还没有达到自己心目中的目标,还没有真正的把操作系统弄明白,离大牛的距离也还那么遥远。所以,我还没有时间停下来。

  此情可待成追忆,只是当时以惘然
  回首往事,总是觉得有一些幸运,遇到了看雪论坛这样好的启蒙老师,选择了自己喜欢走的路,人生如此,夫复何求?
  回首往事,又有些懊恼,如果当时买电脑的时候没有浪费那么多的时间在游戏上,今天的我也不会是这样的吧。人生也许一直都是如此吧,我们总是在失去的时候才能会学会珍惜,总是在垂垂老矣的时候,才能感悟得到:时间是多么宝贵!可为什么总又不珍惜呢?
  莫等闲,白了少年头,空悲切!

  • 标 题:答复
  • 作 者:lijingli
  • 时 间:2009-12-30 11:12

最后附上我的一点对于学习的总结,也许对和我一样刚入门的新手会有一点用处。不过,每个人都应该找到适合自己的一套学习方法。不过在这之前,应该有个明确的方向,计算机的方向很多,关键看自己真的喜欢什么。
我自己的学习流程:

 C (大学开的课) -- > 汇编 --> Windows编程/Win32编程 -- > 加密解密,脱壳等 --> RootKit --> 文件系统等 -->操作系统

下面是我自己划分的不同方向(不过因为个人的局限性,错误之处欢迎指正):

汇编, C --> Windows编程/Win32编程、加密解密   
              
|---------> 脱壳,逆向,漏洞分析
|
|--------> RootKit,操作系统内核,驱动编程(也需要C++)
|
|-------->C++ ,MFC,STL等----> 软件工程相关
                    
                          
1. 关于脱壳,我觉得要想真正的学好脱壳,必须自己慢慢的去动手分析壳,知道壳的流程: 解压,Anti-DBG,IAT加密等
  有时间最好写一个壳,我在动手写了一个之后,觉得PE结构变得非常熟悉了,在脱壳的时候很有帮助,不过现在没有心思搞脱壳了,以后再说。
  我觉得脱壳只是一个时间问题,技巧问题,一种壳一种脱法。

2. 关于内核,我觉得不要关注于Hook,而在于内核原理,操作系统的运作机制。
我觉得Jiurl的文章非常的好,看完之后对于系统的很多结构都比较清楚了,论坛的RootKit专题,安焦,漫谈兼容内核即Windows情景分析这些看完我觉得收获就更大了,还有WINDOWS Internals 比较广,但是有些部分值得仔细看看。赵炯《Linux内核完全剖析》也是很好的书,介绍的Linux源码也比较少,看起来也不会太吃力。
我觉得可能每个人都知道这些资料,但是真正能安静看完并运用的人的不多。

3. 关于汇编,我觉得汇编是一切语言的基础,以底层语言思考,用高级语言编程,才是真正的编程之道。

4. 关于学习
  我觉得应该有狂热的激情,可以为了分析不明白的问题而通宵
 一份勇气与自信,别人能做到,我为什么不行,我只不过是接触的比别人晚些而已,当我也花了那么多时间,一样也能做到。
  坚定的毅力:我失败过,但我从未放弃过!区别就像: 
            if( 努力 )  { 成功; } 
            while( 努力 ) { 成功; }
  学会用好搜索引擎,很多问题,其实网络上都有答案
  一点点运气,比如有看雪论坛这样的好老师,论坛精华最好在懂了Windows编程,看完加密解密之后选择性的看看,进步会非常快的