graph LR
Session_Orchestrator["Session Orchestrator"]
Fuzzing_Loop_Controller["Fuzzing Loop Controller"]
Data_Transmission_Module["Data Transmission Module"]
Target_Management_Module["Target Management Module"]
Error_Fault_Handling_Module["Error & Fault Handling Module"]
External_Monitoring_Integration["External Monitoring Integration"]
Session_State_Persistence["Session State Persistence"]
Web_Interface_Management["Web Interface Management"]
Session_Orchestrator -- "initiates and controls" --> Fuzzing_Loop_Controller
Session_Orchestrator -- "interacts with" --> Session_State_Persistence
Session_Orchestrator -- "manages" --> Web_Interface_Management
Fuzzing_Loop_Controller -- "calls" --> Data_Transmission_Module
Fuzzing_Loop_Controller -- "calls" --> Target_Management_Module
Fuzzing_Loop_Controller -- "calls" --> Error_Fault_Handling_Module
Fuzzing_Loop_Controller -- "calls" --> External_Monitoring_Integration
Fuzzing_Loop_Controller -- "interacts with" --> Session_State_Persistence
Error_Fault_Handling_Module -- "calls" --> Target_Management_Module
External_Monitoring_Integration -- "calls" --> Target_Management_Module
click Session_Orchestrator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/sulley/Session_Orchestrator.md" "Details"
The sulley.sessions subsystem orchestrates the entire fuzzing process, centered around the Session Orchestrator. This orchestrator initiates and controls the Fuzzing Loop Controller, which is the core execution engine responsible for driving the fuzzing iterations. Within each iteration, the Fuzzing Loop Controller calls upon the Data Transmission Module to send fuzzed data to the target, the Target Management Module to handle SUT restarts, the Error & Fault Handling Module for fault detection and recovery, and the External Monitoring Integration for real-time feedback. The Session Orchestrator also manages the Web Interface Management for user interaction and interacts with Session State Persistence to save and load fuzzing progress. Both Error & Fault Handling Module and External Monitoring Integration can trigger actions on the Target Management Module for recovery or state management. This structure ensures a robust and manageable fuzzing campaign, with clear separation of concerns between high-level session management, core fuzzing execution, and specialized operational modules.
Session Orchestrator [Expand]
The high-level orchestrator for fuzzing sessions. It manages the overall state, initializes the fuzzing environment, handles session entry/resumption, and coordinates the main fuzzing loop.
Related Classes/Methods:
Drives the main fuzzing loop, coordinating test case progression, fuzzed data transmission, target restarts, and integrating error handling and monitoring. It is the core execution engine of the fuzzing process.
Related Classes/Methods:
Handles the actual transmission of generated fuzzed data to the System Under Test (SUT). This component is critical for delivering the test cases to the target.
Related Classes/Methods:
Manages the resetting and recovery of the target system during fuzzing. This includes restarting the SUT to ensure a clean state for subsequent test cases or after a detected fault.
Related Classes/Methods:
Provides centralized error management and response during the fuzzing process. It detects and processes faults or unexpected behaviors from the SUT, often triggering recovery actions.
Related Classes/Methods:
Facilitates communication with external monitoring and instrumentation agents (e.g., via PED-RPC). This component is responsible for gathering real-time feedback and crash detection from the SUT.
Related Classes/Methods:
Manages the persistence of fuzzing progress and session state to a file, and conversely, loads previous session states. This allows for fuzzing campaigns to be paused and resumed.
Related Classes/Methods:
Initializes and manages the web interface components, providing a real-time dashboard and control mechanisms for the fuzzing process.
Related Classes/Methods: