C C 使用者模式下改寫硬碟主引導記錄 MBR

2021-07-08 20:03:08 字數 1172 閱讀 3866

cpu一共有四種許可權級別:ring0 ring1 ring2 ring3

windows只是用了ring0和ring3

我們在使用電腦時,一般在ring3模式下工作。在ring3模式下,我們無法使用cpu特權指令in和

out。對系統所屬的資料,位址空間以及硬體也是有嚴格的限制的。

但是這對於作業系統來說是一件好事,可對於一些應用程式來說,就很無語了。

要想在ring3下完成這個任務,只能通過核心程式來進行使用。在windows系統中,核心程式不受任何的限制,可以隨意訪問系統所屬的資料,作業系統位址空間等。所以,開發核心程式必須要有嚴格的測試!

不過呢,想要在ring3級別下訪問硬碟,也是很簡單的!

那是因為:

windows 作業系統為了自己程式設計方便,編寫了在使用者模式下呼叫的硬碟核心模式驅動程式,該程式在系統啟動時候自動裝載。我們只要掌握這個 windows 核心模式的驅動程式,就可以直接在使用者模式下直接無阻礙訪問硬碟了。

不過想要掌握這個核心程式,也是很簡單。因為:

硬碟核心驅動程式將硬碟作為乙個檔案,檔名為:"\\.\\physicaldrive0"

這樣,我們就可以通過這個檔名,使用 createfile, readfile, writefile 和 deviceiocontrol 這幾個api來進行訪問硬碟。

題外話:我在測試的時候發現了乙個大問題。就是我用這個程式在改寫mbr的時候,我的360安全衛士竟然沒提示,也沒攔截!!!然後。。。。。額 就沒有然後了(因為虛擬機器跑不起來 所以我在真實機器上測試。幸虧備份mbr了)。。。。。

下面的**,請謹慎使用。使用前請先備份mbr。以防資料丟失。

如果出現事故,與本人無關!

#include int main(void)

else

return 0;

}

硬碟主引導記錄 MBR 及其結構

硬碟的0柱面 0磁頭 1扇區稱為主引導扇區,fdisk程式寫到該扇區的內容稱為主引導記錄 mbr 該記錄占用512個位元組,它用語硬碟啟動時將系統控制權交給使用者指定的,並在分割槽表中登記了的某個作業系統區。1.mbr的讀取 硬碟的引導記錄 mbr 是不屬於任何乙個作業系統,也不能用作業系統提供的磁...

硬碟主引導記錄 MBR 及其結構

硬碟的0柱面 0磁頭 1扇區稱為主引導扇區,fdisk程式寫到該扇區的內容稱為主引導記錄 mbr 該記錄占用512個位元組,它用語硬碟啟動時將系統控制權交給使用者指定的,並在分割槽表中登記了的某個作業系統區。1.mbr的讀取 硬碟的引導記錄 mbr 是不屬於任何乙個作業系統,也不能用作業系統提供的磁...

硬碟主引導記錄 MBR 及其結構

硬碟的0柱面 0磁頭 1扇區稱為主引導扇區,fdisk程式寫到該扇區的內容稱為主引導記錄 mbr 該記錄占用512個位元組,它用語硬碟啟動時將系統控制權交給使用者指定的,並在分割槽表中登記了的某個作業系統區。1.mbr的讀取 硬碟的引導記錄 mbr 是不屬於任何乙個作業系統,也不能用作業系統提供的磁...