package bap-microx

  1. Overview
  2. Docs

Class Microx_concretizer.main

expression interpreter that never halts due to an unknown value.

It can be used as mixin class for other interpreters.

  • parameter memory

    returns a byte value at the given address, if known

  • parameter lookup

    returns a value of a given variable, if known

  • parameter random_seed

    if non None the the value is used to initialize the pseudo random generator.

  • parameter reg_policy

    a policy for concretizing register values;

  • parameter mem_policy

    a policy for concretizing heap values.

constraint 'a = Bap.Std.Expi.context

Interaction with environment

method empty : Bap.Std.Bil.storage

creates an empty storage. If you want to provide your own implementation of storage, then it is definitely the right place.

method lookup : Bap.Std.var -> 'a Bap.Std.Expi.r

a variable is looked up in a context

a variable is bind to a value.

a byte is loaded from a given address

a byte is stored to a a given address

Error conditions

method type_error : Bap.Std.type_error -> 'a Bap.Std.Expi.r

a given typing error has occurred

method division_by_zero : unit -> 'a Bap.Std.Expi.r

we can't do this!

method undefined_addr : Bap.Std.addr -> 'a Bap.Std.Expi.r

called when storage doesn't contain the addr

method undefined_var : Bap.Std.var -> 'a Bap.Std.Expi.r

called when context doesn't know the variable