正文 第二章 計算機病毒有關的一些知識(1 / 3)

上一章我們談到計算機病毒是一段其有破壞性的程序,它的攻擊目標主要是磁盤和文件。這一章我們就先從磁盤和文件係統的結構談起,然後剖析DOS操作係統,最後破解病毒的作用機製。看完了本章,你將會對所有的基於DOS的病毒有一個徹底的了解,同時也使你吏深人地了解你手頭的計算機。

2.1軟盤

2.1.1軟盤的結構

目前,微機使用最普遍的是5英寸盤和3英寸盤。

軟盤有單麵,雙麵之分,也有雙密度和高密度之分。但不管是何種軟盤,其基本結構是完全類似的。每張軟盤由若幹條磁道組成,最外麵的磁道為0磁道,向內依次為1磁道,2磁道……格式化之後,每條磁道又分為若幹扇區,每個扇區不管其長度大小,都存儲512個字節,所以每張磁盤的容量為扇區數和512的乘積。

每個扇區由4部分組成,依次為標識區(仍區),間隙,數據區和間隙。

標識區用來標識扇區的開始和記錄目標地址的信息,數據區用來記錄數據。兩個區之間均留有空隙,以保護數據不受盤速變化、機械尺寸、延時誤差等等因素的影響。

2.1.2物理扇區和邏輯扇區

磁盤的扇區定位可使用兩種方式來實現:物理扇區和邏輯扇區。物理扇區是指某個扇區在磁盤上的絕對位置。因而,物理扇區由驅動器號、麵號、磁道號、扇區號4個參數組成。驅動器號指磁盤所在驅動器,對應的編號A驅為00,B驅為01,C驅為02,以此類推。在同一張軟盤上,第一個物理扇區是0麵0道1扇區,而最後一個物理扇區是1麵39道9扇區。為了減少磁頭移動的次數,磁頭在訪問磁盤時是從同一道中一個麵中的所有扇區,到下麵中所有扇區,然後才移動到下一道。以這種順序訪問磁盤是較合理的。

邏輯扇區是將一張盤片上的所有扇區統一順序編號。這個編號就稱為邏輯扇區或“相對扇區”。邏輯扇區以DOS區域起始的物理扇區為邏輯0扇區。對於雙麵雙密度軟盤,為了減少磁頭尋道時間,其邏輯扇區的編號從0麵0道1扇區為邏輯0扇區開始,到0麵0道9扇區為邏輯8扇區,而1麵0道1扇區為邏輯9扇區,直到1麵0道9扇區為邏輯17扇區等等。若用16進排列,雙麵雙密度軟盤的邏輯扇區號。

DOS係統分配磁盤存儲空間的最小單位是簇。一個簇由幾個連續的邏輯扇區組成。每個簇中的扇區數與盤的類型和DOS的版本有關,一般單麵軟盤或高密軟盤每簇為1個扇區,雙麵雙密軟盤每簇2個扇區。

2.1.3DOS係統的軟盤組織

DOS係統格式化的軟盤由四個部分組成:引導扇區、文件分配表,根目錄表和數據區。

1.引導扇區

引導扇區位於邏輯0扇區,即軟盤片的0麵0道1扇區上。由程序格式化磁盤時形成。引導扇區的主要功能是完成的自舉。引導扇區由3個主要部分組成:

(1)磁盤基本輸入輸出參數塊;

(2)磁盤基數表;引導程序。

在引導扇區的位移DOS到出隻處,是長度為19個字節的磁盤基本I/O參數塊,簡稱BPB。中記錄了有關磁盤的重要信息,如每扇字節數、每簇扇區數、磁盤介質說明等。BPB最後的三個字,從位移18H開始,說明磁盤的每道扇區數、、磁頭個數和隱藏扇區數,它們是供給磁盤驅動程序使用的。

從引導扇區位移21H開始的11個字節為磁盤基數表。表中的各項參數與引導扇區中的BPB表及其它數據一道說明了整個磁盤的各種狀態和使用情況。磁盤基數表主要供磁盤驅動器硬件操作時使用,它包括:磁頭加載、卸載時間,馬達等待時間,每扇區字節數,扇區間隔字節數,等等。

DOS的引導程序和DOS的版本有關,但是無論版本如何,DOS引導區的作用都是相同的,這些將在本章的DOS操作係統中給予詳細說明。

2.文件分配表(FAT表)

文件分配表從邏輯1扇區開始,它存放每個文件在磁盤上分布的信息。文件分配表是DOS的一個重要的數據表格。它可以用來登記文件區中所有磁盤簇號的分配使用情況,同時,可由文件的首簇號,在FAT表中快速地查找此文件鏈簇中其它簇號以及鏈接關係。

磁盤上共有兩個完全相同的文件分配表,是為了防止FAT1被破壞而專門設置的。

RDT表記錄根目錄下每一個磁盤文件名、擴展名、生成時間和文件長度等等。

4.數據區

除了上述3個區外,磁盤剩餘的空間,都用來存儲程序和數據,稱作數據區。

2.2硬盤

2.2.1硬盤的結構

硬盤和軟盤一樣,都是個人計算機常用的外存儲器。但硬盤比軟盤容量大,速度快。硬盤由多個盤片組成。PC機的硬盤一般由兩個盤片組成,因而有4個磁頭,編號為0到3。4個磁頭對應的4個麵為0麵到3麵。

硬盤的磁盤表麵也以轉軸中心為原點,均勻地劃分為若幹個半徑不等的同心圓,叫做磁道。不同麵上的相同半徑的磁道,在垂直方向上構成的圓筒,叫做柱麵。顯然,柱麵數等於磁道數。

10MB的硬盤共有306個鋅麵,編號由外向內為0到305。20MB的硬盤有4個柱麵,編號由外向內為0到3。

硬盤中的305柱麵留作診斷用。

硬盤的物理扇區是磁盤扇區的絕對地址。物理扇區由驅動器號,磁頭號(即麵號)柱麵號和扇區號四個參數組成,如10MB硬盤的第一個物理扇區為03驅動器。最後一個扇區是03驅動器3磁頭305柱麵17扇區。

硬盤的邏輯扇區與DOS分區的起點有關。以下版本分區的硬盤隻有1個係統隱藏扇區,DOS分區的起點由0磁頭0柱麵2扇區開始。DOS3.0以上的版本有17個係統隱藏扇區,漢爲分區從0磁頭0柱麵1扇區開始,由此可見,硬盤的邏輯扇區與物理扇區的對應關係因DOS版本的不同而不同。

硬盤可以劃分為幾個“分區”,用以支持DOS以外的操作係統。DOS3.2以下的係統,硬盤最多可容納4個分區。每個分區可以具有不同大小的存儲空間,但每個分區分配的存儲空間都是連續的。因此在硬盤上可駐留及其它操作係統。每一個操作係統都可以在硬盤上建立自己專用的操作區,但不能對盤上的其它分區進行操作;而且,在某段時間內,隻允許盤上的一個操作係統運行。也就是說,幾個操作係統不能同時運行。

每一種操作係統在硬盤上建立分區操作時都由一個自己特有的實用程序來完成。DOS分區的實用程序為60MB。利用可進行DOS分區的生成、刪除、顯示和修改等操作。

硬盤初始化時,可根據用戶選擇的地址和大小建立一個或幾個用於DOS的區域。經過分區後,在硬盤上就建立了一個硬盤的主引導區和幾個分區。

2.2.3主引導扇區

硬盤的主引導扇區位於硬盤的0磁頭0柱麵1扇區,是硬盤上第一個物理扇區,主引導扇區中存放著硬盤的主引導記錄。硬盤的主引導記錄包括了3個方麵的內容:主引導程序優碼,分區表和主引導記錄結束標誌。

1.主引導程序代碼

主引導程序用來找出係統當前的活動分區,負責把對應的一個操作係統的引導記錄即當前活動分區的引導記錄,裝入內存,然後把控製權轉移給該分區的引導記錄。

分區表、

主引導扇區的分區表存放在主引導記錄的後半部分。分區表可分為4個部分2供下版本表示4個分區的信息,從位移量182隻開始的64個字節是硬盤分區表。

分區表的每一部分長16個字節,第0個字節是自舉標誌,該值為809時,表示該分區是當前活動分區,可引導;當值為04H時,表示該分區不可引導。第4字節是DOS係統標誌,其值為009時表示不是DOS分區,值為01H時表示該分區是DOS分區,使用12位文件分配表,值為似隻時表示是DOS分區,並采用16位。分區表的第1-3字節是該分區的起始地址,其中第1字節為起始磁頭號,第2字節的低6位為扇區號、高2位是柱麵號的高2位,第3字節指出柱麵號的低8位。因此,柱麵號是用10位二進製數表示的。分區表的第5-7字節表示該分區的終止地址,其意義與1-3字節相同。第8—11字節表示該分區的起始相對扇區號,第12-15字節表示該分區的實用扇區數。