Кроссплатформенный кейлоггер
Я ищу способы наблюдать за событиями мыши и клавиатуры в Windows, Linux и Mac из Python.
Мое приложение является трекером времени. Я не смотрю на событие, я просто записываю время, когда это происходит. Если в течение определенного времени нет событий, скажем, 10 минут, я предполагаю, что пользователь ушел и остановил текущий проект.
Когда пользователь возвращается (события приходят снова), я жду немного (так что это не будет вызвано командой уборщиков или вашими домашними животными или землетрясением). Если события продолжаются в течение более длительного периода времени, я предполагаю, что пользователь вернулся, и я выскакиваю небольшое неактивное окно, в котором он может выбрать добавление временного интервала для "перерыва", текущего проекта (встречи и т. Д.) Или другой проект.
Я решил кейлоггер для Windows, используя pyHook.
В Linux я нашел решение, но мне оно не нравится: я могу наблюдать за всеми узлами устройства в /etc/input и обновлять временную метку где-то в /var или /tmp каждый раз, когда вижу событие. Есть два недостатка: 1. Я не могу сказать, происходит ли событие от пользователя, который запускает таймер и 2. Эта маленькая программа должна быть запущена от имени пользователя root (не очень хорошо).
На Mac я понятия не имею, пока.
Вопросы:
Есть ли лучший способ узнать, создает ли пользователь события, чем смотреть устройства событий в Linux?
Любые указатели, как это сделать на Mac?
2 ответа
Есть пара приложений с открытым исходным кодом, которые могут дать вам несколько указателей:
- PyKeylogger является кейлоггер Python для Windows и Linux
- logKext - кейлоггер с ++ для Ma c
Есть отличная статья о написании кейлоггеров ядра Linux
http://www.phrack.com/issues.html?issue=59&id=14
Если вы пытаетесь запустить honeypot, обязательно попробуйте Себек:
https://projects.honeynet.org/sebek/
Sebek - это инструмент для сбора данных, предназначенный для захвата действий злоумышленника на honeypot, при котором злоумышленник (надеюсь) не знает об этом. Он состоит из двух компонентов. Первый - это клиент, который работает на honeypots, его целью является захват всех действий злоумышленников (нажатие клавиш, загрузка файлов, пароли), а затем скрытая отправка данных на сервер. Второй компонент - это сервер, который собирает данные с honeypots. Сервер обычно работает на шлюзе Honeywall, но также может работать независимо. Для получения дополнительной информации о Себеке, пожалуйста, смотрите http://www.honeynet.org/tools/sebek
Но, если вы предпочитаете следовать сценарию детского маршрута / не учиться, попробуйте следующие приложения:
LINUX
http://sourceforge.net/projects/lkl/
WINDOWS
http://www.rohos.com/kid-logger/
http://code.google.com/p/freelogger/
СОВЕТ: Вам лучше писать свои собственные в целях обучения и получения прибыли.