dwarfcore.plugins.under_constrained_symex.plugin module

class dwarfcore.plugins.under_constrained_symex.plugin.UCSE(session: mate_query.db.Session, graph: mate_query.db.Graph, init_state: manticore.native.state.State, options: mate_common.models.manticore.UnderConstrainedOptions)

Bases: manticore.core.plugin.Plugin

Parameters
ctx_exploration_tree: Final[str] = 'UCSE_result_tree'
ctx_warnings: Final[str] = 'UCSE_warnings'
did_fork_state_callback(parent_state, expression, new_values, _policy, children)
did_load_state_callback(state)
did_run_callback()
manticore
property name: str
return_addr_magic: Final[int] = 1311768465173141112
setup_func_args(state: manticore.native.state.State, func)
Parameters

state (manticore.native.state.State) –

setup_uc_state(state)

Modify a manticore state to perform under constrained symbolic execution. It consists in pointing the PC to the target address, making most of the registers symbolic, and initialise the UC memory with the function argument objects if there are any.

Parameters

state – The state to setup for under constrained symbolic execution

will_decode_instruction_callback(state, pc)
will_execute_instruction_callback(state, pc, _insn)
will_fork_state_callback(_state, expression, solutions, _policy)
will_kill_state_callback(_current_state, exception)
will_read_memory_callback(state: manticore.native.state.State, address, size)
Parameters

state (manticore.native.state.State) –

will_run_callback(ready_states)
will_terminate_state_callback(_current_state, exception)
will_write_memory_callback(state: manticore.native.state.State, address, _value, size)
Parameters

state (manticore.native.state.State) –

dwarfcore.plugins.under_constrained_symex.plugin.make_initial_state(program_path)

Create the initial program state, using the custom platform.