Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.30;
Скачать: CL | DM;

Вниз

Блокировка клавиатуры + мыши под Win XP   Найти похожие ветки 

 
Red_imp ©   (2008-06-06 14:45) [0]

Пишу програму для студентов, нужно чтоб в некоторые моменты времени, они не могли своими шаловливыми ручками никуда полезть.
Есть проблема - как заблокировать нажатие любых клавиш на клавиатур (в том числе и Ctrl+Alt+Del), и работу мыши, под  Win XP. Мож кто пнет в правильном направлении.


 
Игорь Шевченко ©   (2008-06-06 14:54) [1]

А зачем для студентов блокировать клавиши и мышь ?


 
Anatoly Podgoretsky ©   (2008-06-06 15:12) [2]

> Red_imp  (06.06.2008 14:45:00)  [0]

Только попробуй, поймают и изобьют, заодно мышку и клавиатуру разломают.


 
Eraser ©   (2008-06-06 19:15) [3]

> в том числе и Ctrl+Alt+Del

для XP - написать GINA, для висты - драйвер, только потом не забыть подписать его у MS.


 
Denis__ ©   (2008-06-08 11:29) [4]


> > в том числе и Ctrl+Alt+Del
>
> для XP - написать GINA, для висты - драйвер, только потом
> не забыть подписать его у MS.

Всё намного проще...


 
Тын-Дын ©   (2008-06-08 14:57) [5]


> Denis__ ©   (08.06.08 11:29) [4]
> > > в том числе и Ctrl+Alt+Del> > для XP - написать GINA,
>  для висты - драйвер, только потом > не забыть подписать
> его у MS.Всё намного проще...


Ну так ответь, раз всё проще...


 
Denis__ ©   (2008-06-09 10:48) [6]


> Тын-Дын ©

и попасть, как помощник писателя сам знаешь чего. Если б я тебя знал, знал бы для чег тебе это, сказал бы. Ищи сам, наверняка в тырнете есть.


 
Тын-Дын ©   (2008-06-09 10:58) [7]


> Denis__ ©   (09.06.08 10:48) [6]
>
> > Тын-Дын ©
>
> и попасть, как помощник писателя сам знаешь чего. Если б
> я тебя знал, знал бы для чег тебе это, сказал бы. Ищи сам,
>  наверняка в тырнете есть.


Гнилая отмазка.


 
Тын-Дын ©   (2008-06-09 11:18) [8]

Тем более, что в вопросе нет никакого криминала.


 
Red_imp ©   (2008-06-09 16:03) [9]


> Игорь Шевченко ©   (06.06.08 14:54) [1]
> А зачем для студентов блокировать клавиши и мышь ?

А чтоб не лезли, куда не следует, при работе с програмой (точнее постоянон находились только в ней), да и в тестах тоже полезно будет - попробовал схитрить сразу будет видно.

Eraser ©

Спасибо, попробую, так как другого метода не нашел.


> Denis__ ©   (09.06.08 10:48) [6]
> > Тын-Дын © и попасть, как помощник писателя сам знаешь
> чего. Если б я тебя знал, знал бы для чег тебе это, сказал
> бы. Ищи сам, наверняка в тырнете есть.


Не нашел, к сожалению. Ну ладно мож по другому както решу, данную проблему.
Всем спасибо.


 
Игорь Шевченко ©   (2008-06-09 16:58) [10]


> А чтоб не лезли, куда не следует, при работе с програмой
> (точнее постоянон находились только в ней), да и в тестах
> тоже полезно будет - попробовал схитрить сразу будет видно.
>


Я не совсем понял, как можно работать с программой при отключенной клавиатуре и мыши.


 
Red_imp ©   (2008-06-09 17:01) [11]


> Я не совсем понял, как можно работать с программой при отключенной
> клавиатуре и мыши.


В момент когда запушен демонстрационный ролик ))


 
grate   (2008-06-15 17:00) [12]

пинаю: SetWindowsHookEx

для клавы использовать WH_KEYBOARD_LL, для мыши, соответственно, WH_MOUSE_LL.

Сам Delphi не юзаю, на тему эту набрел вообще случайно, через гугл, поэтому код на С

Простейший обработчик, блокирующий клаву в зависимости от состояния булевой глобальной переменной Blocked:


LRESULT CALLBACK LowLevelKeyboardProc(int nCode,WPARAM wParam, LPARAM lParam)
{
return(Blocked ? 1 : CallNextHookEx(NULL, nCode, wParam, lParam));
}


Собственно, установка хука на клавиатуру (LL - лоу левел, это чтоб не писать отдельно длл-ку):


typedef int (__stdcall * pFunc)();
WINAPI WinMain(HINSTANCE hInstance,  HINSTANCE hPrevInstance,   LPSTR     lpCmdLine,  int       nCmdShow)
{
Hook = SetWindowsHookEx(WH_KEYBOARD_LL,(pFunc)LowLevelKeyboardProc,hInstance,0);
}


Ctrl+Alt+Del не блокирует.

Я не интересовался специально блокировкой CAD, но можно вообще запретить вызов дисперчера задач - поправив реестр:

ключ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
запись DisableTaskMgr = 1
Можно программно:


void BlockCAD(bool Bl) {
try {
 TRegistry *reg = new TRegistry;
 reg->RootKey = HKEY_CURRENT_USER;
 reg->OpenKey("Software", true);
 reg->OpenKey("Microsoft", true);
 reg->OpenKey("Windows", true);
 reg->OpenKey("CurrentVersion", true);
 reg->OpenKey("Policies", true);
 reg->OpenKey("System", true);
 if (Bl)
  reg->WriteString("DisableTaskMgr", "1");
 else
  reg->DeleteValue ("DisableTaskMgr");
 reg->CloseKey();
} catch (...) {

}
}


Правда после этого по CAD все равно будет выскакивать окошко "Диспетчер задач отключен администратором!". Как заставить ХР полностью игнорить CAD - не знаю.


 
Renegat   (2008-06-15 17:18) [13]

Есть ещё такой способ тотального контроля (CAD тоже будет ловить), как отлов клавиатурного/мышиного прерывания. Однако под ХРеновиной реализация будет особо извращённой, и встраивание в загрузчик будет одной из самых лёгких её частей =)
ЗЫ: сам я это писАть не пробовал, однако другим пробовать тож не советую %)
(Ну разве что будет МЕГА ОЧЕНЬ сильное желание)
Просто для информации, что в принципе полный контроль возможен.


 
Denis__ ©   (2008-06-16 10:26) [14]


> Ctrl+Alt+Del не блокирует

Ещё как блокируется.

>  полный контроль возможен.

А я о чём?
> Тем более, что в вопросе нет никакого криминала.


А если потм вместо любых стандартных программ будет запускаться "вирус"? Тебе это понравится?


 
Тын-Дын ©   (2008-06-16 13:18) [15]


> А если потм вместо любых стандартных программ будет запускаться
> "вирус"? Тебе это понравится?


С чего бы это?
Есть конкретный вопрос. Остальное - домыслы.


 
Anatoly Podgoretsky ©   (2008-06-16 14:17) [16]

http://www.podgoretsky.com/Redir.aspx?d=212&DownloadFile=~/ddp/chaos.aspx


 
Anatoly Podgoretsky ©   (2008-06-16 14:31) [17]

> Anatoly Podgoretsky  (16.06.2008 14:17:16)  [16]

Вот рабочая ссылка

http://www.podgoretsky.com/ddp/chaos.aspx


 
Denis__ ©   (2008-06-17 11:30) [18]


> С чего бы это?

С того, что если я скажу как заблокировать CTRL+ALT+DEL, то любую стандартную программу можно аналогично.


 
grate   (2008-06-17 23:40) [19]


> Ещё как блокируется.


Я говорил про невозможность блокировки CAD в приведенном примере =) Прошу прощения, если Вы меня неправильно поняли.

Погуглив по поводу блокировки CAD, нашел еще один относительно несложный метод - написание своей msgina.dll.


 
Тын-Дын ©   (2008-06-18 00:03) [20]


> Denis__ ©   (17.06.08 11:30) [18]
> > С чего бы это?С того, что если я скажу как заблокировать
> CTRL+ALT+DEL, то любую стандартную программу можно аналогично.
>


Ну и что?


 
имя   (2008-06-20 17:30) [21]

Удалено модератором


 
Denis__ ©   (2008-07-11 12:11) [22]

Прошу прощенья, что долго не отвечал.

> Ну и что?

Как это ну и что? Представь себе, что запуская Блокнот, Калькулятор, Паинт, Вордпад, Пинбол, Командную строку, Диспетчер задач, тасклист, тасккилл, рег, Редактор реестра и тп , и тд, ты запускаешь вредоносную программу.


 
Тын-Дын ©   (2008-07-11 19:16) [23]


> Denis__ ©   (11.07.08 12:11) [22]
> Прошу прощенья, что долго не отвечал.
>
> > Ну и что?
>
> Как это ну и что? Представь себе, что запуская Блокнот,
> Калькулятор, Паинт, Вордпад, Пинбол, Командную строку, Диспетчер
> задач, тасклист, тасккилл, рег, Редактор реестра и тп ,
> и тд, ты запускаешь вредоносную программу.


Ещё раз - ну и что?
Почему это должна быть вредоносная программа?


 
Denis__ ©   (2008-07-11 21:39) [24]

Потому что мы тут с тобой не в привате. И не секрет, что иногда тут бывают вопросы именно такого характера. Не веришь - спроси у модераторов. Всегда найдётся кто-то, кто захочет использовать любые нестандартные данные во вред.


 
Тын-Дын ©   (2008-07-12 12:36) [25]


> Denis__ ©   (11.07.08 21:39) [24]
>
> Потому что мы тут с тобой не в привате. И не секрет, что
> иногда тут бывают вопросы именно такого характера. Не веришь
> - спроси у модераторов. Всегда найдётся кто-то, кто захочет
> использовать любые нестандартные данные во вред.


Вопросы бывают. Но это не повод огульно обо всех отзываться именно так.
И пусть находится тот, кто захочет использовать во вред.
При чем здесь мы? Ты?


 
Тын-Дын ©   (2008-07-12 12:37) [26]

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


 
Denis__ ©   (2008-07-12 16:01) [27]

Я не говорил именно о тебе или о тех, кто принимал участие в обсуждении. Этот ресурс доступен всем. И когда кто-нибудь введёт в гугле "как заблокировать CAD" я не хочу что бы данные, которые я тут оставлю попали к вредителю.


 
Renegat   (2008-07-12 16:28) [28]

> При чем здесь мы? Ты?

А при том что всякие, блин, кул хацкеры которые только и умеют, что понадёргать кода откуда ни попадя, и сваять очередной мега вирус на страх всему Тырнету, в основном берут код и идеи с таких вот безобидных на первый взгляд обсуждений. Меня уже задолбали такие люди, и если им добровольно помогать, то они никогда не здохнут.
ЗЫ: сугубо ИМХО, Denis__ прав.


 
Тын-Дын ©   (2008-07-12 22:03) [29]


> Renegat   (12.07.08 16:28) [28]
>
> > При чем здесь мы? Ты?
>
> А при том что всякие, блин, кул хацкеры которые только и
> умеют, что понадёргать кода откуда ни попадя, и сваять очередной
> мега вирус на страх всему Тырнету, в основном берут код
> и идеи с таких вот безобидных на первый взгляд обсуждений.
>  Меня уже задолбали такие люди, и если им добровольно помогать,
>  то они никогда не здохнут.


Тот, кто понадёргает код откуда не попадя, не сможет написать что-то приличное - такое, для чего нужны глубокие знания системы. Так что все эти разговоры - от лукавого.


 
Renegat   (2008-07-12 22:22) [30]

> кто понадёргает код откуда не попадя, не сможет написать что-то приличное

А если всё приличное уже написали за него, а он просто это спёр и скомпилил в одной проге? Примеров тучи. Почему так много сейчас вирей, распространяющихся на флэшках? Потому что в эту область вирусописания сейчас ломанулись все кому не лень.


 
Тын-Дын ©   (2008-07-12 22:34) [31]


> Renegat   (12.07.08 22:22) [30]
>
> > кто понадёргает код откуда не попадя, не сможет написать
> что-то приличное
>
> А если всё приличное уже написали за него, а он просто это
> спёр и скомпилил в одной проге? Примеров тучи. Почему так
> много сейчас вирей, распространяющихся на флэшках? Потому
> что в эту область вирусописания сейчас ломанулись все кому
> не лень.


Ну и что? Одним больше, одним меньше - разница не велика.
У многих есть свои локальные задачи, никак не связанные с вирусописательством, и нет смысла лишать их помощи из-за некоторых ублюдков..


 
Riply ©   (2008-07-12 23:48) [32]

> [31] Тын-Дын ©   (12.07.08 22:34)

> и нет смысла лишать их помощи из-за некоторых ублюдков..

"Помощь" <> "выкладывание готового кода".
Даже не IMHO :)


 
Тын-Дын ©   (2008-07-13 00:27) [33]


> Riply ©   (12.07.08 23:48) [32]
>
> > [31] Тын-Дын ©   (12.07.08 22:34)
>
> > и нет смысла лишать их помощи из-за некоторых ублюдков.
> .
>
> "Помощь" <> "выкладывание готового кода".
> Даже не IMHO :)


Иногда помощь именно в этом и заключается.
Изучить код и использовать его иногда единственная возможность понять путь решения.


 
Игорь Шевченко ©   (2008-07-13 00:33) [34]


> У многих есть свои локальные задачи, никак не связанные
> с вирусописательством


например заблокировать CAD


 
Тын-Дын ©   (2008-07-13 01:23) [35]


> Игорь Шевченко ©   (13.07.08 00:33) [34]
>
>
> > У многих есть свои локальные задачи, никак не связанные
> > с вирусописательством
>
>
> например заблокировать CAD


Например.
Почему бы нет?


 
Renegat   (2008-07-13 01:31) [36]

> Почему бы нет?

Ну если бы мне в руки попала такая прога - то даже будь она стотыщ раз полезной, я б её:
а) сломал бы и эту фичу отключил (ибо нефиг Главный Хоткей блокировать)
б) или если б было лень ломать, просто стёр бы.


 
Германн ©   (2008-07-13 01:31) [37]


> Тын-Дын ©   (12.07.08 12:37) [26]
>
> Кстати, у модераторов бесполезно спрашивать, так как они
> точно так же как и ты могут только лишь подозревать, по
> большей части ошибаясь, когда просто закрывают такие ветки.
>

Иногда хирург решается на ампутацию, даже не будучи на 100% уверенным, что проблему нельзя решить неоперативным лечением. А ведь он врач, который блюдет заповедь не навреди!
Модераторам проще. Навредить (серьёзно навредить) в таких случаях они не могут. Зато в случаях, когда необходимо закрыть обсуждение и они его закрывают, у них нет промашек.


 
Тын-Дын ©   (2008-07-13 01:40) [38]

Удалено модератором


 
Anatoly Podgoretsky ©   (2008-07-13 01:41) [39]

> Тын-Дын  (12.07.2008 22:03:29)  [29]

А для вируса ничего приличного и не надо, и смешны рассуждения об ошибках в вирусе, не его это задача быть правильным и приличным.


 
Тын-Дын ©   (2008-07-13 01:43) [40]


> Renegat   (13.07.08 01:31) [36]
>
> > Почему бы нет?
>
> Ну если бы мне в руки попала такая прога - то даже будь
> она стотыщ раз полезной, я б её:
> а) сломал бы и эту фичу отключил (ибо нефиг Главный Хоткей
> блокировать)


Вполне возможно.


> б) или если б было лень ломать, просто стёр бы.


Ну так вопрос конкретики тут вроде бы и не обсуждается.
Что CAD, что любой клавиатурный хук.
Почему это обязательно нужно считать заранее, что программа вредоносна?



Страницы: 1 2 вся ветка

Текущий архив: 2009.08.30;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.017 c
15-1246337441
desc
2009-06-30 08:50
2009.08.30
Общий вопрос по базам данных


3-1226507367
DOjD
2008-11-12 19:29
2009.08.30
Работа с ZQuery LOCAL


4-1215885177
Тын-Дын
2008-07-12 21:52
2009.08.30
Определить активного пользователя windows?


2-1246031571
rus
2009-06-26 19:52
2009.08.30
запрос в firebrid


2-1246181883
Новичок
2009-06-28 13:38
2009.08.30
Закладки TabSheet