这个夜晚,戴着耳机,听完了一首首婉转的歌,读了一篇篇扎实的文章。
听歌只是给自己一个轻松的环境,一个放松的心境。而读了那几篇文章之后,感觉到自己无所适从。幸好还有耳边的歌曲在。
今天看到02年小四哥的一篇关于SMB劫持的帖子,自己真的由衷佩服他,佩服那些曾经活跃在论坛上的那些技术爱好者们。同时又为当前网络上那些所有牛x的黑客所热衷的“黑客行为”所担忧。我想先声明我并是过于悲观的人,在我读这篇文章的同时,又读了作于今年1月份的另一篇关于SMB会话劫持的文章,一样的原理,一样的方法。而后来这个“安全圈子的高手”的文章为何迟迟晚了人家四年?当然,他能去学习并去实现,这应该是一个不错的方法。毕竟,在目前来说,这位“高手”算是比较严谨的。而相比之下一些所谓的黑客整天“研究”的东西,我真的不知道他们每天有多少进步?还是仅仅满足他们微小的虚荣心?面对日益浮躁的论坛,狂热的“黑客”,这个时代究竟还能出多少真正的高手?
黑客,我更愿意把他理解为某个行业的精英,或者是计算机方面的某个方向的高手。有趣的是,有人称四哥为windows高手时,他只是谦逊地称自己为一个地道的unix程序员。直到现在,他还在论坛上认真地回答那些积极向上的家伙的问题。看了这些文章,我想如果硬要说成为一个windows黑客的话,那他至少应该具备以下技能(个人认为,如果少了或者错了请指正):
1:熟练使用流行体系的汇编语言。
2:精通一门上层的编程语言以及一个编译器。(以及对应的数据结构,加密算法等)
3:熟念掌握一款内核调试器。
4:熟悉windows各个重要因素的运行机制。(进程,线程,PE格式,内存,动态库加载...)
5:理解缓冲区溢出原理解决方法以及实现方法shellcode的编写等。
6:熟悉当前使用的网络协议以及对应的网络编程接口等。
7:至少熟悉一种脚本语言。
8:好奇心强,意志力高,热爱计算机技术。
其实,计算机学习是融会贯通,博大精深的。在一个方向深究下去,总会碰触到相关的领域。而所遇到的人之中,这样的人又有几个?
说到这里,我又想说说这些日子对中国程序员的想法。现在的公司一上来就是招聘java程序员,要求熟悉junit,熟悉spring,熟悉hibernet。要么就是招聘dotnet程序员,什么asp.net c#这些语言满天飞。过些日子也许又是招聘要求ajiax, 熟悉什么新的知识。于是人们纷纷学起了java ,学起了.net。我想中国的程序员们都在为日益更新的知识而发愁,而又不得不紧跟着潮流走。毕竟那是自己的饭碗。可是为什么我们不能控制住自己的饭碗呢?为什么我们总是紧紧跟在别人后面?为什么开发工具变得越来越大,业务逻辑变得越来越复杂,而我们已经脱离了计算机语言的角度去考虑那些复杂的逻辑事务?在真正的底层实现上,我们做了多少?有人总是跟我说,用.net吧,开发程序超级快,用ajiax吧,将来程序都是以web的形式出现的。。。我真的不知道该怎么象他们说了,我是该向他们说,你知道这个应用程序怎么用系统提供的api实现么?你能把他做得更个性一点么?你知道你的鼠标在点过之后,内存中发生了什么变化么?你实现过http服务么?知道tcp传输过程么?还是说,好,这个这么好啊,这么快就能做个程序出来了,以后就用他了。直接调两个库,继承一下,再加点自己的东西就非常不错了。 那结果呢?结果是什么? 一味地追求速度和效率,孰不知在不知觉中埋没了程序员本应有的创新思维,底层基础能力。长久下去,中国的it未来在哪儿?在最新的潮流技术里吗?
这里又想到汉芯事件,麒麟事件,不管当事人那方面到底是怎么做的。为什么会有这种事情的发生,如果我们再这样漫无目的地继续下去,再这样毫无原则地追求下去,难道真的想要用java 用.net来开发操作系统吗?还是永远用别人的操作系统,用别人的数据库,用别人的网络协议,用别人的技术标准,再用别人设计的一些新框架来疲于应付工作...
[ra]http://vip.5d.cn/toto/We_are_no_heroes.mp3[/ra]
|