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.

type t = tid
type set = Tid.Set.t
include sig ... end
val set_of_sexp : Sexplib.Sexp.t -> set
val sexp_of_set : set -> Sexplib.Sexp.t
val compare_set : set -> set -> int
val bin_set : set Core_kernel.Std.Bin_prot.Type_class.t
val bin_read_set : set Core_kernel.Std.Bin_prot.Read.reader
val __bin_read_set__ : (int -> set) Core_kernel.Std.Bin_prot.Read.reader
val bin_reader_set : set Core_kernel.Std.Bin_prot.Type_class.reader
val bin_size_set : set Core_kernel.Std.Bin_prot.Size.sizer
val bin_write_set : set Core_kernel.Std.Bin_prot.Write.writer
val bin_writer_set : set Core_kernel.Std.Bin_prot.Type_class.writer
type map = set Var.Map.t
include sig ... end
val map_of_sexp : Sexplib.Sexp.t -> map
val sexp_of_map : map -> Sexplib.Sexp.t
val compare_map : map -> map -> int
val bin_map : map Core_kernel.Std.Bin_prot.Type_class.t
val bin_read_map : map Core_kernel.Std.Bin_prot.Read.reader
val __bin_read_map__ : (int -> map) Core_kernel.Std.Bin_prot.Read.reader
val bin_reader_map : map Core_kernel.Std.Bin_prot.Type_class.reader
val bin_size_map : map Core_kernel.Std.Bin_prot.Size.sizer
val bin_write_map : map Core_kernel.Std.Bin_prot.Write.writer
val bin_writer_map : map Core_kernel.Std.Bin_prot.Type_class.writer
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 : set Regular.Std.printer

print a set of taints

val pp_map : map Regular.Std.printer

print a taint map

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

Innovation. Community. Security.