Skip to content

Latest commit

 

History

History
84 lines (48 loc) · 5.21 KB

File metadata and controls

84 lines (48 loc) · 5.21 KB
graph LR
    sulley_pedrpc["sulley.pedrpc"]
    VM_Power_State_Control["VM Power State Control"]
    VM_Snapshot_Management["VM Snapshot Management"]
    Target_Restart_Orchestration["Target Restart Orchestration"]
    VM_Status_Query["VM Status Query"]
    vmcontrol_wait["vmcontrol.wait"]
    sulley_pedrpc -- "provides services for" --> VM_Power_State_Control
    sulley_pedrpc -- "provides services for" --> VM_Snapshot_Management
    sulley_pedrpc -- "provides services for" --> VM_Status_Query
    VM_Power_State_Control -- "invokes" --> sulley_pedrpc
    VM_Snapshot_Management -- "invokes" --> sulley_pedrpc
    VM_Status_Query -- "utilizes" --> sulley_pedrpc
    Target_Restart_Orchestration -- "coordinates" --> VM_Power_State_Control
    Target_Restart_Orchestration -- "coordinates" --> VM_Snapshot_Management
    Target_Restart_Orchestration -- "coordinates" --> VM_Status_Query
    Target_Restart_Orchestration -- "coordinates" --> vmcontrol_wait
    vmcontrol_wait -- "depends on" --> VM_Status_Query
Loading

CodeBoardingDemoContact

Details

The vmcontrol subsystem in sulley provides comprehensive virtual machine management capabilities crucial for fuzzing operations. While vmcontrol itself is a conceptual grouping of functionalities, its core implementation and interaction with virtual machines are facilitated by the sulley.pedrpc component. sulley.pedrpc acts as the central communication layer, enabling remote execution of VM commands. Higher-level logical components such as VM Power State Control, VM Snapshot Management, Target Restart Orchestration, and VM Status Query abstract specific VM operations. These components interact with sulley.pedrpc to perform their respective tasks, ensuring a clean and consistent VM environment for each fuzzing iteration. The vmcontrol.wait utility further enhances state management by allowing the system to pause until a desired VM state is achieved, often relying on VM Status Query. This architecture ensures robust and repeatable fuzzing campaigns by providing precise control over the virtualized testing environment.

sulley.pedrpc

This is the central component, acting as the communication backbone for all VM control operations. It provides the remote procedure call mechanism, allowing the fuzzing engine to interact with and control virtual machines, potentially across different hosts. All VM control commands are channeled through this component.

Related Classes/Methods:

VM Power State Control

A logical grouping of functions responsible for managing the operational state of the virtual machine (e.g., start, stop, suspend, resume, pause). These operations are critical for controlling the System Under Test's (SUT) execution lifecycle during fuzzing.

Related Classes/Methods:

VM Snapshot Management

A logical grouping of functions providing mechanisms to save and restore specific VM states. This is fundamental for ensuring test repeatability, efficient recovery after crashes, and quickly reverting to a known good state during fuzzing campaigns.

Related Classes/Methods:

Target Restart Orchestration

A high-level function (restart_target) that coordinates a sequence of VM operations (e.g., stop, revert, start, wait) to bring the target VM back to a clean, ready state for the next fuzzing test case. This is a key workflow in the fuzzing loop.

Related Classes/Methods:

VM Status Query

A logical grouping of functions responsible for querying the current operational status and detailed information of the virtual machine. This is essential for conditional operations and waiting for specific states, ensuring robust state management.

Related Classes/Methods:

vmcontrol.wait

A utility function that repeatedly checks the VM's status until the target reaches a desired operational state. This works in conjunction with VM Status Query to ensure proper synchronization and sequencing of VM operations.

Related Classes/Methods: