Repository Organization

Root Tree

The root of the source tree is organized as follows:

cmake/

Contains files required by the CMake build system.

deps/

Contains the dependency build system and cache.

docker/

Contains the Dockerfile for the docker image and the CI.

docs/

Contains this documentation source and configuration.

example/

Contains various QBDI usage examples.

include/

Contains the public include files.

package/

Contains the package generation scripts.

src/

Contains QBDI source code. This tree is described further in section Source Tree.

templates/

Contains QBDI usage templates.

test/

Contains the functional test suite.

tools/

Contains QBDI development tools: the validator and the validation runner.

Source Tree

The source files are organized as follows:

src/Engine

Contains code related to the VM API and underlying Engine controlling the overall execution.

src/ExecBlock

Contains code used to generate, store and execute JITed code inside ExecBlocks which form a code cache managed by the ExecBlockManager.

src/ExecBroker

Contains code implementing the execution brokering mechanism allowing to switch between instrumented execution and real execution.

src/Patch

Contains the PatchDSL implementation and per architecture support.

src/Utility

Contains various utility class and functions.