2010-01-23 82 views
2

我們可以在Windows操作系統中使用Int 13h(直接磁盤讀/寫)還是windows保護模式不允許我們使用,如果有的話是否有工作? 在此先感謝。int 13h在Windows保護模式下?

+0

我很確定你不能... – Joe 2010-01-23 15:36:25

+0

保護模式是32位而不是16位。 16位虛擬機提供程序(ntvdm.exe)將在int 13上翻轉您的小鳥。 – 2010-01-23 16:16:56

回答

6

沒有,在Windows子系統,在啓動過程中初始化,會重新配置BIOS中斷處理的內核作爲BIOS調用是16位,而不是保護模式因此int 13h將是無效的。這就是爲什麼有驅動程序寫入32位保護模式,完全繞過BIOS。

問題在哪裏?你爲什麼要這樣做?

Windows將殺死任何企圖,就好像說'與BIOS通信代碼嘿,你的代碼,你跟我作爲Windows老大,你無法繞開我,mwuah哈哈不要踐踏在我的域名外'。

int 13h將被使用的唯一時間將是在啓動階段之前的Windows加載或如果您使用MSDOS作爲系統,即沒有窗口,只需啓動到MSDOS,然後int 13h將有效使用。在這兩種情況下,它們都是16位模式,因此BIOS可以訪問。

有一個共同的中斷0x2E我相信,這是內核的系統調用,據我所知。

總之,我不會建議試圖繞過Windows系統,這就是爲什麼有這樣的事情,作爲一個驅動程序來做到這一點,你會更好的作爲磁盤的一部分與驅動程序交互I/O子系統,讓它爲你處理。

+0

謝謝Tom。這正是我所需要的。 – Auxiliary 2010-01-23 16:52:55

0

了INT 13h不工作在Windows try

1

使用正確的權限(管理員擁有它們),可以使用Win32 CreateFile和相關函數直接訪問物理驅動器和邏輯分區。請參閱MSDN文檔。

1

正如其他人所說,除非您使用16位MSDOS,否則它將無法工作,但如果您使用的是32位系統並且有debug.exe,則可以自己嘗試。 (你可能會崩潰你的操作系統!)只需輸入命令mov ax等等。int 13h etc ..然後執行它。