Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.17.28.48] |
|
Сообщ.
#1
,
|
|
|
Как заблокировать и разблокировать клавиатуру
или мыш для DOS приложений? |
Сообщ.
#2
,
|
|
|
Перехватить прерывания клавиатуры и мыши
и поставить iret |
Сообщ.
#3
,
|
|
|
А можно по-другому :-)
Всё это аппаратные прерывания, поэтому можно перепрограмировать контроллер прерываний и всё. Нет нужды страдать резидентами... |
Сообщ.
#4
,
|
|
|
2skintwin:
Простой iret завалит всю систему. Вызывается аппаратное прерывание. Обработчик обязан сообщить контроллеру прерываний о завершении его обработки (кажись чего-то в 20h порт надо скинуть). Иначе крах. |
Сообщ.
#5
,
|
|
|
а вот и хрен вам всем подменить прерывание не получиться, вынь не даст:))
насчет мыши не знаю, но клаву точно! и вообще какой толк в блокировке клавы с мышой и подмене прерываний? если охота подвесить комп, то вот: cli hlt но это, опять таки для RealMode, тобиш в голом досе работает |
Сообщ.
#6
,
|
|
|
Народ верно тебе говорит - есть такая схема прерываний - 21Н. Пример
MOV AL, 00000001B ;Маскируем бит 1 - клавиатура (IRQ - схема) OUT 21h, AL ;Прощай, киска ,,, mov al, 0 out 21h, al ;Возвращаем тётю Клаву |
Сообщ.
#7
,
|
|
|
2Organic: блин, чел ведь писал -- для ДОС! Исесно, что для дос-сессии перепрограмировать ПКП хер дадут -- "Программа выполнила недопустимую операцию..."
А винду чудесно можно подвесить кодом, большим чем твой всего на байт: cli ;глючная 9х не закрывает эту дыру, ; а может спецом оставили? a: jmp short a; ЗЫ В NT дыра залатана. Код хер пройдёт. |