Module type Analysis_settings.MAKE

Parameters

Signature

module State = State
module Record_cfg = Record_cfg
type skip =
  1. | SkipTo of skip_type * Binsec.Virtual_address.t
    (*

    skip to address

    *)
  2. | Hook of Record_cfg.t -> State.t -> Record_cfg.t * (Binsec.Virtual_address.t * State.t) list
    (*

    Manually change the transfer function of an instruction.

    *)
  3. | ChangeState of State.t -> State.t
    (*

    Modifies the state before executing the corresponding instruction.

    *)
  4. | Unroll of int
    (*

    Unroll every loop having this address as its head. Argument: number of iterations.

    *)
  5. | EndPath
    (*

    End this trace

    *)
val skip_table : (skip * string) Addr_tbl.t
val exploration_only : bool Stdlib.ref

Says whether the analysis should be "merge over all paths" only. Initially false.

val kernel_exit_point : Binsec.Virtual_address.t
val add_stop : Binsec.Virtual_address.t -> unit

Add a hook to say that we should stop at this address.

val add_return_unknown : Binsec.Virtual_address.t -> Types.Ctypes.typ -> unit

Add a hook to a function address to say that the function should return and just return a value of some type.

val add_skip : Binsec.Virtual_address.t -> dest:Binsec.Virtual_address.t -> unit

Add a hook to a function address to say that the address does nothing, instead it directly jumps to dest.