假設一種情況,一個大盒子裡要放數種口味不同的瓜子,不同口味的瓜子不能混放,還要能夠非常方便的計算出每種瓜子的重量,我們會怎麼做,
有這樣一種方法,在盒子裡做出很多大小相同,又相互隔離的格子,每個格子內能夠存放的瓜子的重量是一定的,假設是50克,我們依次把每一種瓜子放到這些格子裡,比如,五香味的佔了五個完整的格子,第六個格子沒有佔滿,我們要想知道瓜子的重量,只需要把第六個沒佔滿的格子裡的瓜子稱一下就可以了,如果對重量精度要求不高的話,我們甚至可以直接將最後未滿的格子中的瓜子也計算爲50克,這樣的話,瓜子重量的計算就會更加方便快捷,
按照這種方法,其他口味的瓜子從第七個格子開始存放,通過數格子的方法測重,依此類推,
這時候,只考慮有瓜子的格子,我們就有一個問題,在我們把所有的瓜子都放到盒子裡後,必然會有很多的格子並沒有被佔滿,也就是空間的利用率不是百分百,那些未被利用而浪費掉的空間,我們可以將之稱爲空間碎片,
計算機操作系統中,對磁盤文件進行管理的功能模塊叫做文件系統,不同的文件系統對磁盤文件的管理方式雖然是不一樣的,但是有一點是相同的,那就是所有的文件系統,在磁盤中存放文件的時候,都會把磁盤存儲空間劃分成大小相同的格子,這種格子在計算機專業中有一個術語,叫做磁盤扇區,給磁盤畫格子的過程,就是我們平時所常說的格式化,
和瓜子重量計算相似,文件系統對文件大小的計算,一般都是按照扇區爲單位的,不滿一個扇區的,也會按照一個扇區進行計算,
和前面講述的盒子裡放瓜子道理一樣,因爲文件大小是隨機的,不可能正好是磁盤扇區大小的整數倍,所以任何文件系統對磁盤空間的利用率都不可能是百分之一百,那些無法利用的磁盤空間,就是我們常說的磁盤碎片,
雖然每一個磁盤碎片浪費掉的磁盤空間都非常小,但是我們知道,磁盤中的文件數量是極其龐大的,因此,磁盤碎片的數量也是極其龐大的,如此一來,數量龐大的磁盤碎片,對磁盤空間的浪費就非常可觀了,這些磁盤碎片不僅會造成磁盤空間浪費,還對磁盤讀寫效率有很大影響,這其中的原因比較複雜,這裡不再講述,
因此,任何文件系統,都會有一種機制對磁盤碎片進行處理,較爲先進的文件系統,比如windowsnt上使用的ntFS,對磁盤碎片的管理能力較強,能夠極大的減少磁盤碎片對空間的浪費,比ntFS更爲先進的文件系統,甚至能夠隨着磁盤使用時間的推移,碎片越來越少,
然而,在微軟的操作系統windows98上使用的fat32,卻是一種憋足的文件系統,這種系統對磁盤碎片的管理能力極弱,以至於隨着磁盤使用時間推移,碎片越用越多,然後不得不利用一些外在的磁盤碎片整理工具,對磁盤文件進行重新規劃安排,以達到減少磁盤碎片的目的,
我們通常認爲磁盤碎片是無法被利用的,但是一些計算機高手,卻能夠通過某種高明的手段,對這些碎片加以利用,以達到其特殊的目的,
病毒感染磁盤文件,一般會導致磁盤文件體積增大,但是我們想像一下,如果病毒文件在感染磁盤文件時,不佔用新的磁盤扇區,而是把自己存放在那些未存滿被感染文件數據的磁盤扇區中,而文件系統又是按照扇區爲單位對磁盤文件大小進行計算的,會產生什麼結果,
這個很容易理解,這個時候,雖然病毒文件將自己寫入了文件中,但是磁盤文件的大小卻沒有改變,這種現象就像我們往一桶沙子裡到了一盆水一樣,水倒進去了,桶內沙子的體積卻沒有增加,
顧狼把曲別針扔進梅麗的盤子裡,曲別針掉進光盤盒之間的縫隙裡,也是這個道理,
顧狼想到的更遠,因爲ciH病毒感染文件,本身利用的就是這種機制存儲自身的,而他們得到的病毒原體,也是從被感染文件的磁盤碎片中提取出來的,但是他和所有人都忽略了一點兒,那就是病毒原體自身在佔據磁盤碎片之時,同樣會產生新的磁盤碎片,如果病毒編寫者把病毒的核心代碼又塞進了這些病毒原體產生的新的磁盤碎片中,並利用某種手段,將之隱藏的話,那麼,前面他們對病毒原體進行反彙編得不到其變異代碼,以及專殺工具把病毒清除不乾淨,也就可以理解了,
急匆匆的跑回了技術部,顧狼坐到了電腦旁,暗暗祈禱了一下,希望自己剛纔的那個推測是正確的,
他打開了一個磁盤數據抓取工具,把病毒原體所在磁盤空間內包括碎片在內的所有數據全部抓了出來,然後又和原來的病毒原體文件數據進行了一番對比,於是得到了一些差異數據,這些數據實際上原來就曾經得到過,不過先前他們都把這些數據當成了垃圾數據給過濾掉了,而這個時候,他卻要去重點分析這些數據,
把這些數據導入另外一個數據分析軟件,在開始分析的時候,顧狼的心一下子提到了嗓子眼,因爲這是他能想到的唯一的辦法了,如果這個這個辦法還行不通,他覺得自己真的有些黔驢技窮了,
眼睛微微閉上,顧狼等了幾分鐘,然後深吸了一口氣,緩緩把眼睛睜開,看向了電腦屏幕,數據分析軟件的分析結果已經出來了,
“原來真的是這樣,好高明的手段。”
顧狼看着軟件給出的分析報告,原本提着的心一下子落到了肚子裡,緊握拳頭在空中揮動了一下,然後站了起來,大聲說道,“大家都過來,開個會。”
再次把技術部的員工給集合起來,顧狼簡明扼要的把他的發現講了一下,又是引來一陣驚呼,
“武陽,先不要管這個變異算法究竟是怎麼回事,直接對病毒感染磁盤扇區進行清零操作,用最快時間對病毒專殺工具進行改進,時間拖得越長,對我們越不利,散會吧。”顧狼吩咐了武陽一聲,
其實不用顧狼吩咐,武陽鬱悶了這麼長時間,這一下子有了突破,他早已迫不及待,躍躍欲試了,所以顧狼話音剛落,他就帶着他的兩個助手急匆匆的離開了,
武陽離開後,顧狼把他得到的病毒的變異算法代碼進行了一番加工,然後對其進行了反彙編,得到了一段彙編代碼,於是帶着濃濃的好奇,開始對這段代碼進行研究分析,
這段代碼很容易看懂,其中包含一個隨機變異算法,可以說,只要這段代碼找不到,那麼這個變異算法,一旦檢測到它生成的ciH病毒被殺掉,就會再次生成一個不同的變異病毒出來,另外,這段代碼裡還包括一個ciH病毒免疫代碼判斷和繞過機制,這個機制也不是什麼特別高明的東西,當初顧狼被池翔僱傭,在對付肖遠的時候,就用過類似的方法,
在他研究這段代碼的時候,武陽那邊也在緊張的工作着,一個小時後,新版的專殺工具出爐了,經過測試,這次的專殺工具成功的在虛擬機裡,將病毒徹底殺掉了,
“馬上把專殺工具送到網絡部,發佈上傳到玄涅論壇,我現在去找唐總通報一下,你們辛苦了。”
顧狼這個時候有些興奮,吩咐了武陽一聲,然後急匆匆的從技術部出來,深吸了一口氣,往唐新宇辦公室去了,