第七章 黑客班(下)

上一章 目录 下一章
大家都为洛凡的解释感到精彩,原本枯燥无味的理论,被他这么一说,顿时生动形象起来,有趣许多。而且最重要的是,听洛凡这么一说,大家对教授讲的东西一下就懂了。一开始大家还以为洛凡跟他们一样,是个不学无术成天混日子过的学生,所以才会被教授惩罚,可没想到眨眼之间,他竟将出了如此形象的比喻,这如何能让坐在下面的同学感到惊讶,乃至到最后为他的比喻折服呢?
其它教室中一些上自习的同学,听到响动,纷纷跑过来看热闹,以为是发生了什么大事。一问之下,才知道大家是被一个学生的回答在鼓掌,顿时好奇的坐到后面听起来。
待同学们的掌声稀落下来,教授才开怀的笑着说:“嗯,洛凡同学解释的很好,比我这个老头子可好多了。让同学们乏味的课程一下子生动起来,还调起了大家学习的热情,我可做不到这点。不如,我们让洛凡同学继续给我们解释一下堆栈的实现原理,大家说好不好?”
顿时坐在下面的同学们纷纷大声回答道:“好!洛凡接着讲。”其中有真心喜欢听洛凡这种比喻式解说的,也有跟着瞎起哄的,还有一些则是想看洛凡出洋相的。
洛凡还沉浸在那阵突如其来的掌声中呢,他没想到只是把远程溢出攻击举了个常见的例子套上去说出来,会取得如此好的效果,不但得到教授的赞同,甚至同学们都鼓起掌来了。他以往的校园生活可谓平凡之至,如何被人这样重视抬捧过。这一下就让他懵了,连教授的提议都没听到。
同学们看到洛凡出神的样子,还以为他不敢讲,于是纷纷叫起来:“洛凡,来一个!洛凡,来一个!洛凡,来一个!洛凡,来一个!”喊声可谓震天动地,比起大炮的狮子吼可是厉害了不止百倍。
洛凡被喊声惊醒,无助的看着教授,教授则用鼓励的眼神看着他说道:“别怕,大家都喜欢听你讲,你就再讲一下堆栈的原理给大家听。来,站到讲台上来,用话筒讲。”说着,他还把主讲的位置给洛凡空了出来。
洛凡一听,一下就傻眼了,他哪里讲得出这种东西啊。这种程序底层的东西,控制内存分配的理论知识,他只知道是怎么回事,理论上是完全不懂。让他上去讲,讲错了他自己都不知道,他如果敢讲啊。
不过同学们的呼声却是一阵高过一阵,教授也不断给他鼓劲,他只好硬着头皮走上了讲台。顿时,整个教室变得鸦雀无声,大家都等着洛凡开场白。
“呃……”洛凡拿着话筒,面对着讲台下面几百个同学,脑袋里一片空白。
“咳……咳……”借着清嗓子转移了一下紧张情绪,他终于开口道:“关于堆栈,其实我也不太清楚,所以等下讲错了还要靠教授纠正,大家也别尽信。堆栈其实是两种按顺序排列的数据结构,不同的地方在于,堆中的数据是可以随意进出的,而栈中的数据则必须遵从后进先出的顺序。
打个比方来说,往堆中存数据,就好像是往一个大盘子里放弹珠,不管哪一颗弹珠先放入盘中,都不会影响其它弹珠的出盘动作。而栈呢,就像是往一根只有一个孔的钢管中塞弹珠,后进去的弹珠会把先进的退路堵上,前面的弹珠要出来,就必须让后面的先出去才行。”
洛凡看了看下面鸦雀无声的同学,觉得自己讲的应该更加生动些,于是问了个问题:“为什么听上去栈比堆的使用要困难很多,可栈还有很多人去使用它呢?”

下面的同学听了他的解释,心中也确实认为堆比栈要好,正为此疑惑不解,所以都回问道:“为什么呢?”声音之整齐,让一旁的教授怀疑会不会产生共振导致教学楼倒塌,吓得他的眼睛不停瞄向教室四壁。
“这个就要从堆栈在操作系统中的应用方式来说了。堆在内存中存储的地址不是连续的,可以分散开利用内存间不同段的细小空间,而栈则必须要使用一块连续的空间,这块空间的大小也必须事先规定好。栈由系统自动分配,速度较快,但程序员是无法控制的,堆则不同,它是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来很方便……”说了一段理论,下面的同学又开始走神了,虽然还在努力的听着,但很多人已经显得不耐烦了。
于是洛凡又举了个例子道:“使用栈就像是我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度很小,不能在美女面前显现出自己超强的厨艺。而使用堆就象是自己亲手动手做喜欢吃的菜肴,比较麻烦,但是做出来的菜不但合自己的胃口,更能够在心仪的人面前炫耀一番,赢得她的夸赞……”
“哦!”下面的同学听了这个比喻,顿时恍然的点起头来,觉得这才听得懂了,刚才的理论实在是乏味难记,又不好理解,只听一下就完全失去兴趣了,还是这样有意思。这时,讲台下也不知是谁大声的问了个问题:“远程溢出攻击要如何防范呢?”
洛凡听到这个问题,一下子觉得不太好回答,溢出攻击多半是利用程序在堆栈空间上的限制不严进行的,要想防范还真不是件简单的事情。旁边的教授听到这个问题,也是为洛凡捏了把汗,怕他回答不出来。
洛凡思索了一会,这才开口说:“要做到防范溢出攻击,其实很简单的一个方法就是在写程序的时候严格分配检查内存大小,不留下让入侵者利用的空间。但是我们日常使用的程序都是别人写好的,内存分配这些根本就不是我们可以控制的到的。面对这样的情况,我们就必须利用防火墙来进行防范,把一切重复可疑的数据包全部拦截下来,甚至包括那些隐蔽扫描的数据包,也要拦截掉。”
“竟然是隐蔽扫描,又如何能拦截掉它呢?”
“其实所谓的隐蔽扫描,就是发送一个不全的数据包给目标,然后通过回应数据包来分析目标的情况。这些不全的数据包就好比是一些烂苹果,防火墙就比是质检部门,在烂苹果被人买回家之前,都回被他们处理掉。这样一来,这些有问题的苹果不能到达消费者手上了,也就达不到害人的目的了。”
洛凡从容的解答着,说道网络安全方面,这可是他的强项,解释起来游刃有余,比喻生动形象,让人一听就懂。这全靠他平时为了强化长江一号的自动入侵能力,在网络安全方面下的苦功夫。在网络安全领域,最厉害的安全专家同时也是最厉害的黑客。
书书网手机版 m.1pwx.com