package binsec

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

Parameters

Signature

type t = {
  1. entrypoints : (Virtual_address.t * int) Stdlib.Stack.t;
  2. all_dyn_jumps : Bitvector.t Stdlib.Stack.t Stdlib.Stack.t;
  3. all_choices : bool Stdlib.Stack.t Stdlib.Stack.t;
  4. cycle_entrypoints : (Virtual_address.t * int) Stdlib.Stack.t;
  5. cycle_all_dyn_jumps : Bitvector.t Stdlib.Stack.t Stdlib.Stack.t;
  6. cycle_all_choices : bool Stdlib.Stack.t Stdlib.Stack.t;
  7. dest_addr : Virtual_address.t;
  8. mutable current_choices : bool Stdlib.Stack.t;
  9. mutable current_dyn_jumps : Bitvector.t Stdlib.Stack.t;
  10. mutable is_next_op : bool;
  11. is_jump_lookup : bool;
  12. gen_g_t : bool;
  13. symbols : Virtual_address.t list;
  14. mutable take_next : bool;
  15. mutable possible_directions : bool list;
}
val get_op_symbols : Loader.Symbol.t array -> Virtual_address.t list
val init_backward : Ghidra_cfg.vertex -> string -> t
val reinit_backward : Ghidra_cfg.vertex -> Ghidra_cfg.t -> Ghidra_cfg.vertex Binsec.Ghidra_cfg.Vtbl.t -> string Binsec.Ghidra_cfg.Vtbl.t -> string -> t
val get_entrypoint : t -> Virtual_address.t * int
val get_next_choice : t -> bool
val get_next_dyn_jump : t -> Bitvector.t
val get_choices : t -> bool Stdlib.Stack.t
val get_dyn_jumps : t -> Bitvector.t Stdlib.Stack.t
type predicat_type =
  1. | CLEAR
  2. | OPAQUE
  3. | UNKNOWN
module PredicatSet : sig ... end
module Stats : sig ... end
module Env : sig ... end
module Eval : sig ... end
val visit_term : 'a -> Formula.term -> t -> unit
val visit_term_desc : 'a -> t -> Formula.term_desc -> unit
val visit_bl_term : 'a -> Formula.bl_term -> t -> unit
val visit_bl_term_desc : 'a -> t -> Formula.bl_term_desc -> unit
val visit_bv_term : 'a -> Formula.bv_term -> t -> unit
val visit_bv_term_desc : 'a -> t -> Formula.bv_term_desc -> unit
val visit_ax_term : 'a -> Formula.ax_term -> t -> unit
val visit_entry : t -> Binsec.Formula.VarSet.t Stdlib.ref -> Formula.entry -> unit
val is_opaque : t -> Env.t -> Dba.Expr.t -> Formula.formula -> unit
val halt : Env.t -> unit
type path_directive =
  1. | Continue
  2. | Discard
val add_jump_enum : G.t -> Virtual_address.t -> unit
val get_time_e : Virtual_address.Htbl.key -> unit
val get_time_b : Virtual_address.Htbl.key -> unit
val get_time_s : Virtual_address.Htbl.key -> unit
val get_time : Virtual_address.Htbl.key -> unit
val start_timer_e : unit -> unit
val start_timer_b : unit -> unit
val start_timer_s : unit -> unit
val start_timer : unit -> unit
val get_next_direction : t -> int * bool
val get_condition_value : Bitvector.t list -> bool
val loop_until : halt:(Env.t -> unit) -> G.t -> t -> unit
val interval_or_set_to_cond : Dba.Expr.t -> Parse_helpers.Initialization.rvalue -> Dba.Expr.t
val initialize_state : filename:string -> Bbsse_types.Path_state.t -> Bbsse_types.Path_state.t
val vertex_from_string : string -> Ghidra_cfg.V.t
val stop_at : Virtual_address.t -> G.t -> unit
val dump_dyn_jumps : Bitvector.t Stdlib.Stack.t -> unit
val dump_choices : bool Stdlib.Stack.t -> unit
val do_bb_sse_on_jump : Ghidra_cfg.V.label -> Ghidra_cfg.t -> Ghidra_cfg.vertex Binsec.Ghidra_cfg.Vtbl.t -> string Binsec.Ghidra_cfg.Vtbl.t -> string -> unit
val filter_set : PredicatSet.t Stdlib.ref -> PredicatSet.t Stdlib.ref -> PredicatSet.t Stdlib.ref -> unit
val pp_times : Stdlib.Float.t Virtual_address.Htbl.t -> unit
val pp_conds_entries : int Virtual_address.Htbl.t -> unit
val pp_instr : int Stdlib.Stack.t -> unit
val final_printing : unit -> unit
val stack_to_set : Virtual_address.Set.elt Stdlib.Stack.t -> Virtual_address.Set.t
val do_bb_sse : filename:string -> unit
val do_bb_sse_auto : filename:string -> unit
val start : unit
OCaml

Innovation. Community. Security.