Автор оригинала: Pankaj Kumar.
Реализация Keylogger в Python
Привет всем! В сегодняшнем посте мы будем делать что-то захватывающее – создание кейлоггера в Python!
Вы когда-нибудь хотели отслеживать свою клавиатуру и посмотрите на историю вашей печати и анализировать, как вы печатаете? Ну, начальный шаг состоит в том, чтобы построить инструмент мониторинга клавиатуры – или Кейлоггер !
Хотя вы можете очень хорошо понять, что это можно использовать в злых путях, мы предполагаем, что вы тот, кто контролирует вашу собственную машину!
Давайте начнем!
Установка необходимых модулей
Первый шаг – убедиться, что у вас есть правильные инструменты с вами! Наряду с Python 3 вы также должны установить Pyynput модуль , читать вход с вашей клавиатуры. Давайте использовать PIP Установка команда Отказ
pip install pynput
Хотя мы могли бы управлять клавиатурой тоже, мы собираемся просто мониторировать и регистрировать, что набрано на это!
Этот модуль просто использует резервный двигатель в зависимости от вашей операционной системы для мониторинга клавиатуры. Например, если вы используете Linux, у вас может быть xorg
сервер, который вы бы использовали в качестве бэкэнда.
Этот модуль взаимодействует с резервным двигателем, чтобы получить вход с клавиатуры.
Трубопровод показан на приведенной ниже диаграмме:
В результате этот модуль будет работать в разных операционных системах, поскольку она делает всю работу по уходу за уходом за рекордными звонками!
Мы разработаем следующий кейлоггер в Python:
- Мы создаем основной цикл, которая просто ждет нажатия клавиши.
- Как только слушатель обнаружит ключевую пресс, мы распечатаем его на консоли.
Давайте начнем написать код сейчас.
Внедрить кейлоггер в Python
Мы напишем Keylogger в Python, который использует pynput.keyboard
класс.
Давайте сделаем необходимый импорт в первую очередь
import pynput.keyboard as Keyboard
Теперь мы будем слушать клавиатуру, мы отслеживаем два вида событий:
- Ключевые прессы – всякий раз, когда клавиша нажата
- Основные выпуски – всякий раз, когда выпущен ключ
Теперь Pyynput
уже делает нашу жизнь очень легко. Нам просто нужно определить две функции, которые обрабатывают логику при нажатии клавиши и выпущены.
Нам просто нужно определить эти функции, и вызовите их как аргументы на наш слушатель клавиатуры, используя Pyynput
Отказ
Формат создания слушателя выглядит следующим образом:
with Keyboard.Listener(on_press=on_press, on_release=on_release) as listener: listener.join()
Это только две строки кода! Здесь имеется два функции обратного вызова on_press ()
и on_release ()
Это позвонится соответственно.
Вторая строка просто ждет, чтобы нить слушателя закончить выполнение, используя Threading.join ()
метод.
Давайте теперь определим эти две функции тоже.
def on_press(key): # Callback function whenever a key is pressed try: print(f'Key {key.char} pressed!') except AttributeError: print(f'Special Key {key} pressed!') def on_release(key): print(f'Key {key} released') if key == Keyboard.Key.esc: # Stop the listener return False
Здесь мы впервые распечатаем, любой ключ нажата/выпущена с использованием Key.Car
Отказ
Если нажата специальный ключ, мы должны распечатать ключ
вместо этого, как Key.Car
не является действительным значением ASCII.
Точно так же мы делаем то же самое для on_release (ключ)
до тех пор, пока нажата клавиша
Мы просто возвращаем Ложь
и это будет Автоматически останавливаться Слушатель и закончите нашу программу!
Вот полная программа до сих пор:
import pynput.keyboard as Keyboard def on_press(key): # Callback function whenever a key is pressed try: print(f'Key {key.char} pressed!') except AttributeError: print(f'Special Key {key} pressed!') def on_release(key): print(f'Key {key} released') if key == Keyboard.Key.esc: # Stop the listener return False with Keyboard.Listener(on_press=on_press, on_release=on_release) as listener: listener.join()
Образец вывода
Key q pressed! Key 'q' released Key w pressed! Key 'w' released Special Key Key.shift pressed! Key A pressed! Key 'A' released Key Key.shift released Key a pressed! Key 'a' released Special Key Key.shift pressed! Key A pressed! Key 'A' released Key Key.shift released Special Key Key.shift pressed! Key @ pressed! Key '@' released Key Key.shift released Special Key Key.shift pressed! Key $ pressed! Key '$' released Key Key.shift released Special Key Key.shift pressed! Key ) pressed! Key ')' released Key Key.shift released Special Key Key.shift pressed! Key > pressed! Key '>' released Key Key.shift released Key . pressed! Key '.' released Special Key Key.esc pressed! Key Key.esc released
Как видите, это может успешно захватить и распечатать вывод клавиатуры, даже со специальными клавишами, такими как
Заключение
Надеюсь, вы смогли работать в KeyLogger легко сейчас! Вы можете построить это и реализовать больше функциональности для вашего приложения KeyLogger. До скорого!
Рекомендации
- Модуль Pyynput Документация