graph LR
Core_Orchestrator["Core Orchestrator"]
ReflectiveLoader["ReflectiveLoader"]
Configuration_Manager["Configuration Manager"]
Stealth_Evasion_Layer["Stealth/Evasion Layer"]
Communication_Abstraction["Communication Abstraction"]
Task_Dispatcher["Task Dispatcher"]
Command_Executor["Command Executor"]
ReflectiveLoader -- "Invokes" --> Core_Orchestrator
Core_Orchestrator -- "Retrieves Settings" --> Configuration_Manager
Core_Orchestrator -- "Manages Sleep Cycle" --> Stealth_Evasion_Layer
Core_Orchestrator -- "Fetches Tasks via" --> Communication_Abstraction
Core_Orchestrator -- "Sends Results via" --> Communication_Abstraction
Core_Orchestrator -- "Dispatches Tasks to" --> Task_Dispatcher
Task_Dispatcher -- "Delegates Execution to" --> Command_Executor
click Core_Orchestrator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/CobaltStrikeBeaconCppSource/Core_Orchestrator.md" "Details"
One paragraph explaining the functionality which is represented by this graph. What the main flow is and what is its purpose.
Core Orchestrator [Expand]
The central component that manages the agent's lifecycle, initializes other components, and orchestrates the main event loop, acting as the intermediary between communication and task execution.
Related Classes/Methods:
src/beacon.cpp
Responsible for starting the beacon by reflectively loading it into memory. The DllMain function within ReflectiveDll.cpp serves as the entry point, which then invokes the Core Orchestrator to begin execution.
Related Classes/Methods:
src/ReflectiveLoader.cppsrc/ReflectiveDll.cpp
Loads and provides access to critical beacon settings, such as C2 server addresses, communication keys, and other operational parameters, likely managed during the client initialization phase.
Related Classes/Methods:
src/client.cppsrc/config.h
Manages the sleep and jitter timing of the beacon's communication cycle to make its network activity less predictable and harder to detect. This logic is embedded within the main loop.
Related Classes/Methods:
src/beacon.cpp
Handles all network communications, abstracting the methods for fetching tasks from the C2 server and sending back results. It supports multiple protocols like TCP and SMB.
Related Classes/Methods:
src/client.cppsrc/channel.cppsrc/client_tcp.cppsrc/client_smb.cpp
Parses instructions received from the C2 server, validates them, and routes them to the appropriate execution function.
Related Classes/Methods:
src/commands.cpp
Executes individual commands on the compromised system as directed by the Task Dispatcher and gathers the output.
Related Classes/Methods:
src/execute.cpp