Skip to content

Commit 0d61bf5

Browse files
Update gui.py
1 parent 559636c commit 0d61bf5

File tree

1 file changed

+86
-120
lines changed

1 file changed

+86
-120
lines changed

src/gui.py

Lines changed: 86 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env python3
22
"""
33
AI-Driven Zero-Click Exploit Deployment Framework - Integrated GUI
4-
Auto-discovers and connects to available backend modules
4+
Uses backend adapters for proper module initialization
55
"""
66

77
import tkinter as tk
@@ -12,110 +12,25 @@
1212
import random
1313
import sys
1414
import os
15-
import importlib
16-
import inspect
1715
from datetime import datetime
1816
from collections import deque
17+
from pathlib import Path
1918

2019
# Add src directory to path
21-
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
22-
23-
# Auto-discover available modules
24-
AVAILABLE_MODULES = {}
25-
26-
MODULE_MAPPING = {
27-
'exploit': [
28-
'src.exploit.exploit_module',
29-
'src.exploit_module',
30-
'exploit.exploit_module',
31-
'exploit_module'
32-
],
33-
'ai': [
34-
'src.ai.ai_model',
35-
'src.ai_model',
36-
'ai.ai_model',
37-
'ai_model'
38-
],
39-
'device': [
40-
'src.device_control.device_manager',
41-
'src.device_manager',
42-
'device_control.device_manager',
43-
'device_manager'
44-
],
45-
'botnet': [
46-
'src.botnet.botnet_manager',
47-
'src.botnet_manager',
48-
'botnet.botnet_manager',
49-
'botnet_manager'
50-
],
51-
'monitor': [
52-
'src.monitoring.real_time_monitor',
53-
'src.real_time_monitor',
54-
'monitoring.real_time_monitor',
55-
'real_time_monitor'
56-
],
57-
'post_exploit': [
58-
'src.post_exploitation.post_exploit',
59-
'src.post_exploit',
60-
'post_exploitation.post_exploit',
61-
'post_exploit'
62-
],
63-
'encryptor': [
64-
'src.encryption.polymorphic_encryptor',
65-
'src.polymorphic_encryptor',
66-
'encryption.polymorphic_encryptor',
67-
'polymorphic_encryptor'
68-
],
69-
'tunnel': [
70-
'src.networking.reverse_doh',
71-
'src.reverse_doh',
72-
'networking.reverse_doh',
73-
'reverse_doh'
74-
],
75-
'sms': [
76-
'src.social.sms_spoofing',
77-
'src.sms_spoofing',
78-
'social.sms_spoofing',
79-
'sms_spoofing'
80-
],
81-
'email': [
82-
'src.social.email_spoofing',
83-
'src.email_spoofing',
84-
'social.email_spoofing',
85-
'email_spoofing'
86-
]
87-
}
88-
89-
def discover_modules():
90-
"""Auto-discover available framework modules"""
91-
discovered = {}
92-
93-
for module_type, possible_paths in MODULE_MAPPING.items():
94-
for path in possible_paths:
95-
try:
96-
module = importlib.import_module(path)
97-
# Find the main class in the module
98-
classes = [obj for name, obj in inspect.getmembers(module)
99-
if inspect.isclass(obj) and obj.__module__ == path]
100-
101-
if classes:
102-
discovered[module_type] = {
103-
'module': module,
104-
'class': classes[0],
105-
'path': path
106-
}
107-
print(f"✓ Discovered {module_type}: {path}.{classes[0].__name__}")
108-
break
109-
except ImportError:
110-
continue
111-
except Exception as e:
112-
continue
113-
114-
return discovered
115-
116-
# Discover modules at startup
117-
AVAILABLE_MODULES = discover_modules()
118-
FRAMEWORK_MODULES_AVAILABLE = len(AVAILABLE_MODULES) > 0
20+
sys.path.insert(0, str(Path(__file__).parent))
21+
sys.path.insert(0, str(Path(__file__).parent.parent))
22+
23+
# Import adapters
24+
try:
25+
from backend_adapters import (
26+
ConfigManager, GUILogger, ExploitAdapter, BotnetAdapter,
27+
AIAdapter, DeviceAdapter, MonitorAdapter, EncryptorAdapter,
28+
TunnelAdapter, SocialAdapter
29+
)
30+
ADAPTERS_AVAILABLE = True
31+
except ImportError as e:
32+
print(f"Adapters not available: {e}")
33+
ADAPTERS_AVAILABLE = False
11934

12035
# Modern styling constants
12136
COLORS = {
@@ -466,7 +381,7 @@ def save(self):
466381
self.destroy()
467382

468383
class AIDeploymentFrameworkGUI:
469-
"""Main GUI Application with auto-discovered backend integration"""
384+
"""Main GUI Application with adapter-based backend integration"""
470385

471386
def __init__(self, root):
472387
self.root = root
@@ -475,9 +390,14 @@ def __init__(self, root):
475390
self.root.configure(bg=COLORS['bg_dark'])
476391
self.root.minsize(1200, 700)
477392

478-
# Initialize backend modules
393+
# Initialize configuration and logging
394+
self.config = ConfigManager() if ADAPTERS_AVAILABLE else None
395+
self.gui_logger = GUILogger('GUI') if ADAPTERS_AVAILABLE else None
396+
397+
# Initialize backend modules through adapters
479398
self.backend = {}
480-
self._init_backend_modules()
399+
if ADAPTERS_AVAILABLE:
400+
self._init_backend_modules()
481401

482402
# State
483403
self.running = False
@@ -500,32 +420,78 @@ def __init__(self, root):
500420
self.create_layout()
501421
self.create_status_bar()
502422

423+
# Connect logger to log panel after it's created
424+
if self.gui_logger:
425+
self.gui_logger.set_log_panel(self.log_panel)
426+
503427
# Start background tasks
504428
self.start_monitoring()
505429

506430
# Initial log
507431
self.log_panel.log('Framework initialized successfully', 'SUCCESS')
508-
if FRAMEWORK_MODULES_AVAILABLE:
509-
self.log_panel.log(f'Discovered {len(AVAILABLE_MODULES)} backend modules', 'SUCCESS')
510-
for name in AVAILABLE_MODULES.keys():
511-
self.log_panel.log(f' ✓ {name} module loaded', 'DEBUG')
432+
if ADAPTERS_AVAILABLE and self.backend:
433+
self.log_panel.log(f'Backend adapters loaded: {len(self.backend)} modules', 'SUCCESS')
434+
for name in self.backend.keys():
435+
self.log_panel.log(f' ✓ {name}', 'DEBUG')
512436
else:
513-
self.log_panel.log('No backend modules found - Running in DEMO MODE', 'WARNING')
437+
self.log_panel.log('Running in DEMO MODE', 'WARNING')
514438
self.log_panel.log('Zero-click exploit modules ready', 'INFO')
515439

516440
def _init_backend_modules(self):
517-
"""Initialize discovered backend modules"""
518-
global AVAILABLE_MODULES
441+
"""Initialize backend modules through adapters"""
442+
try:
443+
self.backend['exploit'] = ExploitAdapter(self.config, self.gui_logger)
444+
print('✓ Exploit adapter initialized')
445+
except Exception as e:
446+
print(f'✗ Exploit adapter failed: {e}')
519447

520-
for module_name, module_info in AVAILABLE_MODULES.items():
521-
try:
522-
# Instantiate the class
523-
cls = module_info['class']
524-
instance = cls()
525-
self.backend[module_name] = instance
526-
print(f"✓ Initialized {module_name}: {cls.__name__}")
527-
except Exception as e:
528-
print(f"✗ Failed to initialize {module_name}: {e}")
448+
try:
449+
self.backend['botnet'] = BotnetAdapter(self.config, self.gui_logger)
450+
print('✓ Botnet adapter initialized')
451+
except Exception as e:
452+
print(f'✗ Botnet adapter failed: {e}')
453+
454+
try:
455+
self.backend['ai'] = AIAdapter(self.config, self.gui_logger)
456+
print('✓ AI adapter initialized')
457+
except Exception as e:
458+
print(f'✗ AI adapter failed: {e}')
459+
460+
try:
461+
self.backend['device'] = DeviceAdapter(self.config, self.gui_logger)
462+
print('✓ Device adapter initialized')
463+
except Exception as e:
464+
print(f'✗ Device adapter failed: {e}')
465+
466+
try:
467+
self.backend['monitor'] = MonitorAdapter(self.config, self.gui_logger)
468+
print('✓ Monitor adapter initialized')
469+
except Exception as e:
470+
print(f'✗ Monitor adapter failed: {e}')
471+
472+
try:
473+
self.backend['encryptor'] = EncryptorAdapter(self.config, self.gui_logger)
474+
print('✓ Encryptor adapter initialized')
475+
except Exception as e:
476+
print(f'✗ Encryptor adapter failed: {e}')
477+
478+
try:
479+
self.backend['tunnel'] = TunnelAdapter(self.config, self.gui_logger)
480+
print('✓ Tunnel adapter initialized')
481+
except Exception as e:
482+
print(f'✗ Tunnel adapter failed: {e}')
483+
484+
try:
485+
self.backend['sms'] = SocialAdapter('sms', self.config, self.gui_logger)
486+
print('✓ SMS adapter initialized')
487+
except Exception as e:
488+
print(f'✗ SMS adapter failed: {e}')
489+
490+
try:
491+
self.backend['email'] = SocialAdapter('email', self.config, self.gui_logger)
492+
print('✓ Email adapter initialized')
493+
except Exception as e:
494+
print(f'✗ Email adapter failed: {e}')
529495

530496
def create_menu(self):
531497
"""Create application menu"""

0 commit comments

Comments
 (0)