Module JCHPreAPI

class type cmd_list_int = object ... end
class type code_graph_int = object ... end
class type system_settings_int = object ... end
class type signature_bindings_int = object ... end
type property_accessor_t =
  1. | MethodAccessor of JCHBasicTypesAPI.method_signature_int
type class_property_t =
  1. | LogicalSize of property_accessor_t
class type class_summary_int = object ... end
class type bytecode_location_int = object ... end
class type operation_locations_int = object ... end
class type j_invariant_int = object ... end
class type invariants_int = object ... end
class type field_stub_int = object ... end
type field_info_type_t =
  1. | ConcreteField of JCHBasicTypesAPI.field_int
  2. | StubbedField of field_stub_int
  3. | MissingField of JCHBasicTypesAPI.class_field_signature_int
class type field_info_int = object ... end
class type class_info_int = object ... end
type loop_info_t = {
  1. li_first_pc : int;
  2. li_entry_pc : int;
  3. li_last_pc : int;
  4. li_instr_count : int;
  5. li_cond_pcs : int list;
  6. li_inner_loops : (int * int) list;
  7. li_outer_loops : (int * int) list;
  8. li_max_iterations : JCHBasicTypesAPI.jterm_t list;
  9. li_pc_invariants : (int * JCHBasicTypesAPI.relational_expr_t list) list;
  10. li_calls : (int * int * int) list;
}
and bc_value_t =
  1. | BcBasic of bc_basicvalue_t
  2. | BcObject of bc_objectvalue_t
and bc_call_t = {
  1. bcp_type : string;
  2. bcp_base_object : bc_objectvalue_t option;
  3. bcp_base_type : JCHBasicTypesAPI.object_type_t;
  4. bcp_ms : JCHBasicTypesAPI.method_signature_int;
  5. bcp_args : bc_value_t list;
}
type bc_action_value_t =
  1. | BcaValue of bc_value_t
  2. | BcaAction of bc_action_t
  3. | BcaActions of bc_action_t list
  4. | BcaTest of JCHBasicTypesAPI.opcode_t list * bc_value_t list
  5. | BcaRetGoto of JCHBasicTypesAPI.opcode_t
  6. | BcaOpcodes of JCHBasicTypesAPI.opcode_t list
  7. | BcaRvActions of bc_action_t list * bc_value_t
type bc_pattern_t =
  1. | BcpNop
  2. | BcpNopX
  3. | BcpAction of bc_action_t list
  4. | BcpResult of bc_action_t list * bc_value_t
  5. | BcpThrow of bc_action_t list * bc_objectvalue_t
  6. | BcpResultExcept of JCHBasicTypesAPI.class_name_int * bc_action_t list * bc_value_t * bc_value_t
  7. | BcpResultExceptThrow of JCHBasicTypesAPI.class_name_int * bc_action_t list * bc_value_t * bc_objectvalue_t
  8. | BcpActionExcept of JCHBasicTypesAPI.class_name_int * bc_action_t list
  9. | BcpActionExceptThrow of JCHBasicTypesAPI.class_name_int * bc_action_t list * bc_objectvalue_t
  10. | BcpInfiniteLoop of bc_action_t list
  11. | BcpIllegalSeq of string * JCHBasicTypesAPI.opcode_t list
type precondition_predicate_t =
  1. | PreRelationalExpr of JCHBasicTypesAPI.relational_expr_t
  2. | PreNull of JCHBasicTypesAPI.jterm_t
  3. | PreNotNull of JCHBasicTypesAPI.jterm_t
  4. | PreValidString of JCHBasicTypesAPI.jterm_t * string
type postcondition_predicate_t =
  1. | PostRelationalExpr of JCHBasicTypesAPI.relational_expr_t
  2. | PostTrue
  3. | PostFalse
  4. | PostNewObject of JCHBasicTypesAPI.class_name_int
  5. | PostNull
  6. | PostNotNull
  7. | PostElement of JCHBasicTypesAPI.jterm_t
  8. | PostEmptyCollection
  9. | PostSameCollection of JCHBasicTypesAPI.jterm_t
  10. | PostWrapped of JCHBasicTypesAPI.jterm_t
  11. | PostUnwrapped
  12. | PostValidString of string
  13. | PostObjectClass of JCHBasicTypesAPI.class_name_int
class type postcondition_int = object ... end
class type taint_int = object ... end
class type string_sink_int = object ... end
type resource_type_t =
  1. | RMemory
  2. | RWaitingTime
  3. | RThreads
  4. | RFileSize
class type resource_sink_int = object ... end
class type exception_info_int = object ... end
class type function_summary_int = object ... end
type analysis_type_t =
  1. | TypeAnalysis
  2. | TaintAnalysis
  3. | NumericAnalysis
type method_info_type_t =
  1. | ConcreteMethod of JCHBasicTypesAPI.method_int
  2. | UntranslatedConcreteMethod of JCHBasicTypesAPI.method_int
  3. | Stub of function_summary_int
  4. | NativeMethod of JCHBasicTypesAPI.method_int
  5. | AbstractMethod of JCHBasicTypesAPI.method_int
  6. | InterfaceInheritedMethod of JCHBasicTypesAPI.class_method_signature_int
  7. | MissingMethod of JCHBasicTypesAPI.class_method_signature_int
  8. | ExcludedMethod of JCHBasicTypesAPI.method_int * string
class type handler_block_int = object ... end
class type exception_handlers_int = object ... end
class type method_info_int = object ... end
class type bc_block_int = object ... end
class type bc_graph_int = object ... end
class type function_summary_library_int = object ... end
class type userdata_int = object ... end
class type costresults_int = object ... end
type pc_converter_t = int -> int
class type method_target_int = object ... end
class type instruction_info_int = object ... end
class type relational_invariant_int = object ... end
type taint_origin_type_t =
  1. | T_ORIG_VAR of int * CHLanguage.variable_t
  2. | T_ORIG_FIELD of int * string * int * int
  3. | T_ORIG_CALL of int * string * int * int
  4. | T_ORIG_TOP_TARGET of method_target_int * int * int
  5. | T_ORIG_STUB of int * int * int
type tainted_variable_data_t = {
  1. tvar : CHLanguage.variable_t;
  2. untrusted : taint_origin_type_t list;
}
type taint_node_type_t =
  1. | TN_FIELD of int
  2. | TN_VAR of int * CHLanguage.variable_t * int
  3. | TN_VAR_EQ of int * CHLanguage.variable_t * CHLanguage.variable_t * CHLanguage.symbol_t list
  4. | TN_CALL of int * int * int * int * CHLanguage.variable_t option * CHLanguage.variable_t list
  5. | TN_UNKNOWN_CALL of int * int * int * CHLanguage.variable_t option * CHLanguage.variable_t list
  6. | TN_CONDITIONAL of int * int
  7. | TN_OBJECT_FIELD of int * CHLanguage.variable_t * int * int
  8. | TN_SIZE of int * CHLanguage.variable_t * int
  9. | TN_REF_EQUAL
class type taint_dictionary_int = object ... end
class type taint_origin_int = object ... end
class type taint_origin_set_int = object ... end
class type taint_node_int = object ... end
class type application_int = object ... end
type ms_implementers_t = {
  1. mscn_classes : int list;
  2. mscn_stubs : int list;
  3. mscn_native : int list;
}
type non_virtual_target_type_t =
  1. | PrivateMethod
  2. | StaticMethod
  3. | FinalClass
  4. | FinalMethod
  5. | LocalAnalysis
type call_targets_t =
  1. | NonVirtualTarget of non_virtual_target_type_t * int
  2. | ConstrainedVirtualTargets of string * int list
  3. | VirtualTargets of int list
  4. | EmptyTarget of bool * JCHBasicTypesAPI.class_name_int * JCHBasicTypesAPI.method_signature_int
class type method_signature_implementations_int = object ... end
class type cgdictionary_int = object ... end
class type callgraph_base_int = object ... end
class type method_summary_builder_int = object ... end
class type chif_system_int = object ... end
class type method_invariants_int = object ... end
class type tainted_variable_int = object ... end
class type method_taints_int = object ... end
class type class_analysis_results_int = object ... end
class type application_analysis_results_int = object ... end