Есть такая програмка DameWare NT Utilities - это одна из лучших утилит для удаленного администрирования в сети (Вин2к). Она ставит на удаленной машине службу, подключается к ней и начинает ее (удаленную машину) злобно мучить. Особенно заинтересовала меня такая фича - Даме умеет блокировать клавиатуру на удаленной машине. Да так, что на Ctrl+Alt+Del не реагирует! Как заблокировать клаву на машине(Под 2к,ХР)?
Драйвером перехватываешь irq1(вроде прерывание 31) и ставишь пустышку, т.е. минимум кода для обработки аппаратного прерывания и всё, клава работать не будет. Также можно и мышку заблокировать и дисковод с винтами и всё остальное, что на irq сидит.
Под досом еще прокатывало замаскировать IRQ1 прямо в контроллере прерываний.... в винде из ring0 тоже должно сработать :-/
А если просто остановить драйвер клавы? А потом, когда надо будет, запустить. Только нужны не юзерские права..
А адрес обработчика останется в нём(точнее в ntoskrnl, откуда управление ему передаётся), нажмёшь кнопку и вылезет синий экран.
dragon Ты хочешь сказать, что если послать драйверу приказ на остановку, он не завершит свои дела? Или что винда на своей волне воюет и ей пофиг на отключенный драйвер, главное - кнопки обработать? Сильно сомневаюсь.
n0p Я имею в виду, что если выгрузить драйвер, то дела он завершит, а обработчик вряд ли он будет Irq1 он вряд ли будет перенаправлять куда-нибудь, т.к. тот кто его писал не думал, что его зачем-то будут выгружать. А вот про 64h порт забыл совсем, это даже удобнее, чем "Irq disabling", хотя это и универсальный метод.
dragon Не знаю.. Если аинда не контролирует такие мелочи, то у нее в хлам кривая безопасность. А это не совсем так. Все-таки хотелось бы услышать мнение экспертов дровописателей.
64h порт? А вам разрешат с/в него читать/писать в протектед моде? Это зависит от 2х параметров... Думаю, что оба не в вашу пользу...
Inked Wedge А кто запретит? Всегда можно написать сервис режима ядра и управлять им из винды. Что сложного-то?
n0p Хех... ты ж не знаешь, вдруг код должен переноситься без дровины или размножаться на другие машины?
В любом случее, при условии ОС Win2k-xp проблема решается написанием простого драйвера(можно просто в процедуре инсталяции делать всё, что нужно и возвращать код ошибки для выгруза драйвера). Приказ на остановку всего скорее не проканает, винда зависнет(или BDS). dragon ты предлогаешь изменять в IDT 31h на свой адрес с IRET?