假设一种情况,一个大盒子里要放数种口味不同的瓜子,不同口味的瓜子不能混放,还要能够非常方便的计算出每种瓜子的重量,我们会怎么做?
有这样一种方法,在盒子里做出很多大小相同,又相互隔离的格子,每个格子内能够存放的瓜子的重量是一定的,假设是5o克,我们依次把每一种瓜子放到这些格子里,比如,五香味的占了五个完整的格子,第六个格子没有占满,我们要想知道瓜子的重量,只需要把第六个没占满的格子里的瓜子称一下就可以了,如果对重量精度要求不高的话,我们甚至可以直接将最后未满的格子中的瓜子也计算为5o克,这样的话,瓜子重量的计算就会更加方便快捷。中文 ≧ w﹤w<w≤.
按照这种方法,其他口味的瓜子从第七个格子开始存放,通过数格子的方法测重,依此类推。
这时候,只考虑有瓜子的格子,我们就有一个问题,在我们把所有的瓜子都放到盒子里后,必然会有很多的格子并没有被占满,也就是空间的利用率不是百分百,那些未被利用而浪费掉的空间,我们可以将之称为空间碎片。
计算机操作系统中,对磁盘文件进行管理的功能模块叫做文件系统,不同的文件系统对磁盘文件的管理方式虽然是不一样的,但是有一点是相同的,那就是所有的文件系统,在磁盘中存放文件的时候,都会把磁盘存储空间划分成大小相同的格子,这种格子在计算机专业中有一个术语,叫做磁盘扇区,给磁盘画格子的过程,就是我们平时所常说的格式化。
和瓜子重量计算相似,文件系统对文件大小的计算,一般都是按照扇区为单位的,不满一个扇区的,也会按照一个扇区进行计算。
和前面讲述的盒子里放瓜子道理一样,因为文件大小是随机的,不可能正好是磁盘扇区大小的整数倍,所以任何文件系统对磁盘空间的利用率都不可能是百分之一百,那些无法利用的磁盘空间,就是我们常说的磁盘碎片。
虽然每一个磁盘碎片浪费掉的磁盘空间都非常小,但是我们知道,磁盘中的文件数量是极其庞大的,因此,磁盘碎片的数量也是极其庞大的,如此一来,数量庞大的磁盘碎片,对磁盘空间的浪费就非常可观了,这些磁盘碎片不仅会造成磁盘空间浪费,还对磁盘读写效率有很大影响,这其中的原因比较复杂,这里不再讲述。
因此,任何文件系统,都会有一种机制对磁盘碎片进行处理,较为先进的文件系统,比如indosnt上使用的ntfs,对磁盘碎片的管理能力较强,能够极大的减少磁盘碎片对空间的浪费,比ntfs更为先进的文件系统,甚至能够随着磁盘使用时间的推移,碎片越来越少。
然而,在微软的操作系统indos98上使用的fat32,却是一种憋足的文件系统,这种系统对磁盘碎片的管理能力极弱,以至于随着磁盘使用时间推移,碎片越用越多,然后不得不利用一些外在的磁盘碎片整理工具,对磁盘文件进行重新规划安排,以达到减少磁盘碎片的目的。
我们通常认为磁盘碎片是无法被利用的,但是一些计算机高手,却能够通过某种高明的手段,对这些碎片加以利用,以达到其特殊的目的。
病毒感染磁盘文件,一般会导致磁盘文件体积增大,但是我们想像一下,如果病毒文件在感染磁盘文件时,不占用新的磁盘扇区,而是把自己存放在那些未存满被感染文件数据的磁盘扇区中,而文件系统又是按照扇区为单位对磁盘文件大小进行计算的,会产生什么结果?
这个很容易理解,这个时候,虽然病毒文件将自己写入了文件中,但是磁盘文件的大小却没有改变,这种现象就像我们往一桶沙子里到了一盆水一样,水倒进去了,桶内沙子的体积却没有增加。
顾狼把曲别针扔进梅丽的盘子里,曲别针掉进光盘盒之间的缝隙里,也是这个道理。
顾狼想到的更远,因为cih病毒感染文件,本身利用的就是这种机制存储自身的,而他们得到的病毒原体,也是从被感染文件的磁盘碎片中提取出来的,但是他和所有人都忽略了一点儿,那就是病毒原体自身在占据磁盘碎片之时,同样会产生新的磁盘碎片,如果病毒编写者把病毒的核心代码又塞进了这些病毒原体产生的新的磁盘碎片中,并利用某种手段,将之隐藏的话,那么,前面他们对病毒原体进行反汇编得不到其变异代码,以及专杀工具把病毒清除不干净,也就可以理解了。
急匆匆的跑回了技术部,顾狼坐到了电脑旁,暗暗祈祷了一下,希望自己刚才的那个推测是正确的。
他打开了一个磁盘数据抓取工具,把病毒原体所在磁盘空间内包括碎片在内的所有数据全部抓了出来,然后又和原来的病毒原体文件数据进行了一番对比,于是得到了一些差异数据,这些数据实际上原来就曾经得到过,不过先前他们都把这些数据当成了垃圾数据给过滤掉了,而这个时候,他却要去重点分析这些数据。
把这些数据导入另外一个数据分析软件,在开始分析的时候,顾狼的心一下子提到了嗓子眼,因为这是他能想到的唯一的办法了,如果这个这个办法还行不通,他觉得自己真的有些黔驴技穷了。
眼睛微微闭上,顾狼等了几分钟,然后深吸了一口气,缓缓把眼睛睁开,看向了电脑屏幕,数据分析软件的分析结果已经出来了。
“原来真的是这样,好高明的手段!”
顾狼看着软件给出的分析报告,原本提着的心一下子落到了肚子里,紧握拳头在空中挥动了一下,然后站了起来,大声说道,“大家都过来,开个会!”
再次把技术部的员工给集合起来,顾狼简明扼要的把他的现讲了一下,又是引来一阵惊呼。
“武阳,先不要管这个变异算法究竟是怎么回事,直接对病毒感染磁盘扇区进行清零操作,用最快时间对病毒专杀工具进行改进,时间拖得越长,对我们越不利,散会吧。”顾狼吩咐了武阳一声。
其实不用顾狼吩咐,武阳郁闷了这么长时间,这一下子有了突破,他早已迫不及待,跃跃欲试了,所以顾狼话音刚落,他就带着他的两个助手急匆匆的离开了。
武阳离开后,顾狼把他得到的病毒的变异算法代码进行了一番加工,然后对其进行了反汇编,得到了一段汇编代码,于是带着浓浓的好奇,开始对这段代码进行研究分析。
这段代码很容易看懂,其中包含一个随机变异算法,可以说,只要这段代码找不到,那么这个变异算法,一旦检测到它生成的cih病毒被杀掉,就会再次生成一个不同的变异病毒出来,另外,这段代码里还包括一个cih病毒免疫代码判断和绕过机制,这个机制也不是什么特别高明的东西,当初顾狼被池翔雇佣,在对付肖远的时候,就用过类似的方法。
在他研究这段代码的时候,武阳那边也在紧张的工作着,一个小时后,新版的专杀工具出炉了,经过测试,这次的专杀工具成功的在虚拟机里,将病毒彻底杀掉了。
“马上把专杀工具送到网络部,布上传到玄涅论坛,我现在去找唐总通报一下,你们辛苦了。”
顾狼这个时候有些兴奋,吩咐了武阳一声,然后急匆匆的从技术部出来,深吸了一口气,往唐新宇办公室去了。