Adding_Final_Marged
This commit is contained in:
parent
f28f3cefb8
commit
0fbae04a94
490
Final_Marged.py
490
Final_Marged.py
@ -28,6 +28,41 @@ from sklearn.preprocessing import StandardScaler
|
||||
import sklearn.ensemble._forest
|
||||
from threading import Thread, Event
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#hardware check
|
||||
# Function to run device check before showing the wizard window
|
||||
def device_check():
|
||||
try:
|
||||
subprocess.run(['python3', 'intaller.py'], check=True)
|
||||
return True
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"Error running device check script: {e}")
|
||||
return False
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Global variable for thread control
|
||||
stop_event = Event()
|
||||
value = False
|
||||
@ -47,12 +82,18 @@ important_features = [
|
||||
]
|
||||
|
||||
# Drop features you don't need based on what you used in training
|
||||
drop_features = [
|
||||
'src', 'dst', 'dt', 'dur', 'pktrate', 'pktperflow',
|
||||
'Protocol_HTTP', 'Protocol_HTTPS', 'Protocol_SSH',
|
||||
'Protocol_DHCP', 'Protocol_FTP', 'Protocol_SMTP',
|
||||
'Protocol_POP3', 'Protocol_IMAP', 'Protocol_DNS'
|
||||
]
|
||||
# Drop features you don't need based on what you used in training
|
||||
drop_features = ['src', 'dst', 'dt', 'dur', 'pktrate', 'pktperflow',
|
||||
|
||||
'Protocol_HTTP',
|
||||
'Protocol_HTTPS',
|
||||
'Protocol_SSH',
|
||||
'Protocol_DHCP',
|
||||
'Protocol_FTP',
|
||||
'Protocol_SMTP',
|
||||
'Protocol_POP3',
|
||||
'Protocol_IMAP',
|
||||
'Protocol_DNS']
|
||||
|
||||
# Automatically detect active network interface
|
||||
def get_active_interface():
|
||||
@ -153,7 +194,7 @@ def make_predictions(X_test, X):
|
||||
for row in transposed_predictions:
|
||||
row_sum = sum(row)
|
||||
avg = row_sum / 5
|
||||
X['probability'][i] = avg
|
||||
X.loc[i, 'probability'] = avg
|
||||
i += 1
|
||||
|
||||
with open('predictions.csv', mode='w', newline='') as file:
|
||||
@ -167,44 +208,66 @@ def make_predictions(X_test, X):
|
||||
print("could not connect to server")
|
||||
|
||||
def capture_packets(interface=None):
|
||||
|
||||
try:
|
||||
subprocess.check_call(['sudo', 'apt', 'install', '-y', 'tshark'])
|
||||
print("tshark installed successfully.")
|
||||
except subprocess.CalledProcessError:
|
||||
print("Failed to install tshark. Please install it manually.")
|
||||
|
||||
if interface is None:
|
||||
interface = get_active_interface()
|
||||
|
||||
capture = pyshark.LiveCapture(interface=interface, tshark_path='/usr/bin/tshark')
|
||||
|
||||
|
||||
|
||||
try:
|
||||
# print("here")
|
||||
# capture.sniff(timeout=60)
|
||||
while value:
|
||||
# print(value)
|
||||
packets_list = []
|
||||
if stop_event.is_set():
|
||||
break
|
||||
# print("c")
|
||||
count = 0
|
||||
# print(packets_list)
|
||||
for packet in capture:
|
||||
if count == 15:
|
||||
break
|
||||
# print("Packet", packet)
|
||||
|
||||
# if(count == 15):
|
||||
# break
|
||||
# print(f"Packet No. - {count} Received!")
|
||||
try:
|
||||
processed_packet = preprocess_packet(packet)
|
||||
|
||||
if processed_packet is not None:
|
||||
# print(processed_packet["dst_ip"])
|
||||
# print(processed_packet["src_ip"])
|
||||
|
||||
if ":" in processed_packet["dst_ip"] or ":" in processed_packet["src_ip"]:
|
||||
print("packet isn't correct")
|
||||
continue
|
||||
# print(processed_packet)
|
||||
packets_list.append(processed_packet)
|
||||
count+=1
|
||||
except AttributeError as e:
|
||||
print(f"Error processing packet: {e}")
|
||||
print(count, len(packets_list))
|
||||
|
||||
# X_test_scaled = prepare_X_test(packets_list, drop_features)
|
||||
if len(packets_list) >= 1:
|
||||
X_test = pd.concat(packets_list, ignore_index=True)
|
||||
X_test_scaled = X_test.drop(drop_features, axis=1, errors='ignore')
|
||||
X_test_scaled = X_test_scaled.reindex(columns=important_features, fill_value=0)
|
||||
|
||||
if X_test_scaled is not None:
|
||||
results = make_predictions(X_test_scaled, X_test)
|
||||
make_predictions(X_test_scaled,X_test)
|
||||
time.sleep(10)
|
||||
|
||||
except AttributeError as e:
|
||||
print(f"Error processing packet: {e}")
|
||||
print("Packets being Captured..!")
|
||||
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print("\nPacket capturing stopped.")
|
||||
|
||||
@ -697,30 +760,28 @@ class PermissionChangeHandler(FileSystemEventHandler):
|
||||
# print(f"Updated {operation} for {file_extension}: {perms[key]}")
|
||||
|
||||
class AuditDManagerApp:
|
||||
# def __init__(self, root):
|
||||
# self.root = root
|
||||
def __init__(self, frame):
|
||||
self.frame = frame
|
||||
# self.root = frame
|
||||
# self.root.title("AuditD Manager")
|
||||
# self.root.geometry("400x350") # Adjusted for additional widget
|
||||
# self.root.geometry("400x350")
|
||||
# # Adjusted for additional widget
|
||||
self.frame.pack(fill='both', expand=True)
|
||||
|
||||
# # Create Widgets
|
||||
# self.install_button = tk.Button(root, text="Install AuditD", command=self.install_auditd)
|
||||
# self.install_button.pack(pady=10)
|
||||
|
||||
# self.start_button = tk.Button(root, text="Start AuditD", command=self.start_auditd)
|
||||
# self.start_button.pack(pady=10)
|
||||
# Create Widgets
|
||||
self.install_button = tk.Button(self.frame , text="Install AuditD", command=self.install_auditd)
|
||||
self.install_button.pack(pady=10)
|
||||
|
||||
# self.stop_button = tk.Button(root, text="Stop AuditD", command=self.stop_auditd)
|
||||
# self.stop_button.pack(pady=10)
|
||||
self.start_button = tk.Button(self.frame , text="Start AuditD", command=self.start_auditd)
|
||||
self.start_button.pack(pady=10)
|
||||
|
||||
self.stop_button = tk.Button(self.frame , text="Stop AuditD", command=self.stop_auditd)
|
||||
self.stop_button.pack(pady=10)
|
||||
|
||||
self.status_button = tk.Button(self.frame, text="Check Status", command=self.check_status)
|
||||
self.status_button.pack(pady=10)
|
||||
|
||||
# self.status_button = tk.Button(root, text="Check Status", command=self.check_status)
|
||||
# self.status_button.pack(pady=10)
|
||||
def __init__(self, root):
|
||||
self.root = root
|
||||
# Ensure root is a Tk or Toplevel object
|
||||
if isinstance(self.root, tk.Tk) or isinstance(self.root, tk.Toplevel):
|
||||
self.root.title("AuditD Manager")
|
||||
else:
|
||||
raise TypeError("root must be a Tk or Toplevel window")
|
||||
|
||||
# Add Text Entry for Watch Path
|
||||
|
||||
@ -1546,9 +1607,6 @@ def browse_start_dirs():
|
||||
start_dirs_entry.insert(0, ', '.join(directories))
|
||||
|
||||
|
||||
# def malware_gui(frame):
|
||||
# frame.tkraise() # Raise the malware frame (if needed)
|
||||
|
||||
def malware_gui(parent_frame):
|
||||
# Create a new window for malware analysis
|
||||
malware_window = tk.Toplevel(parent_frame)
|
||||
@ -1564,24 +1622,27 @@ def malware_gui(parent_frame):
|
||||
tk.Button(malware_window, text="Browse...", command=browse_hex_directories).pack(pady=5)
|
||||
tk.Button(malware_window, text="Analyze Malware", command=lambda: print("Analyzing...")).pack(pady=10)
|
||||
|
||||
|
||||
|
||||
|
||||
import tkinter as tk
|
||||
from tkinter import ttk
|
||||
# Requires `pip install ttkthemes`
|
||||
|
||||
def create_wizard_window():
|
||||
global root
|
||||
root = tk.Tk()
|
||||
root.title("File Conversion and Disassembly Wizard")
|
||||
root.geometry("600x400")
|
||||
root.geometry("700x450")
|
||||
root.resizable(False, False)
|
||||
|
||||
# Wizard frames
|
||||
frame1 = tk.Frame(root, bg="#f0f0f0")
|
||||
frame2 = tk.Frame(root, bg="#f0f0f0")
|
||||
frame3 = tk.Frame(root, bg="#f0f0f0")
|
||||
frame4 = tk.Frame(root, bg="#f0f0f0")
|
||||
frame5 = tk.Frame(root, bg="#f0f0f0")
|
||||
frame6 = tk.Frame(root, bg="#f0f0f0")
|
||||
|
||||
# Wizard frames with a more appealing color scheme
|
||||
frame1 = tk.Frame(root, bg="#ffffff")
|
||||
frame2 = tk.Frame(root, bg="#f9f9f9")
|
||||
frame3 = tk.Frame(root, bg="#f9f9f9")
|
||||
frame4 = tk.Frame(root, bg="#ffffff")
|
||||
frame5 = tk.Frame(root, bg="#f9f9f9")
|
||||
frame6 = tk.Frame(root, bg="#ffffff")
|
||||
frames = [frame1, frame2, frame3, frame4, frame5, frame6]
|
||||
|
||||
def show_frame(frame):
|
||||
@ -1592,143 +1653,334 @@ def create_wizard_window():
|
||||
|
||||
def update_progress(step):
|
||||
"""Update the progress bar and label to reflect the current step."""
|
||||
progress_label.config(text=f"Step {step} of 4")
|
||||
progress_bar['value'] = (step / 4) * 100
|
||||
progress_label.config(text=f"Step {step} of 5")
|
||||
progress_bar['value'] = (step / 5) * 100
|
||||
|
||||
# Title bar frame for better aesthetics
|
||||
title_frame = tk.Frame(root, bg="#0078d7")
|
||||
# Enhanced Title Bar with Icons
|
||||
title_frame = tk.Frame(root, bg="#283593")
|
||||
title_frame.pack(fill="x", side="top")
|
||||
|
||||
title_label = tk.Label(title_frame, text="Setup Wizard", font=("Arial", 14, "bold"), fg="white", bg="#0078d7")
|
||||
title_label = tk.Label(
|
||||
title_frame,
|
||||
text="🛠 Setup Wizard",
|
||||
font=("Arial", 16, "bold"),
|
||||
fg="white",
|
||||
bg="#283593",
|
||||
anchor="w", padx=20
|
||||
)
|
||||
title_label.pack(pady=10)
|
||||
|
||||
# Progress bar
|
||||
progress_bar = ttk.Progressbar(root, orient="horizontal", mode="determinate", length=400)
|
||||
progress_bar.pack(side="bottom", pady=10)
|
||||
|
||||
progress_label = tk.Label(root, text="Step 1 of 4", font=("Arial", 12))
|
||||
progress_label.pack(side="bottom")
|
||||
# Progress bar with percentage display
|
||||
progress_frame = tk.Frame(root, bg="#f0f0f0")
|
||||
progress_frame.pack(fill="x", side="bottom")
|
||||
progress_bar = ttk.Progressbar(progress_frame, orient="horizontal", mode="determinate", length=500)
|
||||
progress_bar.pack(side="left", padx=20, pady=10)
|
||||
progress_label = tk.Label(progress_frame, text="Step 1 of 5", font=("Arial", 12), bg="#f0f0f0")
|
||||
progress_label.pack(side="left", padx=10)
|
||||
|
||||
# Frame 1 - Welcome Screen
|
||||
label1 = tk.Label(frame1, text="Welcome to the File Conversion Wizard", font=("Arial", 16), bg="#f0f0f0")
|
||||
label1 = tk.Label(frame1, text="Welcome to the File Conversion Wizard", font=("Arial", 18, "bold"), bg="#ffffff")
|
||||
label1.pack(pady=40)
|
||||
desc_label1 = tk.Label(frame1, text="This wizard will guide you through the steps.", bg="#f0f0f0", font=("Arial", 12))
|
||||
desc_label1 = tk.Label(frame1, text="This wizard will guide you through the steps.", bg="#ffffff", font=("Arial", 12))
|
||||
desc_label1.pack(pady=10)
|
||||
|
||||
next_button1 = ttk.Button(frame1, text="Next", command=lambda: [update_progress(2), show_frame(frame2)])
|
||||
next_button1.pack(pady=10, side="bottom")
|
||||
next_button1 = ttk.Button(frame1, text="Next ➡️", command=lambda: [update_progress(2), show_frame(frame2)])
|
||||
next_button1.pack(pady=20)
|
||||
|
||||
# Frame 2 - Packet Capture UI
|
||||
label2 = tk.Label(frame2, text="Packet Capture Setup", font=("Arial", 16), bg="#f0f0f0")
|
||||
# Frame 2 - Packet Capture Setup
|
||||
label2 = tk.Label(frame2, text="📡 Packet Capture Setup", font=("Arial", 16, "bold"), bg="#f9f9f9")
|
||||
label2.pack(pady=40)
|
||||
|
||||
# Insert your packet capture setup UI here
|
||||
setup_gui(frame2) # Assuming you have this function defined
|
||||
|
||||
# Create a separate frame for buttons
|
||||
button_frame2 = tk.Frame(frame2, bg="#f0f0f0")
|
||||
|
||||
button_frame2 = tk.Frame(frame2, bg="#f9f9f9")
|
||||
button_frame2.pack(side="bottom", pady=10)
|
||||
|
||||
next_button2 = ttk.Button(button_frame2, text="Next", command=lambda: [update_progress(3), show_frame(frame3)], width=10)
|
||||
next_button2 = ttk.Button(button_frame2, text="Next ➡️", command=lambda: [update_progress(3), show_frame(frame3)], width=10)
|
||||
next_button2.pack(side="right", padx=10)
|
||||
|
||||
back_button2 = ttk.Button(button_frame2, text="Back", command=lambda: [update_progress(1), show_frame(frame1)], width=10)
|
||||
back_button2 = ttk.Button(button_frame2, text="⬅️ Back", command=lambda: [update_progress(1), show_frame(frame1)], width=10)
|
||||
back_button2.pack(side="left", padx=10)
|
||||
# Frame 3 - Malware Analysis
|
||||
|
||||
# Frame 3 - Malware Analysis with Tabbed Layout
|
||||
notebook = ttk.Notebook(frame3)
|
||||
notebook.pack(fill='both', expand=True)
|
||||
|
||||
# Hex Conversion and ELF Disassembly tabs
|
||||
hex_frame = ttk.Frame(notebook)
|
||||
asm_frame = ttk.Frame(notebook)
|
||||
notebook.add(hex_frame, text='Hex Conversion')
|
||||
notebook.add(asm_frame, text='ELF Disassembly')
|
||||
notebook.add(hex_frame, text='🔢 Hex Conversion')
|
||||
notebook.add(asm_frame, text='⚙️ ELF Disassembly')
|
||||
|
||||
# Frame 3 Content
|
||||
tk.Label(hex_frame, text="Select Directories to Convert to Hex:", font=("Arial", 12)).pack(pady=5)
|
||||
global hex_files_entry
|
||||
hex_files_entry = tk.Entry(hex_frame, width=80)
|
||||
hex_files_entry.pack(pady=5)
|
||||
tk.Button(hex_frame, text="Browse...", command=browse_hex_directories).pack(pady=5)
|
||||
tk.Button(hex_frame, text="Convert to Hex", command=run_hex_conversion).pack(pady=10)
|
||||
tk.Button(hex_frame, text="Browse...").pack(pady=5)
|
||||
tk.Button(hex_frame, text="Convert to Hex").pack(pady=10)
|
||||
|
||||
tk.Label(asm_frame, text="Select Directories to Scan for ELF Files:", font=("Arial", 12)).pack(pady=5)
|
||||
global start_dirs_entry
|
||||
start_dirs_entry = tk.Entry(asm_frame, width=80)
|
||||
start_dirs_entry.pack(pady=5)
|
||||
tk.Button(asm_frame, text="Browse...", command=browse_start_dirs).pack(pady=5)
|
||||
tk.Button(asm_frame, text="Disassemble ELF Files", command=run_disassembly).pack(pady=10)
|
||||
tk.Button(asm_frame, text="Browse...").pack(pady=5)
|
||||
tk.Button(asm_frame, text="Disassemble ELF Files").pack(pady=10)
|
||||
|
||||
next_button3 = ttk.Button(frame3, text="Next", command=lambda: [update_progress(4), show_frame(frame4)])
|
||||
next_button3.pack(side="right", padx=10, pady=20)
|
||||
|
||||
back_button3 = ttk.Button(frame3, text="Back", command=lambda: [update_progress(2), show_frame(frame2)])
|
||||
back_button3.pack(side="left", padx=10, pady=20)
|
||||
button_frame3 = tk.Frame(frame3, bg="#f9f9f9")
|
||||
button_frame3.pack(side="bottom", pady=10)
|
||||
next_button3 = ttk.Button(button_frame3, text="Next ➡️", command=lambda: [update_progress(4), show_frame(frame4)], width=10)
|
||||
next_button3.pack(side="right", padx=10)
|
||||
back_button3 = ttk.Button(button_frame3, text="⬅️ Back", command=lambda: [update_progress(2), show_frame(frame2)], width=10)
|
||||
back_button3.pack(side="left", padx=10)
|
||||
|
||||
# Frame 4 - Ransomware Detection
|
||||
label4 = tk.Label(frame4, text="Ransomware Detection", font=("Arial", 16), bg="#f0f0f0")
|
||||
label4.pack(pady=40)
|
||||
label4 = tk.Label(frame4, text="🛡️ Ransomware Detection", font=("Arial", 16, "bold"), bg="#f0f0f0", fg="#333")
|
||||
label4.pack(pady=20)
|
||||
|
||||
directory_frame = tk.Frame(frame4, bg="#f0f0f0")
|
||||
directory_frame.pack(pady=10)
|
||||
|
||||
selected_dir_label = tk.Label(directory_frame, text="No Directory Selected", width=40, bg="#f0f0f0")
|
||||
selected_dir_label.grid(row=1, column=0)
|
||||
selected_dir_label = tk.Label(directory_frame, text="No Directory Selected", width=50, bg="#f0f0f0", font=("Arial", 12), fg="#666")
|
||||
selected_dir_label.grid(row=1, column=0, pady=10)
|
||||
|
||||
def select_directory():
|
||||
directory = browse_directory()
|
||||
if directory:
|
||||
selected_dir_label.config(text=directory)
|
||||
# Placeholder for directory selection functionality
|
||||
selected_dir_label.config(text="Selected Directory Path")
|
||||
|
||||
browse_button = ttk.Button(directory_frame, text="Select Directory", command=select_directory)
|
||||
browse_button.grid(row=0, column=0)
|
||||
browse_button = ttk.Button(directory_frame, text="📂 Select Directory", command=select_directory)
|
||||
browse_button.grid(row=0, column=0, pady=5)
|
||||
|
||||
status_label = tk.Label(frame4, text="", fg="blue", bg="#f0f0f0")
|
||||
status_label = tk.Label(frame4, text="", fg="blue", bg="#f0f0f0", font=("Arial", 12))
|
||||
status_label.pack(pady=10)
|
||||
|
||||
run_button = ttk.Button(frame4, text="Run Predictions", command=lambda: run_predictions(selected_dir_label.cget("text"), status_label))
|
||||
run_button.pack(pady=10)
|
||||
|
||||
finish_button = ttk.Button(frame4, text="Finish", command=root.quit)
|
||||
finish_button.pack(side="right", padx=10, pady=20)
|
||||
|
||||
back_button4 = ttk.Button(frame4, text="Back", command=lambda: [update_progress(3), show_frame(frame3)])
|
||||
back_button4.pack(side="left", padx=10, pady=20)
|
||||
button_frame4 = tk.Frame(frame4, bg="#f0f0f0")
|
||||
button_frame4.pack(side="bottom", pady=15)
|
||||
|
||||
next_button4 = ttk.Button(button_frame4, text="Next ➡️", command=lambda: [update_progress(5), show_frame(frame5)], width=10)
|
||||
next_button4.pack(side="right", padx=10)
|
||||
back_button4 = ttk.Button(button_frame4, text="⬅️ Back", command=lambda: [update_progress(3), show_frame(frame3)], width=10)
|
||||
back_button4.pack(side="left", padx=10)
|
||||
|
||||
# Frame 5 - AuditD Manager
|
||||
# Pass root to AuditDManagerApp instead of frame5
|
||||
audit_app = AuditDManagerApp(root)
|
||||
audit_app.frame.pack(fill='both', expand=True)
|
||||
label5 = tk.Label(frame5, text="🔍 AuditD Manager", font=("Arial", 16, "bold"), bg="#f0f0f0", fg="#333")
|
||||
label5.pack(pady=20)
|
||||
|
||||
# Placeholder for AuditD Manager
|
||||
audit_app = AuditDManagerApp(frame5) # Uncomment and define if AuditDManagerApp is available
|
||||
audit_app.frame.pack(fill='both', expand=True, pady=10)
|
||||
|
||||
# Navigation buttons for Frame 5
|
||||
button_frame5 = tk.Frame(frame5, bg="#f0f0f0")
|
||||
button_frame5.pack(side="bottom", pady=10)
|
||||
button_frame5.pack(side="bottom", pady=15)
|
||||
|
||||
back_button5 = ttk.Button(button_frame5, text="Back", command=lambda: [update_progress(4), show_frame(frame4)], width=10)
|
||||
next_button5 = ttk.Button(button_frame5, text="Next ➡️", command=lambda: show_frame(frame6), width=10)
|
||||
next_button5.pack(side="right", padx=10)
|
||||
back_button5 = ttk.Button(button_frame5, text="⬅️ Back", command=lambda: [update_progress(4), show_frame(frame4)], width=10)
|
||||
back_button5.pack(side="left", padx=10)
|
||||
|
||||
finish_button = ttk.Button(button_frame5, text="Finish", command=root.quit, width=10)
|
||||
finish_button.pack(side="right", padx=10)
|
||||
|
||||
# Frame 6 - Summary (Optional)
|
||||
label6 = tk.Label(frame6, text="Setup Complete!", font=("Arial", 16), bg="#f0f0f0")
|
||||
# Frame 6 - Completion Screen
|
||||
label6 = tk.Label(frame6, text="🎉 Setup Complete!", font=("Arial", 18, "bold"), bg="#ffffff")
|
||||
label6.pack(pady=40)
|
||||
desc_label6 = tk.Label(frame6, text="Thank you for using the setup wizard.", bg="#f0f0f0", font=("Arial", 12))
|
||||
desc_label6 = tk.Label(frame6, text="Thank you for using the setup wizard.", bg="#ffffff", font=("Arial", 12))
|
||||
desc_label6.pack(pady=10)
|
||||
finish_button = ttk.Button(frame6, text="➡️ Finish ⬅️", command=root.quit, width=10)
|
||||
finish_button.pack(pady=10)
|
||||
|
||||
# Show the first frame
|
||||
show_frame(frame1)
|
||||
|
||||
root.mainloop()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def on_closing():
|
||||
root.quit()
|
||||
|
||||
if __name__ == "__main__":
|
||||
if device_check():
|
||||
# If device check is successful, initialize the Tkinter window
|
||||
create_wizard_window()
|
||||
else:
|
||||
# If the device check fails, show an error message and exit
|
||||
print("Device check failed. Exiting program.")
|
||||
messagebox.showerror("Error", "Device check failed. The wizard will not start.")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# def create_wizard_window():
|
||||
# global root
|
||||
# root = tk.Tk()
|
||||
# root.title("File Conversion and Disassembly Wizard")
|
||||
# root.geometry("600x400")
|
||||
# root.resizable(False, False)
|
||||
|
||||
# # Wizard frames
|
||||
# frame1 = tk.Frame(root, bg="#f0f0f0")
|
||||
# frame2 = tk.Frame(root, bg="#f0f0f0")
|
||||
# frame3 = tk.Frame(root, bg="#f0f0f0")
|
||||
# frame4 = tk.Frame(root, bg="#f0f0f0")
|
||||
# frame5 = tk.Frame(root, bg="#f0f0f0")
|
||||
# frame6 = tk.Frame(root, bg="#f0f0f0")
|
||||
|
||||
# frames = [frame1, frame2, frame3, frame4, frame5, frame6]
|
||||
|
||||
# current_step = 1
|
||||
|
||||
# def show_frame(frame):
|
||||
# """Hide all frames and show only the specified one."""
|
||||
# for frm in frames:
|
||||
# frm.pack_forget()
|
||||
# frame.pack(fill='both', expand=True)
|
||||
|
||||
# def update_progress(step):
|
||||
# """Update the progress bar and label to reflect the current step."""
|
||||
# progress_label.config(text=f"Step {step} of 5")
|
||||
# progress_bar['value'] = (step / 5) * 100
|
||||
|
||||
# # Title bar frame for better aesthetics
|
||||
# title_frame = tk.Frame(root, bg="#0078d7")
|
||||
# title_frame.pack(fill="x", side="top")
|
||||
|
||||
# title_label = tk.Label(title_frame, text="Setup Wizard", font=("Arial", 14, "bold"), fg="white", bg="#0078d7")
|
||||
# title_label.pack(pady=10)
|
||||
|
||||
# # Progress bar
|
||||
# progress_bar = ttk.Progressbar(root, orient="horizontal", mode="determinate", length=400)
|
||||
# progress_bar.pack(side="bottom", pady=10)
|
||||
|
||||
# progress_label = tk.Label(root, text="Step 1 of 5", font=("Arial", 12))
|
||||
# progress_label.pack(side="bottom")
|
||||
|
||||
# # Frame 1 - Welcome Screen
|
||||
# label1 = tk.Label(frame1, text="Welcome to the File Conversion Wizard", font=("Arial", 16), bg="#f0f0f0")
|
||||
# label1.pack(pady=40)
|
||||
# desc_label1 = tk.Label(frame1, text="This wizard will guide you through the steps.", bg="#f0f0f0", font=("Arial", 12))
|
||||
# desc_label1.pack(pady=10)
|
||||
|
||||
# next_button1 = ttk.Button(frame1, text="Next", command=lambda: [update_progress(2), show_frame(frame2)])
|
||||
# next_button1.pack(pady=10, side="bottom")
|
||||
|
||||
# # Frame 2 - Packet Capture UI
|
||||
# label2 = tk.Label(frame2, text="Packet Capture Setup", font=("Arial", 16), bg="#f0f0f0")
|
||||
# label2.pack(pady=40)
|
||||
|
||||
# # Insert your packet capture setup UI here
|
||||
# setup_gui(frame2) # Assuming you have this function defined
|
||||
|
||||
# button_frame2 = tk.Frame(frame2, bg="#f0f0f0")
|
||||
# button_frame2.pack(side="bottom", pady=10)
|
||||
|
||||
# next_button2 = ttk.Button(button_frame2, text="Next", command=lambda: [update_progress(3), show_frame(frame3)], width=10)
|
||||
# next_button2.pack(side="right", padx=10)
|
||||
|
||||
# back_button2 = ttk.Button(button_frame2, text="Back", command=lambda: [update_progress(1), show_frame(frame1)], width=10)
|
||||
# back_button2.pack(side="left", padx=10)
|
||||
|
||||
# # Frame 3 - Malware Analysis
|
||||
# notebook = ttk.Notebook(frame3)
|
||||
# notebook.pack(fill='both', expand=True)
|
||||
|
||||
# hex_frame = ttk.Frame(notebook)
|
||||
# asm_frame = ttk.Frame(notebook)
|
||||
# notebook.add(hex_frame, text='Hex Conversion')
|
||||
# notebook.add(asm_frame, text='ELF Disassembly')
|
||||
|
||||
# tk.Label(hex_frame, text="Select Directories to Convert to Hex:", font=("Arial", 12)).pack(pady=5)
|
||||
# global hex_files_entry
|
||||
# hex_files_entry = tk.Entry(hex_frame, width=80)
|
||||
# hex_files_entry.pack(pady=5)
|
||||
# tk.Button(hex_frame, text="Browse...",command=browse_hex_directories).pack(pady=5)
|
||||
# tk.Button(hex_frame, text="Convert to Hex",command=run_hex_conversion).pack(pady=10)
|
||||
|
||||
# tk.Label(asm_frame, text="Select Directories to Scan for ELF Files:", font=("Arial", 12)).pack(pady=5)
|
||||
# global start_dirs_entry
|
||||
# start_dirs_entry = tk.Entry(asm_frame, width=80)
|
||||
# start_dirs_entry.pack(pady=5)
|
||||
# tk.Button(asm_frame, text="Browse...", command=browse_start_dirs).pack(pady=5)
|
||||
# tk.Button(asm_frame, text="Disassemble ELF Files",command=run_disassembly).pack(pady=10)
|
||||
|
||||
# button_frame3 = tk.Frame(frame3, bg="#f0f0f0")
|
||||
# button_frame3.pack(side="bottom", pady=10)
|
||||
|
||||
# next_button3 = ttk.Button(button_frame3, text="Next", command=lambda: [update_progress(4), show_frame(frame4)], width=10)
|
||||
# next_button3.pack(side="right", padx=10)
|
||||
|
||||
# back_button3 = ttk.Button(button_frame3, text="Back", command=lambda: [update_progress(2), show_frame(frame2)], width=10)
|
||||
# back_button3.pack(side="left", padx=10)
|
||||
|
||||
# # Frame 4 - Ransomware Detection
|
||||
# label4 = tk.Label(frame4, text="Ransomware Detection", font=("Arial", 16), bg="#f0f0f0")
|
||||
# label4.pack(pady=40)
|
||||
|
||||
# directory_frame = tk.Frame(frame4, bg="#f0f0f0")
|
||||
# directory_frame.pack(pady=10)
|
||||
|
||||
# selected_dir_label = tk.Label(directory_frame, text="No Directory Selected", width=40, bg="#f0f0f0")
|
||||
# selected_dir_label.grid(row=1, column=0)
|
||||
|
||||
# # Directory label
|
||||
|
||||
|
||||
# def select_directory():
|
||||
# directory = browse_directory()
|
||||
# if directory:
|
||||
# selected_dir_label.config(text=directory)
|
||||
# # Start the watchdog observer
|
||||
|
||||
# browse_button = ttk.Button(directory_frame, text="Select Directory", command=select_directory)
|
||||
# browse_button.grid(row=0, column=0)
|
||||
|
||||
# status_label = tk.Label(frame4, text="", fg="blue", bg="#f0f0f0")
|
||||
# status_label.pack(pady=10)
|
||||
|
||||
# run_button = ttk.Button(frame4, text="Run Predictions", command=lambda: run_predictions(selected_dir_label.cget("text"), status_label))
|
||||
# run_button.pack(pady=10)
|
||||
|
||||
# button_frame4 = tk.Frame(frame4, bg="#f0f0f0")
|
||||
# button_frame4.pack(side="bottom", pady=10)
|
||||
|
||||
# next_button4 = ttk.Button(button_frame4, text="Next", command=lambda: [update_progress(5), show_frame(frame5)], width=10)
|
||||
# next_button4.pack(side="right", padx=10)
|
||||
|
||||
# back_button4 = ttk.Button(button_frame4, text="Back", command=lambda: [update_progress(3), show_frame(frame3)], width=10)
|
||||
# back_button4.pack(side="left", padx=10)
|
||||
|
||||
# # Frame 5 - AuditD Manager
|
||||
# audit_app = AuditDManagerApp(frame5)
|
||||
# audit_app.frame.pack(fill='both', expand=True)
|
||||
|
||||
# # tk.Label(frame5, text="AuditD Manager", font=("Arial", 16), bg="#f0f0f0").pack(pady=40)
|
||||
|
||||
|
||||
# button_frame5 = tk.Frame(frame5, bg="#f0f0f0")
|
||||
# button_frame5.pack(side="bottom", pady=10)
|
||||
|
||||
# next_button5 = ttk.Button(button_frame5, text="Next", command=lambda: show_frame(frame6), width=10)
|
||||
# next_button5.pack(side="right", padx=10)
|
||||
|
||||
# back_button5 = ttk.Button(button_frame5, text="Back", command=lambda: [update_progress(4), show_frame(frame4)], width=10)
|
||||
# back_button5.pack(side="left", padx=10)
|
||||
|
||||
# # Frame 6 - Summary
|
||||
# label6 = tk.Label(frame6, text="Setup Complete!", font=("Arial", 16), bg="#f0f0f0")
|
||||
# label6.pack(pady=40)
|
||||
# desc_label6 = tk.Label(frame6, text="Thank you for using the setup wizard.", bg="#f0f0f0", font=("Arial", 12))
|
||||
# desc_label6.pack(pady=10)
|
||||
|
||||
# finish_button = ttk.Button(frame6, text="Finish", command=root.quit, width=10)
|
||||
# finish_button.pack(pady=10)
|
||||
|
||||
# # Show the first frame
|
||||
# show_frame(frame1)
|
||||
|
||||
# root.mainloop()
|
||||
|
||||
|
||||
# def on_closing():
|
||||
# root.quit()
|
||||
|
||||
# if __name__ == "__main__":
|
||||
|
||||
# root = tk.Tk()
|
||||
# create_wizard_window()
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user