Skip to content

Latest commit

 

History

History
42 lines (27 loc) · 2.39 KB

File metadata and controls

42 lines (27 loc) · 2.39 KB
graph LR
    ExecBlockManager["ExecBlockManager"]
    ExecBlock["ExecBlock"]
    ExecBroker["ExecBroker"]
    QBDI_VM -- "orchestrates" --> ExecBlockManager
    ExecBlockManager -- "manages" --> ExecBlock
    ExecBroker -- "interacts with" --> ExecBlock
    ExecBroker -- "interacts with" --> QBDI_ArchState
    ExecBroker -- "interacts with" --> QBDI_Callback
    ExecBlockManager -- "utilizes" --> QBDI_Memory
    ExecBroker -- "interacts with" --> QBDI_Platform
    ExecBroker -- "requests" --> ExecBlockManager
Loading

CodeBoardingDemoContact

Details

One paragraph explaining the functionality which is represented by this graph. What the main flow is and what is its purpose.

ExecBlockManager

This component is the central orchestrator for managing ExecBlock instances. It is responsible for allocating, tracking, and recycling executable memory regions (execution blocks). It ensures efficient use of memory and provides mechanisms for invalidating or freeing blocks when they are no longer needed. It acts as a high-level interface for the VM to request and manage executable memory.

Related Classes/Methods: None

ExecBlock

Represents a single, contiguous region of executable memory where instrumented code is placed. Each ExecBlock encapsulates the actual rewritten instructions and associated metadata. It manages the lifecycle of the code within its boundaries and might handle aspects like code generation and patching within its allocated space.

Related Classes/Methods: None

ExecBroker

This component is responsible for handling the seamless transition of control flow between the original application's code and the instrumented code residing in ExecBlocks. It manages execution contexts, handles exceptions, and ensures that the DBI framework can intercept and redirect execution as needed. It acts as the bridge for entering and exiting the instrumented environment.

Related Classes/Methods: None