教你如何備份主引導(dǎo)區(qū)
作者:佚名 文章來(lái)源:不詳 點(diǎn)擊數(shù): 更新時(shí)間:2011/6/18
核心提示:主引導(dǎo)扇區(qū),也就是們常說(shuō)的MBR(MASTERBOOTSECTOR),硬盤(pán)的第一個(gè)扇區(qū),位于硬盤(pán)的0柱0面1扇,是PC機(jī)在系統(tǒng)引導(dǎo)時(shí)最先讀取的扇區(qū),這個(gè)扇包含了兩個(gè)部分,一小段裝入程序和一個(gè)硬盤(pán)分區(qū)表
主引導(dǎo)扇區(qū),也就是們常說(shuō)的 MBR(MASTER BOOT SECTOR),硬盤(pán)的第一個(gè)扇區(qū),位于硬盤(pán)的0柱0面1扇,是 PC 機(jī)在系統(tǒng)引導(dǎo)時(shí)最先讀取的扇區(qū),這個(gè)扇包含了兩個(gè)部分,一小段裝入程序和一個(gè)硬盤(pán)分區(qū)表,其中裝入程序的作用是用來(lái)將可啟動(dòng)的操作系統(tǒng)分區(qū)的第一個(gè)扇區(qū)(記住:是操作系統(tǒng)的第一個(gè)扇區(qū),不是硬盤(pán)的第一個(gè)扇區(qū)!),也就是我們常說(shuō)的引導(dǎo)區(qū)(很多人分不清引導(dǎo)區(qū)和主引導(dǎo)區(qū)的不同),裝入內(nèi)存,并將控制權(quán)交給引導(dǎo)程序,從而實(shí)現(xiàn)操作系統(tǒng)的引導(dǎo)。裝入程序一旦被病毒或惡意程序破壞,硬盤(pán)將不能用于引導(dǎo)。硬盤(pán)分區(qū)表大家可能比較熟悉,其中是硬盤(pán)的分區(qū)信息,一旦遭到破壞,其后果是硬盤(pán)找不到分區(qū),硬盤(pán)數(shù)據(jù)丟失。可見(jiàn) MBR 區(qū)是多么的重要,正因?yàn)樗闹匾庞性S多病毒或是惡意代碼才把苗頭指向了它,一不留神,你可能就要和你的數(shù)據(jù)說(shuō)“886”了,如果你的硬盤(pán)有重要數(shù)據(jù)的話,你可能可以通過(guò)重建分區(qū)的辦法找回一些或是全部的文件,記得幾年前,我們單位的一臺(tái)機(jī)器被 CIH 感染并發(fā)作了,我花了一整天的時(shí)間才將分區(qū)表重建好,我當(dāng)時(shí)在就在想,要是我早備份了主引導(dǎo)區(qū)就好,于是我就動(dòng)手寫(xiě)了兩個(gè)小程序,用于備份硬盤(pán)的主引導(dǎo)區(qū),在這我加上詳細(xì)的注釋把源程序貼了出來(lái),給大家看看,有興趣的朋友可以自己編譯、鏈接,之后你就可以用來(lái)備份你的分區(qū)表了,記住有備無(wú)患、防范未然啊! 其中 MBR1.ASM 通過(guò)編譯、鏈接后生成 MBR1.EXE,用來(lái)將主引導(dǎo)區(qū)備份到軟區(qū)。MBR2.ASM 編譯、鏈接后生成 MBR2.EXE,萬(wàn)一主引導(dǎo)區(qū)遭到破壞,用于將 MBR1.EXE 備份的主引導(dǎo)區(qū)寫(xiě)回硬盤(pán)。
MBR1.ASM 的源程序如下:
;MBR1.ASM
;本程序用于備份硬盤(pán)的主引導(dǎo)區(qū)
DATA SEGMENT
D1 DB "本程序用于將硬盤(pán)的主引導(dǎo)區(qū)備份到A:\BOOT.DAT中。",0dh,0ah
db " 作者:風(fēng)般的男人",0dh,0ah
db " E-MAIL:tyhhyf@hotmail.com",0dh,0ah
db " OICQ:86633320",0dh,0ah,"$"
D2 DB 'A:\BOOT.DAT',00H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOVAH,09H
MOVDX,OFFSET D1
INT21H ;顯示字符串D1
MOVAX,0201H
MOVBX,0700H
MOVCX,0001H
MOVDX,0080H
INT13H ;讀MBR區(qū)到內(nèi)存
MOVCX,0020H
MOVDX, OFFSET D2
MOVAH,3CH
INT21H ;建立文件A:\BOOT.DAT
MOVAL,01H
MOVDX, OFFSET D2
MOVAH,3DH
INT21H ;打開(kāi)文件A:\BOOT.DAT(用于寫(xiě))
MOVBX,AX
MOVDX,0700H
MOVCX,0200H
MOVAH,40H
INT21H ;將內(nèi)存中的MBR區(qū)寫(xiě)入文件中
MOV AH,4CH
INT 21H ;退出程序
CODE ENDS
END START
MBR2.ASM 的源程序如下:
;MBR2.ASM
;本程序用于將 MBR1.EXE 程序在本機(jī)硬盤(pán)備份的主引導(dǎo)區(qū)恢復(fù)到本機(jī)硬盤(pán)的主引導(dǎo)區(qū)
DATA SEGMENT
d1 db " #主引導(dǎo)區(qū)安裝程序#",0dh,0ah
db " 作者:風(fēng)般的男人",0dh,0ah
db " E-MAIL:tyhhyf@hotmail.com",0dh,0ah
db " OICQ:86633320"0dh,0ah,"$"
d2 db " !!!警告!!!",0dh,0ah
db " 本程序僅用于將MBR1.EXE程序在本機(jī)硬盤(pán)備份的主引導(dǎo)區(qū)A:\BOOT.DAT"
db "文件(該文件必須在A盤(pán)根目錄上)恢復(fù)到本機(jī)硬盤(pán)的主引導(dǎo)區(qū),否則硬盤(pán)分區(qū)"
db "會(huì)丟失,不聽(tīng)警告,后果自負(fù)!"0dh,0ah
db " 確認(rèn)要執(zhí)行么?(Y/N)",0dh,0ah,"$"
d3 db " A:\BOOT.DAT文件沒(méi)找到!",0dh,0ah,"$"
d4 db "A:\BOOT.DAT",00H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOVAH,09H
MOVDX,OFFSET D1
INT21H ;顯示字符串d1
MOVAH,00H
INT16H ;等待用戶(hù)按任意鍵鍵繼續(xù)
MOVAH,07H
MOVAL,00H
MOVBH,0A4h
MOVCX,0000H
MOVDX,184FH
INT10H ;設(shè)置顯示方式(背景綠,前景紅)
MOVAH,09H
MOVDX,OFFSET D2
INT21H ;顯示字符串d2(因?yàn)榇顺绦蛴幸欢ǖ奈kU(xiǎn)性,所以
;警告一定要顯眼)
READ_KEYBOARD:
MOVAH,00H
INT16H
ORAL,20H
CMPAL,79H
JZWRITE ;是Y/y的話就跳轉(zhuǎn)到寫(xiě)MBR區(qū)處
CMPAL,6EH
JZEXIT ;是N/n的話跳轉(zhuǎn)到退出處
JMPREAD_KEYBOARD ;是其他鍵就重新讀鍵
EXIT:
MOVAH,07H
MOVAL,00H
MOVBH,07H
MOVCX,0000H
MOVDX,184FH
INT10H ;清屏
MOVAH,4CH
INT21H ;退出程序
WRITE:
MOVAH,3DH
MOVDX,OFFSET D4;
MOVAL,00H
INT21H ;打開(kāi)A:\BOOT.DAT
JBERROR
PUSHAX
MOVAH,3FH
MOVDX,7000H
MOVCX,0200H
POPBX
INT21H ;將A:\BOOT.DAT讀入內(nèi)存
MOVAH,03H
MOVAL,01H
MOVBX,7000H
MOVCX,0001H
MOVDX,0080H
INT13H ;寫(xiě)入硬盤(pán)MBR區(qū)
JMPEXIT ;跳轉(zhuǎn)到退出程序處
ERROR:
MOVAH,09H
MOVDX,OFFSET D3 ;顯示出錯(cuò)信息
INT21H
MOVAH,4CH
INT21H ;退出程序
CODE ENDS
END START
當(dāng)然,你也可以用一些其他的工具對(duì)分區(qū)表進(jìn)行操作,比如 KV300,但是你要是和我一樣窮買(mǎi)不起正版又和我一樣尊重知識(shí)產(chǎn)權(quán)的話,你就照我的去做吧:) 說(shuō)到這,我的程序也介紹完了,程序本身并沒(méi)有什么值得多說(shuō)的地方,我要說(shuō)的是希望大家能提高安全意識(shí),及時(shí)備份分區(qū)表,記住在你每次重新分區(qū),或是用 PQmagic 之類(lèi)的軟件對(duì)分區(qū)進(jìn)行操作后都要將你的 MBR 區(qū)做個(gè)備份,以防不測(cè)。有興趣的朋友可以和我聯(lián)系,我的 E-mail 和 QQ 在源程序中可以看到。