读万卷书,写万行代码

 

         读万卷书,写万行代码。我的意思不是说理论知识无用,更不是说“读书顶个鸟用”。对于读书无用论我认为是!TRUE.正如古人云,读万卷书行千里路。不过技术的东西靠实践,知易行难。


         在我大一的时候,我老以为看了几本书我就能上天入地,咋地咋地……最后我发现一切都是浮云。回想大一的自己是多么的愚蠢,大一的时候我最喜欢的书是缓冲区溢出了。在河滨常常跑到本部去借书,我记得《黑客防线》有一本书专门讲得是缓冲区溢出,我时常翻翻看看,大一还没有电脑更不用说敲代码了,当时还不知道安装VC++6.0.糊里糊涂第二学来的了。开学一个月拿着兼职的钱和爸妈给的钱刚好3000元,组装了一台电脑2900+。心痛的很啊!那时我运行第一个DOS命令,format D:,不过那是为了学习《C语言程序设计》而买,不是为了学习DOS命令,这是我高中看书记下的一个命令。从此按着书上的教程敲出了我人生的第一个程序:
#include
void main()
{
int a,b,c;
scanf(“%d %d”,&a,&b);
c=a+b;
printf(“%d\n”,c);
}
编译运行成功,想想当初自己是那么的开心啊!这就是学习的乐趣所在。当然那本《黑客防线》也是经常借来看的,只是感觉自己都懂得了那些溢出的原理,也就没有再多去理会那些代码了。平时,除了《黑客防线》,必不可少的就是关于网站入侵的书籍。当初很想去拿人家的网站,后面发现了Dos攻击,分布式拒绝服务攻击。这些原理弄得明明白白,至于代码一个没敲。只有那个c语言课程设计自己敲完整了。


         转眼进入大二,我和班里的同学一起参加了学校的ACM培训,当初我的基础最差。在那些培训的日子里,c++入门,我学会算法分析,在无翻译的情况下看题目……渐渐的发现自己的代码越来越简洁,英语阅读能力也提升了,对每个程序我都会在思考这可以优化吗?还可以在优化吗?在ACM里我也学会了沉思,注重细节。最令人难以忘记的就是敲各种排序,逻辑处理数据,大数运算,递归,约瑟夫环,八皇后,背包问题,迷宫算法,朴素算法和KMP……也把《计算机程序设计的艺术》那三本书看过一遍了,三卷中文名为《基本算法》、《半数值算法》及《排序与查找》,印象最深刻的是中国余数定理和拉格朗日算法,还有就是《C语言算法速查手册》,不过最遗憾的就是大多数的算法都忘记了。硬盘在家里被我不小心刷坏了,脑子里只记得一些优化程序的基本方法和使用逻辑运算快速处理数学问题,我说的快不是快速计算,而是通过简单的逻辑运算用最简单的方法得出结果。在ACM校队里,我认为我看的书比谁都多,敲的代码却比谁的少,这就种下了恶果。大二这一年,我参加ACM的比赛,但是没有获得好的名次,也成了我心中的一个遗憾吧!但是我的收获远远超过名次的价值。在这里最想感谢的就属谢老师。


         大二暑假,我做了一件从我高三那年开始计划的事情,考上本科,再兼职两年,挣够骑车进藏的所有费用。大二暑假如期而至,我也带着自己的梦想出发,一路上重新审视自己的人生,思考自己的未来。收获最大的莫过于此——有些事情现在不做,可能这辈子都不会去做了。学习也是这样,乘着我们还在学校,就多学点自己想学的事情,去做自己该做的事情。关于骑车的事情,我将每天的骑行写在本子里,这是我记在心里的故事,是自己给自己的礼物。


         很快大三也来到了。我在办公室里当助理,负责“三金”,也负责一个网站的管理。网站管理是我自己在课余时间学习的,也是边做边学的。至于三金嘛!我就不想多说了。每天加班到晚上11点,我回到宿舍后还得敲代码敲到凌晨3、4点,然后早早的起床去课堂上睡觉。后面的位置我常常光顾,但是后面那个位置也常常是空的,在课堂上睡足了中午继续敲代码。印象最深刻的就是在没有百度和Google的情况下,拿着一份数值分析的实验报告指导书和一本《C语言算法速查手册》DIY敲完了所有题目。


         大三第一学期我感觉很缓慢。我买了一本《0day:软件漏洞分析技术》。做完课程设计之后,每天早睡早起(早上3、4点睡觉,早上7、8点起床),按着这本书上的代码一行一行的敲,一步一步的分析。每天都做笔记,书上用铅笔写了许多笔记。从此学会0D的使用和IDA的使用,还了解PE文件的结构。在那个溢出漏洞的演示程序中,我自己脱离的书本找到了溢出点,成功绕过了密码验证,但是不能正常退出,后来根据书本上的知识学习了一些汇编和机器码的使用,又成功的安全退出。我敢说,在敲完这个程序之后我比我大一大二更加清楚的了解缓冲区溢出是怎么回事。后来认识了zzyDog师兄,我遇到一些问题总是问他,后来他说我,急于求成,不应该直接去学漏洞,而先要去学习Win32 SDK编程,有基础了在学习。他给我的建议是这样的“先学习Win32 SDK编程,然后就是重点培养自己的逆向调试能力,OD,IDA,windbg这三个反编译工具要熟悉,最后驱动就肯定要学的了,内核技术Rootkit,驱动过滤……”


         大三总是那么的有热情。一边学习编程,一边学习网络攻防。这里就少不了CGL师兄了。在他的指导下,加之我之前网站攻防基础,我的技术突飞猛进。除了日本和韩国的网站做过手脚外,国内的网站就打个电话告诉一声就放弃了,做人要厚道。在CGL师兄的指导下学会了使用一些强悍的工具,也学会了简单的手动注入方法。以前看见手动注入的代码就眼困,而现在就不会了,都会按书上的步骤去练习。可是在信心十足的情况下参加网络攻防大赛,我一败涂地的回来了……学艺不精啊!在我敲下这篇文章的前些天,CGL师兄发给我的一个PHP网站,我简单测试一下,然后就……勿作恶!
待续……

你可能感兴趣的:(励志,读万卷书,写万行代码)