![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Curve |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 5.1.2004 Репутация: нет Всего: 1 |
Задался тут на досуге задачей написать антикейлоггер... Почитал стаью, про то, по какому ринципу они работают. Одни берут виртуально нажимают клавиши на клаве и мониторят обращения к файлам, этот способ я сразу отмёл, т.к мне он показался нерациональным. Другие позволяют блокировать другим приложениям хуки на клаву, вот это уже интереснее.
Не знал с чего начать, полез в хелп, раздел SetWindowsHookEx. Смотрим... Видим "The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain.". Переводим - "функция SetWindowsHookEx ставит определённую (объявленную?) в приложении (привет всем из темы "Хуки не из DLL" ;)) хук-процедуру в очередь хуков". Понятно... Смотрим виды хуков... WH_JOURNALRECORD, WH_CBT - не интересно... проходили уже... WH_DEBUG - о, по описанию то что надо! (Installs a hook procedure useful for debugging other hook procedures - устанавливает хук-процедуру полезную при отладке остальных хук-процедур). Ха! Сейчас будем отлаживать ;) Пишем код, который подходит под требования справки:
По идее в dbghookin4 должна содержаться инфа о приложении вызвавшем хук... Запускаем... Ааа... WTF? Упали все приложения, использующие хуки! (бай бай пунто, МихаДиалер, експлорер и все все все). Хм... Ну так тоже можно защититься от дебаггеров ;) Но всё же хочется не этого. Хм... Шевелим мозгой. Мозга выдаёт решение: надо поднять свои привелегии до дебаггера! Переписываем FormCreate:
Запускаем... Эх... Не повторяйте моих ошибок - Дэльфи не может отладить процесс, имеющий привелегии дебаггера. Лана, запускаем exe-шник... Получили строки: Первые две: Code 0 wParam 10 lParam 1244004 Code 0 wParam 10 lParam 1244052 Остальное флуд: Code 0 wParam 7 lParam 1244828 wParam = 10 => wParam = WH_SHELL wParam = 7 => wParam = WH_MOUSE Упали все app, инсталлирующие хуки.... Упал эксплорер... Так, смотрим значение HC_ACTION. HC_ACTION = 0. Code = 0 => Code = HC_ACTION. Эх..... Что не так? Меня, например, в хелпе смутила строка "If nCode is HC_ACTION, the hook procedure must process the message." Process - обработать. Хм... Есть предложения? Может, я в чём-то не прав? |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |