package bap-std

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Abstract taint.

We represent a taint with a term identifier, to designate that a taint was produced by a term with the given id. A taint set is usually associated with each variable of a given term. This set defines a set of taints with which a variable is tainted.

  • deprecated

    use the Bap Taint Framework

type t = tid
type set = Tid.Set.t
val bin_shape_set : Core_kernel.Bin_prot.Shape.t
val __bin_read_set__ : (int -> set) Core_kernel.Bin_prot.Read.reader
val compare_set : set -> set -> int
val sexp_of_set : set -> Sexplib0.Sexp.t
val set_of_sexp : Sexplib0.Sexp.t -> set
type map = set Var.Map.t
val bin_shape_map : Core_kernel.Bin_prot.Shape.t
val __bin_read_map__ : (int -> map) Core_kernel.Bin_prot.Read.reader
val compare_map : map -> map -> int
val sexp_of_map : map -> Sexplib0.Sexp.t
val map_of_sexp : Sexplib0.Sexp.t -> map
val reg : t tag

value stored in register is source of taint

val ptr : t tag

value stored at memory location, that is stored in the register is tainted.

val regs : map tag

maps each variable that is used in a term to a set of register taints

val ptrs : map tag

maps each variable that is used in a term to a set of pointer taints

val merge : map -> map -> map

merge t1 t2 merge taint maps

class context : object ... end
module type S = sig ... end
module Make (M : Monads.Std.Monad.State.S2) : S with type ('a, 'e) state = ('a, 'e) M.t
include S with type ('a, 'e) state = ('a, 'e) Monads.Std.Monad.State.t
type ('a, 'e) state = ('a, 'e) Monads.Std.Monad.State.t
module Expi : Expi.S with type ('a, 'e) state = ('a, 'e) state
class 'a propagator : object ... end

Propagate taint through expressions.

val pp_set : Stdlib.Format.formatter -> set -> unit

print a set of taints

val pp_map : Stdlib.Format.formatter -> map -> unit

print a taint map

module Map : Regular.Std.Regular.S with type t = map
OCaml

Innovation. Community. Security.