Рубрики
Без рубрики

Реализация Keylogger в Python

Привет всем! В сегодняшнем посте мы будем делать что-то захватывающее – создание кейлоггера в Python!

Автор оригинала: 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. До скорого!

Рекомендации