Форум: "Основная";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
ВнизПерехват клавиатуры Найти похожие ветки
← →
Dmitry_177 (2007-05-28 20:11) [0]Вот интересно.. перехват клавиатуры можно осуществить хуком сообщений WH_KEYBOARD или WH_KEYBOARD_LL..
А если нужно перехватывать клавиатуру путем перехвата API функции? Какую функцию следует перехватывать?
← →
JanMihail © (2007-05-28 20:27) [1]RegisteredHotKey()
UnregisteredHotKey()
← →
Dmitry_177 (2007-05-28 21:42) [2]
> RegisteredHotKey()
> UnregisteredHotKey()
Ведь это же для "горячих" кнопок.. а мне вообще нужно для всех, пусть хоть в блокнопе пользователь пишет текст.. а мне нужен перехват.. так вот есть ли какая-нибудь API функция которую можно перехватывать?
← →
Сергей М. © (2007-05-29 09:54) [3]
> Dmitry_177 (28.05.07 21:42) [2]
Установка хука по сути и есть перехват.
Чем он тебя не устраивает ?
← →
Dmitry_177 (2007-05-30 00:48) [4]Сергей М. я имел ввиду в режиме Ring0
← →
Германн © (2007-05-30 00:51) [5]
> Dmitry_177 (30.05.07 00:48) [4]
>
> Сергей М. я имел ввиду в режиме Ring0
>
А ты знаешь хоть одну API-функцию, которая способна там работать?
← →
Dmitry_177 (2007-05-30 02:48) [6]Нет не знаю... =)
Но перехватывать можно.. может NativeAPI есть какая-нибудь которая вызывается каждый раз при нажатии на клавиатуре?
← →
Германн © (2007-05-30 02:54) [7]
> Dmitry_177 (30.05.07 02:48) [6]
>
> Нет не знаю... =)
>
> Но перехватывать можно.. может NativeAPI есть какая-нибудь
> которая вызывается каждый раз при нажатии на клавиатуре?
>
Может опишешь простым языком - что тебе нужно?
← →
Dmitry_177 (2007-05-30 02:59) [8]мне нужно осуществить перехват нажатий клавишь в Ring0, вот я и спросил есть ли какая-нибудь API или NativeAPI функция, которую нужно для этого перехватывать?
← →
Германн © (2007-05-30 03:06) [9]
> Dmitry_177 (30.05.07 02:59) [8]
>
> мне нужно осуществить перехват нажатий клавишь в Ring0,
> вот я и спросил есть ли какая-нибудь API или NativeAPI функция,
> которую нужно для этого перехватывать?
>
В нулевом кольце, имхо, такое можно реализовать только драйвером. И API-функции тут, имхо, "идут лесом".
А свою задачу ты так и не описал. Зачем тебе нужна работа именно в Ring0?
← →
Сергей М. © (2007-05-30 08:08) [10]
> мне нужно осуществить перехват нажатий клавишь в Ring0
Аргументы-то какие за Ring0 ?
← →
Dmitry_177 (2007-05-30 12:42) [11]Естественно нужно писать драйвер.. Задача: кеулоггер в Ring0
← →
Сергей М. © (2007-05-30 13:28) [12]
> Dmitry_177 (30.05.07 12:42) [11]
> кеулоггер в Ring0
Вот же тебя блажь посетила)
Да почему обязательно в режиме ядра ? Чем же пользовательский режим не устраивает ? Ведь WH_KEYBOARD_LL как раз и предназначен для мониторинга "клаводвижений" в Ring3 !
Что такого экстраординарного ты ожидаешь увидеть в Ring0, чего нельзя увидеть в Ring3 ?
← →
Anatoly Podgoretsky © (2007-05-30 13:54) [13]> Сергей М. (30.05.2007 13:28:12) [12]
Он расчитывает, что его не увидят
← →
Dmitry_177 (2007-05-30 14:39) [14]
> Он расчитывает, что его не увидят
и это тоже =)
← →
Сергей М. © (2007-05-30 14:58) [15]
> Dmitry_177 (30.05.07 14:39) [14]
>
>
Бородатый анекдот про неуловимого Джо, надеюсь, знаешь ?)
← →
Dmitry_177 (2007-05-30 15:07) [16]Если я спросил значит мне это интересно.. И зачем отговаривать меня это делать.. Неужели никто не знает как перехватывать клавиатуру в Ring0?
← →
Rouse_ © (2007-05-30 15:11) [17]
> Германн © (30.05.07 03:06) [9]
> В нулевом кольце, имхо, такое можно реализовать только драйвером.
> И API-функции тут, имхо, "идут лесом".
Т.е. RtlInitUnicodeString() уже перестало быть апи?
← →
Германн © (2007-05-30 15:14) [18]
> Т.е. RtlInitUnicodeString() уже перестало быть апи?
Значит мой опиньен слишком хамблистый :)
← →
Сергей М. © (2007-05-30 15:14) [19]
> Dmitry_177 (30.05.07 15:07) [16]
> Если я спросил значит мне это интересно
Ну раз тебе интересно, то иди на wasm.ru - там найдешь то что ищешь.
← →
oxffff © (2007-05-30 15:28) [20]
> Dmitry_177 (30.05.07 15:07) [16]
> Если я спросил значит мне это интересно.. И зачем отговаривать
> меня это делать.. Неужели никто не знает как перехватывать
> клавиатуру в Ring0?
Открой дружок DDK и почитай про драйвера для клав и мышь.
← →
oxffff © (2007-05-30 15:30) [21]Смотри в сторону HID
← →
Rouse_ © (2007-05-30 15:42) [22]
> Неужели никто не знает как перехватывать клавиатуру в Ring0?
Назначить обработчик на IRP_MJ_INTERNAL_DEVICE_CONTROL. в нем по приходу IOCTL_INTERNAL_KEYBOARD_CONNECT в IRP стеке придет структура CONNECT_DATA в (Parameters.DeviceIoControl.Type3InputBuffer), в ней переназначаешь ClassService на свой KeyboardClassServiceCallback видаVOID KeyboardClassServiceCallback (
.
IN PDEVICE_OBJECT DeviceObject,
IN PKEYBOARD_INPUT_DATA InputDataStart,
IN PKEYBOARD_INPUT_DATA InputDataEnd,
IN OUT PULONG InputDataConsumed );
После чего к тебе пойдет IOCTL_INTERNAL_I8042_HOOK_KEYBOARD. Теперь в Type3InputBuffer будет идти структура INTERNAL_I8042_HOOK_KEYBOARD.
Тебе нужно переопределить контекст устройства на свой и заменить InitializationRoutine (которе будет отвечать за инициализацию - что не обязательно, но вдруг тебе понадобится создавать выделять допбуффера или т.п.) и непосредственно IsrRoutine в который будут приходить данные.
В DDK идет пример простого клавиатурного фильтра.
← →
oxffff © (2007-05-30 15:47) [23]To Rouse_ ©
Следующий вопрос будет, что такое IRP пакет, IRP стек, ISR, IRQL, Spinlock и т.д.
← →
Rouse_ © (2007-05-30 15:50) [24]Следующий ответ будет отправкой в район DDK :)
← →
oxffff © (2007-05-30 15:51) [25]Открывай DDK и Соломона,Руссиновича. Там есть все.
Или Oney, Walter Programming the Microsoft Windows Driver Model
← →
Dmitry_177 (2007-05-30 18:19) [26]
> Назначить обработчик на IRP_MJ_INTERNAL_DEVICE_CONTROL.
Я так подумал.. может лучше IRP_MJ_READ и не забыть про IoSetCompletionRoutine?
← →
Dmitry_177 (2007-05-30 19:42) [27]Или еще лучше, сделать перехват PeekMessage и GetMessage, а там смотреть WM_KEYDOWN =)
← →
Rouse_ © (2007-05-30 19:53) [28]
> IRP_MJ_READ и не забыть про IoSetCompletionRoutine?
какие еще умные слова ты знаешь?:)
← →
Dmitry_177 (2007-05-30 20:22) [29]А что насчет этого?
> Или еще лучше, сделать перехват PeekMessage и GetMessage,
> а там смотреть WM_KEYDOWN?
← →
Rouse_ © (2007-05-30 21:21) [30]
> Dmitry_177 (30.05.07 20:22) [29]
> А что насчет этого?
WH_KEYBOARD_LL даст тебе то-же...
← →
имя (2007-06-12 16:51) [31]Удалено модератором
← →
имя (2007-06-12 16:52) [32]Удалено модератором
← →
имя (2007-06-12 16:52) [33]Удалено модератором
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.044 c