Actualiser 7lna.py
This commit is contained in:
19
7lna.py
19
7lna.py
@@ -208,21 +208,17 @@ class Antivirus7LnA(ctk.CTk):
|
|||||||
self.setup_console_tags(self.scan_console)
|
self.setup_console_tags(self.scan_console)
|
||||||
self.scan_console.insert("end", f"{self.get_time_prefix()}[*] Moteur de détection V8 prêt...\n", "info")
|
self.scan_console.insert("end", f"{self.get_time_prefix()}[*] Moteur de détection V8 prêt...\n", "info")
|
||||||
|
|
||||||
# ----- CORRECTION DU ROOTKIT (Mot de passe intégré) -----
|
# ----- CORRECTION DU ROOTKIT (Compatible X11 & Wayland) -----
|
||||||
def run_rootkit_scan(self):
|
def run_rootkit_scan(self):
|
||||||
# Création d'une fenêtre pop-up pour demander le mot de passe sans dépendre du système
|
|
||||||
dialog = ctk.CTkToplevel(self)
|
dialog = ctk.CTkToplevel(self)
|
||||||
dialog.title("Sécurité Administrateur")
|
dialog.title("Sécurité Administrateur")
|
||||||
dialog.geometry("400x220")
|
dialog.geometry("400x230")
|
||||||
dialog.attributes("-topmost", True)
|
|
||||||
dialog.grab_set() # Empêche de cliquer ailleurs
|
|
||||||
|
|
||||||
ctk.CTkLabel(dialog, text="⚠️ Privilèges Requis", font=ctk.CTkFont(size=20, weight="bold"), text_color="#F59E0B").pack(pady=(20, 5))
|
ctk.CTkLabel(dialog, text="⚠️ Privilèges Requis", font=ctk.CTkFont(size=20, weight="bold"), text_color="#F59E0B").pack(pady=(20, 5))
|
||||||
ctk.CTkLabel(dialog, text="L'analyse anti-rootkit nécessite les droits sudo.\nEntrez votre mot de passe session :", justify="center").pack(pady=5)
|
ctk.CTkLabel(dialog, text="L'analyse anti-rootkit nécessite les droits sudo.\nEntrez votre mot de passe session :", justify="center").pack(pady=5)
|
||||||
|
|
||||||
pwd_entry = ctk.CTkEntry(dialog, show="*", width=250)
|
pwd_entry = ctk.CTkEntry(dialog, show="*", width=250)
|
||||||
pwd_entry.pack(pady=10)
|
pwd_entry.pack(pady=10)
|
||||||
pwd_entry.focus()
|
|
||||||
|
|
||||||
def on_submit(event=None):
|
def on_submit(event=None):
|
||||||
pwd = pwd_entry.get()
|
pwd = pwd_entry.get()
|
||||||
@@ -233,15 +229,19 @@ class Antivirus7LnA(ctk.CTk):
|
|||||||
ctk.CTkButton(dialog, text="Lancer l'analyse", command=on_submit, fg_color="#DC2626", hover_color="#991B1B").pack(pady=10)
|
ctk.CTkButton(dialog, text="Lancer l'analyse", command=on_submit, fg_color="#DC2626", hover_color="#991B1B").pack(pady=10)
|
||||||
dialog.bind("<Return>", on_submit)
|
dialog.bind("<Return>", on_submit)
|
||||||
|
|
||||||
|
# Attendre que la fenêtre soit dessinée à l'écran (Universel pour Linux)
|
||||||
|
dialog.wait_visibility()
|
||||||
|
dialog.attributes("-topmost", True)
|
||||||
|
dialog.grab_set()
|
||||||
|
pwd_entry.focus_set()
|
||||||
|
|
||||||
def _exec_rootkit(self, pwd):
|
def _exec_rootkit(self, pwd):
|
||||||
self.scan_console.insert("end", f"\n{self.get_time_prefix()}[*] Lancement de rkhunter (cela peut prendre du temps)...\n", "info")
|
self.scan_console.insert("end", f"\n{self.get_time_prefix()}[*] Lancement de rkhunter (cela peut prendre du temps)...\n", "info")
|
||||||
self.scan_progress.start()
|
self.scan_progress.start()
|
||||||
try:
|
try:
|
||||||
# -S permet de passer le mot de passe via l'entrée standard
|
|
||||||
cmd = ['sudo', '-S', 'rkhunter', '-c', '--sk', '--report-warnings-only']
|
cmd = ['sudo', '-S', 'rkhunter', '-c', '--sk', '--report-warnings-only']
|
||||||
process = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True, bufsize=1)
|
process = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True, bufsize=1)
|
||||||
|
|
||||||
# Envoi du mot de passe
|
|
||||||
process.stdin.write(pwd + '\n')
|
process.stdin.write(pwd + '\n')
|
||||||
process.stdin.flush()
|
process.stdin.flush()
|
||||||
|
|
||||||
@@ -421,7 +421,7 @@ class Antivirus7LnA(ctk.CTk):
|
|||||||
messagebox.showinfo("Succès", "Fichier détruit.")
|
messagebox.showinfo("Succès", "Fichier détruit.")
|
||||||
except: pass
|
except: pass
|
||||||
|
|
||||||
# ----- CORRECTION PLANIFICATION (Sélecteurs d'Heure) -----
|
# ----- PLANIFICATION -----
|
||||||
def init_schedule_view(self):
|
def init_schedule_view(self):
|
||||||
frame = ctk.CTkFrame(self, fg_color="transparent")
|
frame = ctk.CTkFrame(self, fg_color="transparent")
|
||||||
self.views["schedule"] = frame
|
self.views["schedule"] = frame
|
||||||
@@ -440,7 +440,6 @@ class Antivirus7LnA(ctk.CTk):
|
|||||||
self.cron_h_var = ctk.StringVar(value="12")
|
self.cron_h_var = ctk.StringVar(value="12")
|
||||||
self.cron_m_var = ctk.StringVar(value="00")
|
self.cron_m_var = ctk.StringVar(value="00")
|
||||||
|
|
||||||
# Menus déroulants élégants pour le choix de l'heure
|
|
||||||
ctk.CTkComboBox(time_frame, values=[f"{i:02d}" for i in range(24)], variable=self.cron_h_var, width=70).pack(side="left", padx=5)
|
ctk.CTkComboBox(time_frame, values=[f"{i:02d}" for i in range(24)], variable=self.cron_h_var, width=70).pack(side="left", padx=5)
|
||||||
ctk.CTkLabel(time_frame, text="h").pack(side="left")
|
ctk.CTkLabel(time_frame, text="h").pack(side="left")
|
||||||
ctk.CTkComboBox(time_frame, values=["00", "15", "30", "45"], variable=self.cron_m_var, width=70).pack(side="left", padx=5)
|
ctk.CTkComboBox(time_frame, values=["00", "15", "30", "45"], variable=self.cron_m_var, width=70).pack(side="left", padx=5)
|
||||||
|
|||||||
Reference in New Issue
Block a user