首页 > 《超脑黑客

第三百八十九章 中间人攻击

第三百八十八章 崩溃的原因 目录 第三百九十章 再想想办法

第三百八十九章 中间人攻击

虽然windows3.1也已经设计了权限控制,并且将系统进行了分层,但是在这方面做得并不好,甚至可以说是相当的粗糙。

不过这也可以理解,毕竟这个系统刚刚出来,并且他们当时为了能够尽快地推出,也非常的赶时间,将一些重要的功能首先实现了,对于普通用户来说,他们设计的权限控制体系已经基本能够满足要求了。

Windows3X系列操作系统,根本就不是为实时操作系统而开发的,实时系统,他们有专门的windowsNT系列,其权限控制就比这个要完善多了,稳定性也极大的增强。不过,同样的道理,他们想要对NT系统进行定制修改的难度也就更大了,总体说来,还没有直接使用这个来得方便。

并且,windows系列的系统都是闭源的,说白了这是商业软件,你想使用,就必须进行购买,他们现在这样使用,是违反知识产权法的,使用的是盗版。要是被微软发现,他们是可以通过司法途径进行起诉的。当然,至于国内的法院受不受理,这又是另外一回事了。

Windows3.1系统的权限系统虽然简单,但是在用户层,想要对系统层进行操作这是绝对禁止的,因为会威胁到系统的稳定性,只要破坏了系统的某一个关键数据结构,很有可能就会让系统崩溃。

涉及到系统底层的操作,都是通过微软给出的SDK包里面的系统函数进行实现的。这些系统函数,不会乱操作内存里面关键的数据,而是会按照系统程序员所期望的方式实现某些功能。

这样做,既不会影响系统的稳定性和安全性,又可以让编写应用软件的程序员获得想要的功能,还可以简化操作步骤,让他们不用关心底层的运行机制,简直是一举三得的好办法。

当然,也并不是说系统层里面的东西,用户层完全访问不了,那些病毒木马想要实现自己的功能,很大程度上就是利用了系统的漏洞,获得了超过用户层的权限。

不过,他们这个系统,已经被他们经过极度的优化,一些常见漏洞,也基本上给打上了补丁,要想找出这样一个漏洞,还是很困难的。

所以,余波在听到林鸿大言不惭地说“权限要自己动手去拿,不会自动送上门。”的时候,不由冷冷一笑,反驳道:

“你说得倒轻巧,有本事你拿一个看看?”

余波心中还对林鸿有些意见,毕竟正是他的到来,才导致大家人心惶惶,担心自己为之工作了好多年的心血被推倒重来。此外,他也对林鸿轻描淡写的态度很是看不惯,就算你们公司自己编写出了一个控制系统,但是也不能这样信口开河吧?

他们在这个系统上浸淫了这么久,自认为自己对这个系统的了解,只是仅次于那些开发系统的人了。

他当然知道权限要自己去拿,并不会自动送上门,但是,说起来容易做起来难,有些事情是站着说不腰疼,这样的人,他见得多了。

余波认为是林鸿想要在他们领导面前表现自己,才故意这样“鼻孔插大葱”——装象。

林鸿听到他的话,笑了下,没有放在心上,而是对曹兴平和徐直中说道:

“这个情况我之前是遇到过的。很多木马和蠕虫,就是通过重写系统底层的函数来截流数据。这在系统安全领域,有一个专门的名词,叫做‘中间人攻击’。”

中间人攻击,在黑客领域是一种非常古老并且有效的攻击方式。

其本质原理,就是在数据流动的链路上,串接一个攻击者自己的“转发器”,从而达到嗅探窃取数据的目的。

这种情形,就好像将一个水管给截段,然后在上面连接一个自己的转接头,这个转接头是不会影响水管中水流的正常流动的,它只是对水流进行监控,一旦发现水流里面有一条鱼经过,它就负责将这个信息给记录在案,甚至,它还有其他一些比较神奇的功能,例如,将这条鱼替换成一条泥鳅。

而水管两端的人,由于缺乏沟通,根本不知道这些水流在流动的过程中到底发生了什么。

他们不知道自己私下发送的鱼被别人监控了,甚至被人掉包,发送方以为自己发送了一条鱼,而接收方则以为对方发送了一条泥鳅。

在网络领域,这个中间人甚至可以是一台电脑,用户A向用户B发送信息,却被人偷偷地让信息流跑到电脑C上面走了一圈,而AB用户却根本不知道自己的信息已经被人监听了。由于电脑C只是对数据进行复制和备份,完全不对信息进行修改,是被动的行文,所以AB是很难发现这种行为的。

而在单机里面,中间人攻击更多的就是像这次这样,对某个环节或者函数进行接管,相当于在外面另外套了一层,要想访问真实的内容,必须从中间人这里进入。

林鸿的超级蠕虫对数据进行搜集,实际上也是这个原理,从表面上看,已经被感染的系统和原来的系统是根本没有任何差别的,不会影响到数据的正常流动,也不会影响系统的稳定性。

而他们现在的这个雷达控制系统,很显然也是这样,有某一个东西正好接管了他们系统中所调用的一个系统函数,只是,对方在处理那个底层函数的时候,有个地方没有处理好,导致他们在调用这个函数的时候,根本没有调用成功,结果就没有返回值。

徐直中和曹兴平两人对视一眼,然后徐直中问道:“小鸿,你能肯定是这个原因吗?”

林鸿所说的话,通俗易懂,他们也听明白了。

虽然八九不离十,但是为了保险起见,林鸿还是得自己动手验证一下才能打包票。

“这样吧,如果方便的话,我就使用我自己的方式进行验证一下。”他说道。

徐直中稍微想了一下,便点头同意了。

在曹兴平的示意下,余波只好让出了自己的座位。

林鸿坐了上去,然后调出编译器,立刻动手编写一个小工具。

这个小工具非常简单,只有一个功能,那就是持续不断地对之前那个函数进行调用,然后使用内存DUMP的方式,将内存里面的指定数据保存在一个文本文件里面,与此同时,也监测那个函数的返回结果。

接着,林鸿便将余波之前做的过程重新做了一遍,重启,然后进入静默状态,再重新恢复……

一个新的文件便被生成了。

林鸿使用编辑器将其打开,开始分析文本文件里面的内容。

站在林鸿身后,想看他好戏的余波顿时有些傻眼了。

也不知道林鸿是故意的还是怎的,他的动作非常快,写代码也感觉就像是心中早就编写过无数次那样,直接一溜烟地就编写了过去,稍微修复了几个由于疏忽而导致的错误之后,这个小工具便很快就写完了。整个过程,用了不到三分钟的时间。

余波站在身后一直目不眨眼地盯着都没有跟上他的步伐。虽然看懂了大概的意思,但是其细节却是完全理解不了,不知道对方为什么这么编写。

而看到最终生成的那个文本文件,他更是傻眼,因为里面的内容按理说来,是根本访问不到的,是系统层的内存数据。

“这不可……”余波还想说什么,不过立刻有闭了嘴,因为事实摆在眼前,他再说不可能,那不是一句废话么?

林鸿将记录迅速的看了一遍,最终点头道:

“果然如此。里面的确有一个隐藏的程序,接管了这个函数。”

这个LOG文件中的记录,非常明显地显示出,进入静默状态的时候,内存里面的函数栈有了比较明显的变化,数据显示一个新的函数被压入了栈。

栈是数据结构中一个比较特殊的数据结构,其特点就是“先进后出”,例如弹夹就是一个典型的栈结构,子弹装进去的时候,先压入,再弹出,最先装入的是最后被射出。

在程序中,函数里面的各个数据和变量,也是按照一定的顺序,一个一个“压入”,执行完毕之后,再一个一个“弹出”。

要想监控函数的变化,就只要监控指定位置的那个栈结构就行了。林鸿从内存中DUMP出来的数据,就是栈里面的东西。

这个结果,在场的其他三人脸色都有些变了。

这意味着,林鸿所说的话是正确的,系统底层的确有一个隐藏的程序在秘密活动,而他们之前对此却毫不知情。

徐直中还好,已经有了心理准备,曹兴平却是脸色变得极其难看。

“那为什么在刚开始启动的时候没有这个问题,而进入静默状态才会出现?”

这个时候,余波突然插言问道,他这个时候,已经没有心思去膈应林鸿了。

“这是因为在系统启动的时候,你们的这个壳程序优先启动,然后对方才启动,这样就根本没有受到它的影响,两者相安无事。但是进入静默状态的时候,壳程序会要关闭,再次启动的时候,那个隐藏程序已经完全接管了整个函数接口,可能是对方在这一块没有处理好,导致两者产生了冲突,壳程序调用的那个函数没有能够返回有效的数值,而你们恰好又没有对这个返回值进行判断处理,最终导致了整个壳程序的崩溃。”

第三百八十八章 崩溃的原因 目录 第三百九十章 再想想办法