Здравствуйте, ksd, Вы писали:
ksd>сабж. архитектура в общих словах. всегда можно конкретно, конечно. если что, инжектор своего кода в чужие процессы есть.
Здравствуйте, CEMb, Вы писали:
CEM>Здравствуйте, ksd, Вы писали:
ksd>>сабж. архитектура в общих словах. всегда можно конкретно, конечно. если что, инжектор своего кода в чужие процессы есть.
CEM>SetWindowsHookEx, WH_KEYBOARD_LL теоретическая статья более подробна
интересно мнение практиков.
Здравствуйте, ksd, Вы писали:
ksd>сабж. архитектура в общих словах. всегда можно конкретно, конечно. если что, инжектор своего кода в чужие процессы есть.
В приличном обществе такие вопросы не задают. Ну или не отвечают.
Re: кто может и желает, поделитесь знанием, как делать keylogger
Здравствуйте, ksd, Вы писали:
ksd>сабж. архитектура в общих словах. всегда можно конкретно, конечно. если что, инжектор своего кода в чужие процессы есть.
Не обязательно устанавливать хук. Можно просто опрашивать кнопки с помощью средств, предоставляемых операционной системой
Re[2]: кто может и желает, поделитесь знанием, как делать keylogger
Здравствуйте, bc_kaya, Вы писали:
ksd>>сабж. архитектура в общих словах. всегда можно конкретно, конечно. если что, инжектор своего кода в чужие процессы есть.
_>Не обязательно устанавливать хук. Можно просто опрашивать кнопки с помощью средств, предоставляемых операционной системой
Это как? В смысле, какой pipeline этого процесса? По таймеру? Асинхронно?
Здравствуйте, ksd, Вы писали:
ksd>если что, инжектор своего кода в чужие процессы есть.
Это лишнее. Весь реальный ввод проходит в UM через игольное ушко csrss.
Остаются только всякие экранные клавиатуры. Которые, скорее всего, делают SendInput.
Или вообще без сообщений обходятся, если внутрипроцессные — такие не перехватишь в общем виде.
kalsarikännit
Re[4]: кто может и желает, поделитесь знанием, как делать keylogger
Здравствуйте, IID, Вы писали:
CEM>>Это как? В смысле, какой pipeline этого процесса? По таймеру? Асинхронно?
IID>Асинхронно, GetAsyncKeyState.
IID>Ещё можно через DirectX: IDirectInputDevice::GetDeviceState.
Но это же надо делать по таймеру?
А! И, самое главное для кейлоггера — как определить порядок нажатия кнопок?
А так да, самый нормальный вариант, видимо, драйвер. Но его надо подписывать.
Re[5]: кто может и желает, поделитесь знанием, как делать keylogger
Здравствуйте, CEMb, Вы писали:
CEM>Но это же надо делать по таймеру?
Ты имеешь в виду оконный таймер ? Зачем ? Создай отдельный тред и жди на несигнальном обьекте выхода. Например 10ms.
CEM>А! И, самое главное для кейлоггера — как определить порядок нажатия кнопок?
Не понимаю вопрос. Ты получаешь слепок состояния клавиатуры N раз в секунду. Порядок из него получается естественным образом.
CEM>А так да, самый нормальный вариант, видимо, драйвер. Но его надо подписывать.
Нет, это плохой вариант. Драйвер не знает кому уйдёт клавиатурный ввод. А с экранными клавиатурами вообще беда-беда.
kalsarikännit
Re[6]: кто может и желает, поделитесь знанием, как делать keylogger
Здравствуйте, CEMb, Вы писали:
IID>>[...]жди на несигнальном обьекте выхода.
CEM>О, можно с этого места подробнее?
Ты серъёзно ?
Manual Reset Event как Stop Detector + WaitFor[Single/Multiple]Object с таймаутом.
Проверяем результат выхода.
Если засигналилось событие — сворачиваем работу потока. Иначе — выполняем действие.
На это же событие вешаем ожидание и в других подобных рабочих потоках. Просто и удобно.
kalsarikännit
Re: кто может и желает, поделитесь знанием, как делать keylogger
Здравствуйте, ksd, Вы писали:
ksd>сабж. архитектура в общих словах. всегда можно конкретно, конечно. если что, инжектор своего кода в чужие процессы есть.
Здравствуйте, IID, Вы писали:
CEM>>О, можно с этого места подробнее?
IID>Ты серъёзно ?
да IID>Manual Reset Event как Stop Detector + WaitFor[Single/Multiple]Object с таймаутом.
что такое "Manual Reset Event как Stop Detector"?