mate_common.models.manticore module

class mate_common.models.manticore.ExploreFunctionOptions(*, docker_image: str = None, docker_memory_limit_mb: Mebibytes = 65536, explore_msg: mate_common.models.integration.ExploreFunction)

Bases: mate_common.models.manticore._MantiserveTaskOptions

Parameters
Return type

None

explore_msg: mate_common.models.integration.ExploreFunction

An Explore message that directs Manticore to explore one function using underconstrained symbolic execution.

class mate_common.models.manticore.ExploreOptions(*, docker_image: str = None, docker_memory_limit_mb: Mebibytes = 65536, explore_msg: mate_common.models.integration.Explore)

Bases: mate_common.models.manticore._MantiserveTaskOptions

Parameters
Return type

None

explore_msg: mate_common.models.integration.Explore

An Explore message that allows Manticore to explore the executable without much direction. See the schema model for more information.

class mate_common.models.manticore.MantiserveTaskInformation(*, task_id: str, build_id: str, artifact_ids: List[str], kind: mate_common.models.manticore.MantiserveTaskKind, request: Dict[str, Any], result: Dict[str, Any] = None, state: mate_common.models.manticore.MantiserveTaskState, docker_image: str = None)

Bases: pydantic.main.BaseModel

Metadata about a Mantiserve task.

Parameters
Return type

None

artifact_ids: List[str]

The IDs of any artifacts associated with this Mantiserve task.

build_id: str

The associated MATE build’s ID.

docker_image: Optional[str]

The Docker image that the task was configured with, if any.

kind: mate_common.models.manticore.MantiserveTaskKind

The kind of Mantiserve task.

request: Dict[str, Any]

The request that kicked off this Mantiserve task.

result: Optional[Dict[str, Any]]

The task’s result, if any.

state: mate_common.models.manticore.MantiserveTaskState

The task’s state.

task_id: str

The unique ID for this Mantiserve task.

class mate_common.models.manticore.MantiserveTaskKind(value)

Bases: str, enum.Enum

Supported Mantiserve tasks.

Explore = 'Explore'
ExploreFunction = 'ExploreFunction'
Reachability = 'Reachability'
class mate_common.models.manticore.MantiserveTaskState(value)

Bases: mate_common.state_machine.StateMachineMixin, str, enum.Enum

An enumeration of the different states that a MantiserveTask can be in.

Completed = 'completed'
Created = 'created'
Failed = 'failed'
Running = 'running'
class mate_common.models.manticore.ReachabilityOptions(*, docker_image: str = None, docker_memory_limit_mb: Mebibytes = 65536, reach_msg: mate_common.models.integration.Reachability)

Bases: mate_common.models.manticore._MantiserveTaskOptions

Parameters
Return type

None

reach_msg: mate_common.models.integration.Reachability

A Reachability message that directs Manticore along a path.

class mate_common.models.manticore.UnderConstrainedOptions(*, target_function: str, init_until: int = None, native_array_size_policy: mate_common.models.integration.UnboundedPtrPolicy, complex_array_size_policy: mate_common.models.integration.UnboundedPtrPolicy, auto_fix_errors: bool = False, input_constraints: List[mate_common.models.manticore.UserDefinedConstraint] = [])

Bases: pydantic.main.BaseModel

Input to the under-constrained plugin.

Parameters
Return type

None

auto_fix_errors: bool

Automatically fix out-of-bounds errors: - When False, manticore will terminate a state as soon as it results in a possible OOB error - When True, if manticore detects a possible OOB error, it will try to harden the state constraints to enforce the OOB to become a correct memory access, and then resume exploring the state

complex_array_size_policy: mate_common.models.integration.UnboundedPtrPolicy

Policy used to handle under-constrained raw pointers to complex types (SomeClass*, vector<SomeClass>*, …)

init_until: Optional[int]

Address until which to run the program before jumping to the target function. If not specified, program will be initialised until it reaches main()

input_constraints: List[mate_common.models.manticore.UserDefinedConstraint]

Additional symbolic constraints to initialise manticore with

native_array_size_policy: mate_common.models.integration.UnboundedPtrPolicy

Policy used to handle under-constrained raw pointers to native types (int*, char*, …)

target_function: str

Function to execute in under-constrained mode

class mate_common.models.manticore.UserDefinedConstraint

Bases: str

A symbolic constraint defined by the user.

It consists simply in a string that will later be translated into actual Constraint objects by manticore itself