int 13h в защищенном режиме Windows? - PullRequest
2 голосов
/ 23 января 2010

Можем ли мы использовать Int 13h (прямое чтение / запись диска) в операционных системах Windows или режим защиты Windows не позволяет нам, и если да, то есть ли обход? Заранее спасибо.

Ответы [ 4 ]

6 голосов
/ 23 января 2010

Нет, подсистема Windows после инициализации во время загрузки перенастроила бы обработку прерываний BIOS для ядра, поскольку вызовы BIOS являются 16-битными, незащищенный режим и, следовательно, int 13h будет недействительным. Вот почему существуют драйверы, написанные для 32-битного защищенного режима, который полностью обходит BIOS.

Возникает вопрос - почему вы пытаетесь это сделать?

Windows убьет ваш код при любой попытке связаться с BIOS, как если бы он сказал: « Эй, ты кодируешь, ты говоришь со мной как с боссом Windows, ты не можешь меня обойти, ха-ха-ха НЕ ЗАПИСЫВАЙТЕ НА ВНЕ МОЙ ДОМЕН '.

Единственное время, когда будет использоваться int 13h, будет на этапе загрузки ДО загрузки Windows или если вы используете MSDOS в качестве системы, то есть без окон, просто загрузитесь в MSDOS, тогда int 13h будет действительным для использования. В обоих случаях они будут в 16-битном режиме, и, следовательно, будет доступен BIOS.

Насколько я знаю, существует общее прерывание 0x2E, это системный вызов ядра.

Короче говоря, я бы не советовал пытаться обойти систему Windows, поэтому для этого есть драйвер, вам лучше взаимодействовать с драйвером как частью диска. / o подсистема, и пусть это справится с вами.

1 голос
/ 23 января 2010

Как уже упоминали другие, это не будет работать, если вы не используете 16-битную MSDOS, но если вы работаете в 32-битной системе и имеете debug.exe , вы можете попробовать это самостоятельно. (Вы можете потерпеть крах вашей ОС!) Просто введите команды mov ax и т. Д. В 13h и т. Д., А затем выполните ее.

1 голос
/ 23 января 2010

Имея необходимые разрешения (они есть у администратора), вы можете использовать Win32 CreateFile и связанные функции для прямого доступа к физическим дискам и логическим разделам. См. Документацию MSDN .

0 голосов
/ 23 января 2010

Int 13h не работает в Windows try

...