Кроссплатформенный кейлоггер

Я ищу способы наблюдать за событиями мыши и клавиатуры в Windows, Linux и Mac из Python.

Мое приложение является трекером времени. Я не смотрю на событие, я просто записываю время, когда это происходит. Если в течение определенного времени нет событий, скажем, 10 минут, я предполагаю, что пользователь ушел и остановил текущий проект.

Когда пользователь возвращается (события приходят снова), я жду немного (так что это не будет вызвано командой уборщиков или вашими домашними животными или землетрясением). Если события продолжаются в течение более длительного периода времени, я предполагаю, что пользователь вернулся, и я выскакиваю небольшое неактивное окно, в котором он может выбрать добавление временного интервала для "перерыва", текущего проекта (встречи и т. Д.) Или другой проект.

Я решил кейлоггер для Windows, используя pyHook.

В Linux я нашел решение, но мне оно не нравится: я могу наблюдать за всеми узлами устройства в /etc/input и обновлять временную метку где-то в /var или /tmp каждый раз, когда вижу событие. Есть два недостатка: 1. Я не могу сказать, происходит ли событие от пользователя, который запускает таймер и 2. Эта маленькая программа должна быть запущена от имени пользователя root (не очень хорошо).

На Mac я понятия не имею, пока.

Вопросы:

  1. Есть ли лучший способ узнать, создает ли пользователь события, чем смотреть устройства событий в Linux?

  2. Любые указатели, как это сделать на 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/


СОВЕТ: Вам лучше писать свои собственные в целях обучения и получения прибыли.

Другие вопросы по тегам