Защита от клавиатурных шпионов, лучшие статьи, новые учебники, рефераты, популярные обзоры, книги.

| Главная | Программы | Статьи | Форум | Онлайн Photoshop | О сайте | Регистрация
Bookmark and
Share
SOFT ДЛЯ PC

ВЫБОР РЕДАКЦИИ
Скачать WinRAR бесплатно
Архиватор

Скачать Winamp бесплатно
Аудио-плеер

Скачать Opera 12.00 Rus бесплатно
Веб-браузер

Скачать Mozilla Firefox бесплатно
Веб-браузер

Скачать The Bat! бесплатно
Почтовая программа

Скачать Download Master бесплатно
Менеджер закачек

Скачать Total Commander бесплатно
Файловый менеджер

Скачать Photoshop CS4 бесплатно
Графический пакет

Скачать CorelDRAW X6 бесплатно
Графический пакет

Скачать FineReader 10 бесплатно
Распознаватель текста

Скачать K-Lite Codec Pack бесплатно
Пакет кодеков

Скачать Alcohol 120% бесплатно
Эмулятор CD/DVD

Скачать DAEMON Tools Pro бесплатно
Эмулятор CD/DVD

Скачать Nero 9 бесплатно
Запись CD/DVD

ОПРОС
Нужен ли сайту форум?
Всего ответов: 44

СТАТИСТИКА
Анализ посещаемости сайта

Онлайн всего: 4
Гостей: 2
Пользователей: 2
admin, In-Disguise-VPN

Главная » Статьи » Разное

Защита от клавиатурных шпионов

Подавляющее большинство клавиатурных шпионов использует 
для мониторинга нажатий клавиш hook-процедуру WH_KEYBOARD. 
Чтобы клавиатурное сообщение не попало в установленную ловушку, 
достаточно перехватить вызов этой hook-процедуры и отменить его. 
Это можно сделать, установив свой hook - WH_DEBUG. Процедура 
этого hook'а будет получать управление при вызове других 
hook-процедур. 
Таким образом, мы устанавливаем hook для других hook'ов, получая, 
в результате, достаточно мощное средство. 

Приступим к написанию. Создайте новый DLL-проект; VCL можно отключить.
Код процедуры в DLL: 

extern "C" __export LRESULT CALLBACK
DebugProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode == HC_ACTION)
{
if(wParam == WH_KEYBOARD)
{
if(MessageBox(NULL, "Do you want to pass keyboard message to WH_KEYBOARD 
hook-procedure?",
"Confirmation",
MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2 | 
MB_TOPMOST | MB_SYSTEMMODAL) == IDNO)
return 1;
}
}

return CallNextHookEx(NULL, nCode, wParam, lParam);
}



Мы проверяем тип вызываемой ловушки на соответствие WH_KEYBOARD, 
и, если равенство верное, запрашиваем подтверждение на вызов этой процедуры. 
Если в пропуске отказано, возвращаем ненулевое значение. 

Код приложение, ответственное за установку и снятие этой ловушки.

// Глобальные переменные:
HMODULE hDLL = NULL;
HHOOK hHook = NULL;

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(hHook != NULL)
{
ShowMessage("The Hook has already been set.");
return;
}

hDLL = LoadLibrary("hook.dll");
if(hDLL == NULL)
{
ShowMessage("Can't load hook.dll. Reason: " + SysErrorMessage(GetLastError()));
return;
}

typedef LRESULT __import (CALLBACK *fnType)(int, WPARAM, LPARAM);
fnType DebugProc = (fnType)GetProcAddress(hDLL, "DebugProc");

if(DebugProc == NULL)
{
FreeLibrary(hDLL);
hDLL = NULL;
ShowMessage("Can't find "DebugProc" in hook.dll.");
return;
}

hHook = SetWindowsHookEx(WH_DEBUG, (HOOKPROC)DebugProc, hDLL, 0);
if(hHook == NULL)
{
FreeLibrary(hDLL);
hDLL = NULL;
ShowMessage("Can't set WH_DEBUG hook. Reason: " + SysErrorMessage(GetLastError()));
return;
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
if(hDLL)
FreeLibrary(hDLL);
if(hHook)
{
UnhookWindowsHookEx(hHook);
hHook = NULL;
}
}

Не забудьте переименовать DLL (или изменить её имя в коде).



Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
ВСЕ ДЛЯ PHOTOSHOP

Уроки Photoshop

Дополнения для Photoshop


ПРОФИЛЬ
Вт
22.05.2012
10:17


Логин:
Пароль:

XAK-SOFT

RSS

Кликните по иконке, чтобы получать новые материалы по RSS каналу


вверх Рекомендуем просматривать
сайт с помощью
Opera

при разрешении 1280x1024.
Скачать бесплатные программы | Скачать программы на русском языке | Программы для компьютера
Скачать photoshop бесплатно | Уроки Photoshop
Copyright 2010 - 2012 © All rights reserved.
При копировании материалов с нашего сайта , ссылка на наш сайт обязателна!

 карта форума Создать сайт бесплатно  карта сайта
Ваш браузер :
 вверх