Сейчас на форуме: vasilevradislav, tyns777, zombi-vadim (+3 невидимых)

 eXeL@B —› Программирование —› Нужен на Си код блокировки клавиатуры и мыши без BlockInput.
Посл.ответ Сообщение


Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 14 февраля 2008 13:32 · Поправил: ToBad
· Личное сообщение · #1

Помогите написать на Си простой и действенный код полной блокировки клавиатуры и мыши. Пусть даже без возможности восстановления работоспособности под этой виндой. Винда XP.
BlockInput как мне кажется не подходит, так как разблокируется с помощью Ctrl-Alt-Del или завершает свою работу по завершению вызвавшего его потока. В хуки лезть тоже не хотелось бы, впрочем как и писать драйвер… Может можно как то грохать глобально обработчик клавы и мыши ?
Код должен запускаться из ЕХЕ который после блокировки запустит другой файл и завершит свою работу.
В Си я полный ноль, исходники в которые нужно добавить блокировку есть готовые.
Помогите пожалуйста как можно более конкретными примерами. Гугл использовал, но найти удалось в основном подобные вопросы и множество абстрактных мнений на этот счёт.



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 14 февраля 2008 13:40 · Поправил: HiEndsoft
· Личное сообщение · #2

А NtUnloadDriver i8042prt не подойдет что бы клаву грохнуть?
Или DeviceIoControl с кодом IOCTL_KEYBOARD_DETACH?
В 98 помниться как-то ч/з командную строку и то и другое отключалось...

-----
продавец резиновых утёнков





Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 14 февраля 2008 14:10
· Личное сообщение · #3

HiEndsoft пишет:
А NtUnloadDriver i8042prt не подойдет что бы клаву грохнуть?
Или DeviceIoControl с кодом IOCTL_KEYBOARD_DETACH?


Не знаю, нужно попробовать. А как это на Си выполнить ? Можно кусочек кода ?



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 14 февраля 2008 14:14
· Личное сообщение · #4

Попробуй на чем умеешь, если сработает я тебе на сях напишу.

-----
продавец резиновых утёнков




Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 14 февраля 2008 14:24
· Личное сообщение · #5

HiEndsoft пишет:
В 98 помниться как-то ч/з командную строку и то и другое отключалось...

rundll32 keyboard,disable





Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 14 февраля 2008 16:51
· Личное сообщение · #6

HiEndsoft пишет:
Попробуй на чем умеешь, если сработает я тебе на сях напишу.


В библиотеках NativeAPI и Ring0 от Ms-Rem нашёл и попробовал подобную реализацию:

RtlInitUnicodeString(@Image, 'i8042prt');
ZwUnloadDriver(@Image);


Не работает... Пробовал имя i8042prt.sys, так же с учётом регистра по RkUnhooker. Другие драйвера тоже пытался выгрузить. Результат нулевой, драйвер не выгрузился ни один.



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 14 февраля 2008 16:57 · Поправил: HiEndsoft
· Личное сообщение · #7

Нужно не имя файла драйвера, а имя его баз. сервиса.-->Статья Four-F<-- http://www.wasm.ru/article.php?article=drvw2k16
Я так драйвер DrWeb'a выгружаю после внедрения в его-же сервис
PUNICODE_STRING D;
RtlInitUnicodeString(D,L"SPIDER");
NtUnloadDriver(D);

У меня сейчас нет возможности попробовать клав. драйвер выгрузить.
Если не получиться выгрузить, попробуй заглушить ч/з DevIoCtl.

-----
продавец резиновых утёнков




Ранг: 14.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 19 февраля 2008 19:01
· Личное сообщение · #8

можно дровом аттачнуться к стеку девайсов клавы и блочить IRP )

зы. Для Nt(Unl/L)oadDriver нужно передавать полный путь до сервиса в виде \REGISTRY\Machine\System\ControlSet001\Services\i8042prt.



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 19 февраля 2008 19:29 · Поправил: HiEndsoft
· Личное сообщение · #9

Great пишет:Для Nt(Unl/L)oadDriver нужно передавать полный путь до сервиса в виде \REGISTRY\Machine\System\ControlSet001\Services\i8042prt
Кстати это почему-то не всегда обязательно. (Вышеприведенный пример у меня работает).
Great пишет:можно дровом аттачнуться...
сказано же без драйвера.

-----
продавец резиновых утёнков



 eXeL@B —› Программирование —› Нужен на Си код блокировки клавиатуры и мыши без BlockInput.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати