binsec.symbolic
Default.Solver
binsec
binsec.base
binsec.cli
binsec.domains
binsec.dwarf
binsec.isa
binsec.kernel
binsec.script
binsec.smtlib
binsec.sse
binsec.unix
binsec_cli_bbsse
binsec_cli_disasm
binsec_cli_ghidra
binsec_cli_sse
binsec_cli_xtrasec
binsec_isa_armv7
binsec_isa_armv8
binsec_isa_ppc64
binsec_isa_riscv
binsec_isa_sparcv8
binsec_isa_x86_32
binsec_isa_x86_64
binsec_kernel_dba
binsec_kernel_isa
binsec_kernel_loader
binsec_kernel_parser
binsec_script_ast
binsec_smtlib_bindings
binsec_sse_checkct
binsec_sse_loader
binsec_sse_quick_merge
binsec_sse_shadow_stack
binsec_sse_stake
checkct
shadow_stack
stake
type status = Binsec_symbolic.Smtlib.Solver.status =
| Sat
| Unsat
| Unknown
module type S = sig ... end
module Dummy : S
type lazy_memory = {
contents : Binsec_kernel.Loader_types.buffer option Binsec_kernel.Zmap.t Binsec_symbolic__Default__.Types.AsMap.t;
mutable lemmas : ([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t list;
}
type result =
| Sat of Binsec_symbolic__Default__.Types.Model.t
type cache
val empty_cache : unit -> cache
val clear_cache : cache -> unit
type mode =
| One_shot
| Multi_checks of cache
val open_session : ?carbon_copy:(unit -> string) -> Binsec_symbolic.Smtlib.Solver.backend -> unit -> (module S)
val check_sat : (unit -> (module S)) -> mode -> ?timeout:float -> lazy_memory -> ([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t list -> result
type enumeration
val enumerate_values : (unit -> (module S)) -> ?timeout:float -> lazy_memory -> ([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t list -> ([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t -> except:Binsec_kernel.Bitvector.t list -> enumeration
val next_value : enumeration -> (Binsec_kernel.Bitvector.t * Binsec_symbolic__Default__.Types.Model.t) option
val release_enumeration : enumeration -> unit