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