開機磁區在每個分區裡都存在,但是我們常說的*主開機磁區*是硬碟的第一物理扇區。它由兩個部分組成:即主引導記錄MBR和硬碟分區表DPT。
在總共512位元組的主引導分區裡其中MBR佔446個位元組(位移0-- 位移1BDH),DPT佔64個位元組(位移1BEH--位移1FDH),最後兩個位元組“55,AA”(位移1FEH位移1FFH)是分區的結束標誌。大致的結構如:
0000 |------------------------------------------------|
| |
| |
| Main Boot Record |
| |
| |
| 主引導記錄(446位元組) |
| |
| |
| |
01BD | |
01BE |------------------------------------------------|
| |
01CD | 分區資訊 1(16位元組) |
01CE |------------------------------------------------|
| |
01DD | 分區資訊 2(16位元組) |
01DE |------------------------------------------------|
| |
01ED | 分區資訊 3(16位元組) |
01EE |------------------------------------------------|
| |
01FD | 分區資訊 4(16位元組) |
|------------------------------------------------|
| 01FE | 01FF |
| 55 | AA |
|------------------------------------------------|
主引導記錄中包含了硬碟的一系列參數和一段引導程式。引導程式主要
是用來在系統硬體自檢完後引導具有啟用標誌的分區上的作業系統。它執行到最後的是一條JMP指令跳到作業系統的引導程式去。這裡往往是引導型病毒的注入點,也是各種多系統引導程式的注入點。但是由於引導程式本身完成的功能比較簡單,所以我們可以完全地判斷該引導程式的合法性(看JMP指令的合法性),因而也易於修複。象命令fdisk/mbr可以修複MBR和KV300這類軟體可以查殺任意類型的引導型病毒,就是這個原因。
往下來是硬碟的分區表,由4個16位元組的分區資訊表組成。每個資訊表的
結構如下:
位移 長度 所表達的意義
0 位元組 分區狀態: 如0-->非使用中的磁碟分割
80--> 使用中的磁碟分割
1 位元組 該分區起始頭(HEAD)
2 字 該分區起始扇區和起始柱面
4 位元組 該分區類型:如82--> Linux Native分區
83--> Linux Swap 分區
5 位元組 該分區終止頭(HEAD)
6 字 該分區終止扇區和終止柱面
8 雙字 該分區起始絕對分區
C 雙字 該分區扇區數
最後的兩個標誌“55 AA”是分區表的結束標誌,如果這兩個標誌被修改
(有些病毒就會修改這兩個標誌),則系統引導時將報告找不到有效分區表。